初心者の質問で申し訳ございませんが、UnityでGaze interaction というカメラを向けた先のオブジェクトを表示させ、カメラが離れたらオブジェクトが消えるというのを下記のYoutubeのチュートリアルを見ながら作成しています。
https://www.youtube.com/watch?v=OE66gtiF8QQ&list=PLQWe8dl8ZC3LRhO9J3gM8uMllbsjbujAJ
しかし、チュートリアルと同じ用に作成しているつもりですが、どうしても下記でエラーとなります。
void Start() { infos = FindObjectOfType<InfoBehavior>().ToList(); }
チュートリアルではToListを右Quick Fixするとusing System.Linq;が挿入されますが、自分の環境ではそれがでてきません。直接using System.Linq;と入力してもデバックでエラーになります。直接書くのでは意味がないのでしょうか。
どうすれば解決するのか教えていただけましたら嬉しいです。
よろしくお願いいたします。
using System.Collections.Generic; using System.Linq; using UnityEngine; public class Gaze : MonoBehaviour { List<InfoBehavior> infos = new List<InfoBehavior>(); void Start() { infos = FindObjectOfType<InfoBehavior>().ToList(); } void Update(){ if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit)) { GameObject go = hit.collider.gameObject; if (go.CompareTag("hasInfo")) { OpenInfo(go.GetComponent<InfoBehavior>()); } } else { CloseAll(); } } void OpenInfo(InfoBehavior desiredInfo) { foreach (InfoBehavior info in infos) { if (info == desiredInfo) { info.OpenInfo(); } else { info.CloseInfo(); } } } void CloseAll() { foreach (InfoBehavior info in infos) { info.CloseInfo(); } } }
回答1件
あなたの回答
tips
プレビュー