前提
2dのルーレットゲームをUnityで作っています
実現したいこと
上下に動いている的が
①エンターキーで停止
②的が画面中央にある点線の上で止まっていたらコンソールに”HIT!”と表示
発生している問題・エラーメッセージ
エンターキーが入力されたかどうかというif文の中でvoidOnTriggerStay2Dを使おうとすると次のエラーメッセージが表示されます
Assets\Scenes\PlayerController.cs(34,17): warning CS8321: The local function 'OnTriggerStay2D' is declared but never used ### 該当のソースコード ```C♯ using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController: MonoBehaviour { public Rigidbody2D rigid2D; // Start is called before the first frame update void Start() { Application.targetFrameRate=60; this.rigid2D=GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update() { if(Input.GetKeyDown(KeyCode.Space)) { this.rigid2D.velocity=new Vector2(0,5f); if(transform.position.x!=3) { this.rigid2D.velocity=new Vector2(0,-5f); } } if(Input.GetKeyDown(KeyCode.Return)) { this.rigid2D.velocity*=0; void OnTriggerStay2D(Collider2D other) { if(other.CompareTag("PointLine")) { Debug.Log("HIT!"); } } } } void OnTriggerEnter2D(Collider2D other) { if(other.CompareTag("Wall")) { this.rigid2D.velocity*=-1; } } }
試したこと
void OnTriggerEnter2Dの部分をif文の外に出してみましたが、そうすると意図した動きになりません
(本来はエンターキーで的を停止させた後だけに”HIT!”と表示させたいのに、void OnTriggerEnter2Dの部分をif文の外に出すと、的が動いていても点線を通り越すたびに”HIT!”と表示される)
補足情報
①該当する問題部分を載せる際は、一部分だけではなくその**ファイル全体**を載せるようにしてください。
なぜかというと、今回のエラー(正確に言うと警告ですが)のこの部分
```
Assets\Scenes\PlayerController.cs(34,17)
```
の(34,17)というのは問題が起きている行数と何文字目かを指しているため、ファイル全体で何行目かが「回答者に」わからないと原因究明の妨げになります。
それと同時に、直接的な問題がその部分ではない時があるため、やぱりファイル全体を記述して頂かなければ回答するのが難しいときがあります。
Unityであれば、同時にそのゲームオブジェクトのInspectorに表示されている情報も(できるなら画像で)提示してください。
(問題となっているオブジェクトのものです)
②「試したこと」と「補足情報(ツールのバージョンなど)」を書いてください。
何故か意図的に削除しているようですが、これらも回答者にとっては有益な情報です。
サイトを参考にしたのであれば、そのサイトのURLを貼ってください。
UnityであればUnityHubからプロジェクトを選択する際に「エディターバージョン」が書いてあるはずです。
これが必要な理由は、「バージョンによって動作が変わる可能性がある」からです。
回答1件
あなたの回答
tips
プレビュー