我是Unity的新手,如果这个问题很基础,请提前抱歉,但我尝试通过网上查找类似问题并获得答案。我有一个具有向前移动的游戏对象,当变量设置为 true 我希望该游戏对象向后移动X个单位,但是当设置为 false 时我希望gameObject返回到之前的运动。我编码的内容使得gameObject向前移动,但是当由变量触发时它不会向后移动。你能告诉我我做错了什么吗?
public MonsterTarget monTarget;
public BandageTarget banTarget;
public Transform target;
public float speed;
public float backSpeed;
public bool back;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
back = monTarget.targetMove;
if (target.position.x > -11)
{
target.Translate(speed, 0, 0);
if (back == true)
{
Debug.Log("MOVE BACK");
target.Translate(backSpeed, 0, 0);
}
monTarget.targetMove = false;
}
}
答案 0 :(得分:0)
我在C#中知道bool的默认值为false,你是否在if ( back == true )
语句的某处开始设置为true?
此外,target.Translate( speed, 0, 0 );
正在运行时Target.Translate ( backspeed, 0 , 0 );
正在运行,可能会相互抵消。确保您的变量已分配,并可能尝试此操作。
if ( back == true) {
target.Translate( backspeed , 0 , 0 );
} else {
target.Translate( speed, 0 , 0 )
}