【Unityつまづき】Triggerのなぞ
こんにちは。
前回、当たり判定のプログラムを作ってて、IsTriggerのチェック外したらうまくいったけどなんでって話。
詳しくはこちら→【Unityつまずき】 当たり判定がうまくいかない - 5丁目らへんのさよねん家
答えはスクリプトにございました。
前回の当たり判定スクリプトがこちら
void OnCollisionEnter2D(Collision2D collision) { //みかんだったらスコアを加算する if (collision.gameObject.tag == "mikan") { //スコア加算 score += 100; //スコアの更新 ScoreText.text = "Sco: " + score.ToString(); } Destroy(collision.gameObject); }
このOnCollisionEnter~ってところで接触したところをチェックしてたわけです。
んで、ゲームとして当たり判定をさせたいけど物理的な衝突反応はしてほしくないってときにTriggerを使うわけですけれども、
このTrigerを使った接触のときは、通常の接触とは別のイベントをつかわないかんらしい。
てことでスクリプトを訂正しました。
void OnTriggerEnter2D(Collider2D col) { //みかんだったらスコアを加算する if (col.gameObject.tag == "mikan") { //スコア加算 score += 100; //スコアの更新 ScoreText.text = "Sco: " + score.ToString(); } Destroy(col.gameObject); //みかん消去 }
OnCollisionEnter~のところがOnTriggerEnter~に変わりまして引数もCollisionからColliderに変わります。
んで、IsTriggerにチェックをいれる
無事動きました。
働きは同じでも、トリガーを使った時のイベントとトリガーを使わないときのイベントは違うってことですね。
初歩的なことなんですがきちんと把握できてなかったためごっちゃになっていました…