2017-01-03 10 views
0

イムroolボールゲームのようなものであるゲームに取り組んで、そして今、私はトリガーを入力した後、私は私のトリガーを入力した後、私は2秒のように待たなければならないので、イベントをアクティブにする、いくつかの疑問を持っているし、その後、イベントをアクティブに、イベントがカメラを変更するようなものですので、私はより多くの2秒待ってから戻りたいその後、偽と真の他にカメラを渡し、私がしたいことはいくつかのゲームが持っているものであると、ときにドアが開いたので、他のカメラはオープンドアを見るために活性化され、それが戻ってプレイヤーに行くボタンを押してください。Couroutine onTriggerEnter

は、私は私の問題は、私はこのケースでコルーチンを実装する方法を非常によく知っていない、私は更新機能でそれを行う方法を知っているということですが、ここで感じているこの

public class button : MonoBehaviour { 

    public GameObject elevator; 
    private Camera second; 
    void Start(){ 
     elevator = GameObject.Find("Elevator"); 
     second = GameObject.Find("EventCamera").GetComponent<Camera>(); 
    } 


    IEnumerator WaitForSecs() 
    { 
     yield return new WaitForSeconds(2); 
    } 

    void OnTriggerEnter(Collider c) 
    { 
     if (c.gameObject.tag == "Player") { 
      transform.localPosition = new Vector3(transform.localPosition.x, 0.08f, transform.localPosition.z); 
      transform.GetComponent<Renderer>().material.color = Color.green; 
      Camera.main.enabled = false; 
      second.enabled = true; 
      elevator.GetComponent<PingPong>().enabled = true; 
      Camera.main.enabled = true; 
      second.enabled = false; 

     } 
    } 
} 

を試してみました奇妙な、いくつかの助けplsが必要です。

ありがとうございました

答えて

2

類似した質問が複数回表示されています。コルーチンはその複雑ではありません。)

void OnTriggerEnter(Collider c) 
{ 
    if (c.gameObject.tag == "Player") { 
     transform.localPosition = new Vector3(transform.localPosition.x, 0.08f, transform.localPosition.z); 
     GetComponent<Renderer>().material.color = Color.green; 
     StartCoroutine(ShowDoor()) ; 
    } 
} 

IEnumerator ShowDoor() 
{ 
    yield return new WaitForSeconds(2); 
    Camera.main.enabled = false; 
    second.enabled = true; 
    elevator.GetComponent<PingPong>().enabled = true; 
    yield return new WaitForSeconds(2); 
    Camera.main.enabled = true; 
    second.enabled = false; 
} 
+0

リトルノート:それは一つだけ 'WaitForSeconds'を作成し、それを定期的に作成すると、一部のリソースがかかるので、それを再利用することをお勧めします。 – Hellium

+0

うーん私はそれをどのように再利用することができますか?イム初心者たいが学ぶ:私は最後の2行を行うとき、私はとNullReferenceExceptionを取得D –

+0

他の事を、私はあなたがあなたのシーンでカメラを持っていないので、それは確かにCamera.main.enabledとは何か、 –

関連する問題