Raycastを用いて、rayと衝突したオブジェクトを非表示にするために
Destroy(hit.collider.gameObject);
を用いています。
上記のDestroyで非表示にしたオブジェクトを、指定したキーボタンをクリックすることで、直近に非表示にしたオブジェクトを再表示できるようにしたいのですが、見当がつきません。
例えば、複数オブジェクトがありA→B→Cの順で非表示にした場合に、戻るの入力を受けた分だけ、C→B→Aの順で再表示をしたいです。
もしくは非表示にしたオブジェクトを選択し、再表示にできるような方法がありますでしょうか。
オブジェクトそれぞれに対応するキーを振り当て、奇数回は非表示、偶数回は再表示としSetActiveを用いて表示の切り替えはできるのですが、VRでの実装をしたいのでrayでどうにか解決したいです。
以下が該当のスクリプトになります。
どのように加筆すればよいかご教示お願いいたします。
※確認をしやすいように、マウスの記述となっております。
C#
1 2using System.Collections.Generic; 3 4public class Switching : MonoBehaviour 5{ 6public void Update() 7 { 8 if (Input.GetMouseButtonDown(0)) 9 { 10 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 11 12 RaycastHit hit = new RaycastHit(); 13 14 if (Physics.Raycast(ray, out hit, distance)) 15 { 16 Destroy(hit.collider.gameObject); 17 } 18 } 19 } 20 21 void ReDisplay() 22 { 23 List<GameObject> hideGameObject = new List<GameObject>(); 24 25 hideGameObject.Add(GameObject.Find("hit.collider.gameObject")); 26 27 if (Input.GetMouseButtonDown(1)) 28 { 29 hideGameObject[-1].SetActive(true); 30 31 hideGameObject.Remove(hideGameObject.count - 1); //countの定義が含まれていないとエラーメッセージが出る 32 33 } 34 35 36 } 37 38]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/25 13:38
2018/04/26 06:50
2018/04/26 09:58
2018/04/26 10:06
2018/04/26 10:38
2018/04/26 11:53
2018/04/26 14:13
2018/04/26 23:15
2018/04/27 05:36