今FPSゲームを作っています。そして、銃の発射のところをRayを使おうとしています。
そこで、この動画を参考にさせていただきました。正常に実行したのですが。私は、ポインターから発射するのではなく、真ん中にあるレティクルの画像から発射させたいと思っています。
つまり、レティクルの画像がオブジェクトに触れたら、色を変えるというプログラムを作成したいと思います。
どのようにしたら、できるでしょうか?
C#
1using UnityEngine; 2 3public class SelectionManager : MonoBehaviour 4{ 5 [SerializeField] private string selectableTag = "Selectable"; 6 [SerializeField] private Material highlightMaterial; 7 [SerializeField] private Material defaultMaterial; 8 9 private Transform _selection; 10 11 private void Update() 12 { 13 if (_selection != null) 14 { 15 var selectionRenderer = _selection.GetComponent<Renderer>(); 16 selectionRenderer.material = defaultMaterial; 17 _selection = null; 18 } 19 20 var ray = Camera.main.ScreenPointToRay(Input.mousePosition); 21 RaycastHit hit; 22 if (Physics.Raycast(ray, out hit)) 23 { 24 var selection = hit.transform; 25 if (selection.CompareTag(selectableTag)) 26 { 27 var selectionRenderer = selection.GetComponent<Renderer>(); 28 if (selectionRenderer != null) 29 { 30 selectionRenderer.material = highlightMaterial; 31 } 32 33 _selection = selection; 34 } 35 } 36 } 37}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。