2016-05-02 27 views
-1

プレイヤーがスクリプトがアタッチされているオブジェクトを見て、そのボックスコリダートリガーと接触しているときに、画像を表示しようとしています。イメージは "interactImage"という名前のオブジェクトのコンポーネントであり、私はそれを "canvas"コンポーネントを無効/有効にすることでユーザーに表示しようと考えています。以下のスクリプトを見ることができます:オブジェクトを見るときに画像が表示されない

using UnityEngine; 
using System.Collections; 

public class interactText : MonoBehaviour 

{ 

bool isLook; 
bool isCollide; 

// Use this for initialization 
void Start() 
{ 

} 

// Update is called once per frame 
void Update() 
{ 

    if (isCollide == true && isLook == true) 
    { 
      GameObject.Find("interactImage").GetComponent<Canvas>().enabled = true; 
    } 

} 

void OnTriggerEnter(Collider collide) 
{ 
    isCollide = true; 
} 

void OnTriggerExit(Collider collide) 
{ 
    isCollide = false; 
    GameObject.Find("interactImage").GetComponent<Canvas>().enabled = false; 
} 

void OnBecameVisible() 
{ 
    isLook = true; 
} 

void OnBecameInvisible() 
{ 
    isLook = false; 
    GameObject.Find("interactImage").GetComponent<Canvas>().enabled = false; 
} 
} 

このスクリプトは表示されません。プレーヤーがトリガしてオブジェクトを見ると、画像はカメラの視点に表示されません。どうしてか分かりません。何かご意見は?

+0

isCollide == true&isLook == true'の '&'は '&&'でなければなりません。 – sowa

+0

@sowa typo、私はこれを修正しました。スクリプトはまったく動作しません。 –

+1

'OnTriggerX'と' OnBecame(In)Visible'が動いているのを確認しましたか? Debug.Logをすべてに入れて、コンソールを確認するようにしてください。 –

答えて

0

愚かなことに、ゲームオブジェクトにはレンダラーが必要です。

関連する問題