使用游戏管理器统一控制游戏流程

时间:2016-05-18 17:05:37

标签: unity5

我正在使用团结进行游戏开发。我试图控制公园障碍的运动。我的概念就像我放了两个立方体。一个在屏障前面,第二个在屏障后面。当我的汽车进入第一个立方体时,OnTriggerEnter函数被调用,我向上移动我的屏障。之后我将车开到第二道屏障。当我的汽车进入第二道屏障时,会调用OnTriggerEnter函数。我的立方体向下移动。但当它向下时,它开始振动。 也许是因为同时调用两个脚本上的Update函数。 我的问题是如何使用GameManager来实现一种上下移动障碍的方法。我的代码如下。

这是第二个立方体。

using UnityEngine;
using System.Collections;

public class MovingTerrain2 : MonoBehaviour {
    MovingTerrain mov = new MovingTerrain();
    private bool down = false;
    public GameObject barrier;
    private Vector3 movement;
    private int speed = -2;
    void Start()
    {
        movement = new Vector3(0, 1f, 0);
    }
    void Update() 
    {
        if (down == true)
        {
            if (barrier.transform.position.y >= 1)
                barrier.transform.Translate(movement * Time.deltaTime*speed);

        }
    }
    void OnTriggerEnter(Collider col) 
    {
        if (col.gameObject.tag == "Player") 
        {
            down = true;
            mov.top = false;
        }
    }
}

这是First Cube。

using UnityEngine;
using System.Collections;

public class MovingTerrain : MonoBehaviour {

    public GameObject barrier;
    private Vector3 movement;
    public bool top = false;
    void Start() 
    {
        movement = new Vector3(0, 1f, 0);
    }
    void Update() 
    {
        if (top == true) 
        {
            if(barrier.transform.position.y<=4)
            barrier.transform.Translate(movement*Time.deltaTime);
        }
    }
    void OnTriggerEnter(Collider col)
    {
        if (col.gameObject.tag == "Player") 
        {
            top = true;
        }
    }
}

0 个答案:

没有答案