壁にぶつからずに、地形と重なった際にアクションを起こすオブジェクトを作る方法はありますか?
Gimmick Tile アドオンを使用して、アクションを変更するオブジェクトを生成することができます。これはアドオン自体に追加するクールな基本設定ですが、現時点では Visual Script 以外でアクションや条件を実行する API は存在しません。
これはタイルとの接触で判定しているのでは?例えば地形をすり抜ける幽霊のキャラが、すり抜けている間だけ半透明になるとかはこれでできますか?
タイル効果の判定パターンで「重なり」と「エリア変数」を使うのが良いのではないかと思います。
「重なり」の場合はコリジョンが無効状態でも検知可能なはずなのでそちらの用途でも扱えそうな気はします。
- 「壁」用のタイルにタイル効果>エリア変数を設定
- 幽霊のGameObjectのタイル効果を受けるを「オン」
- 幽霊オブジェクトの変数「現在のエリアID」が1で指定した値になったらアクションのフィルターで透明をかける、もしくはスプライトのカラーでアルファ値のプロパティを半透明にする。
- 「現在のエリアID」が1で指定した値以外になったら3.でかけた効果を解除する。
で実現できるのではないかと。
ちなみにオブジェクトの壁判定で同じことはできますか?
オブジェクトの場合はコリジョンを無効にするとさわれないため、「攻撃判定」「あたり判定」を使う形になるかと思います。
- 壁オブジェクトの攻撃力を0にして攻撃判定を設置
- 幽霊は壁オブジェクトの攻撃にあたった際、半透明になる
でしょうか。
なるほど…ちょっと使えそうに無いのでオミットですかね…。ありがとうございました。
ふと思いついたのですが。
正確な半透明ではないですしオブジェクトの色調の調整も必要ですが、シンプルに半透明のRectangleを重ねる形はどうでしょうか。
-
オブジェクトの子としてColorRectを設定(この際、Z座標をプレイヤーより手前に配置されるように設定。ColorRect>幽霊>Spriteとなるように。)
-
ColorRectのカラーを半透明に設定。
-
幽霊は半透明のRectの裏に入るので半透明・・・っぽくなる
あ、例として出しただけで、実際には半透明にするのに使うんじゃないんです。
その方法でも無理だと思うので大丈夫です・・・。
