如何保持游戏对象向前移动,但当触发时向后移动,然后返回到向前移动

本文关键字:移动 然后 返回 游戏 何保持 对象 | 更新日期: 2023-09-27 18:26:51

我是Unity的新手,如果这是一个基本问题,请提前道歉,但我试着在网上寻找类似的问题,但没有答案。我有一个向前移动的游戏对象,当变量设置为true时,我希望该游戏对象向后移动X个单位,但当设置为false后,我希望游戏对象返回到上一次移动。我编码的内容使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;
    }
}

如何保持游戏对象向前移动,但当触发时向后移动,然后返回到向前移动

我知道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 )
}