質問: new Vector2(this.transform.localScale.x + 0.01f, this.transform.localScale.y + 0.01f); } void OnTriggerEnter2D() { } ``` ### 試したこと まずRigidBodyなどはしっかりとアタッチされているか、チェックは入っているか(入っていました) この関数を使用するための~といった情報を検索 検索したものの、基本的な使用法などで同じような症状例が見当たりませんでした。 参考にしたサイトです http://ameblo.jp/tekunews/entry-11907923290.html http://0310unity.hateblo.jp/entry/collision_detection_2 似たサンプルを作り直したものの同様の状況になりました。 参考書として"Unity5の教科書"という本を読んでいます
回答: オブジェクトA:静止している オブジェクトB:拡大だけしている(移動回転していない) もしも上記の状態で衝突させようとしているなら、以下のケースが当てはまるかと思います。 「Post Position:【Unity】 静止した物体同士の当たり判定の検出について」 あと考えられる点として、引数が違うのかも。 引数は決められた形式になっていないと動作しません。 `void OnTriggerEnter2D ( Collider2D other) { ... }` `void OnCollisionEnter2D ( Collision2D other ) { ... }` 正確にはこうです。 変数名(otherの部分)は自由に指定していいですが、クラス名(Collider2Dなどの部分)は変えてはいけません。 この引数のクラス名を「Collider」や「Collision」にしている(=「2D」が抜けている)、 OnTriggerEnter2DなのにCollision2Dを指定している、などの場合、衝突していてもメソッドは呼ばれません。 その他の原因は「OnTriggerEnter2D 呼ばれない」でググると色々出て来ますので1つ1つチェックしてみてください。 (ちなみにOn○○系のメソッドは、自分で機能拡張していない限り予測変換されません。なのでこの部分は呼ばれない理由とは関係無いです)