我正在使用团结进行游戏开发。我试图控制公园障碍的运动。我的概念就像我放了两个立方体。一个在屏障前面,第二个在屏障后面。当我的汽车进入第一个立方体时,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;
}
}
}