统一角色在锁定敌人时继续移动

时间:2016-03-19 06:21:20

标签: c# unity5

好的,所以这是我的问题,我有一个脚本,可以让我锁定并围绕敌方目标。问题是如果按下锁定按钮时我的角色正在移动,角色将继续沿着按钮按下之前的任何方向移动,无论按下按钮还是保持相反的方向。

当我静止不动时,这不会发生,如果我的角色静止不动,我按下锁定按钮一切正常。只有在我搬家时才会这样。

我不确定这是否是足够的信息,或者有什么人可能需要更好地理解,但这是我的脚本:

if (GetComponent<DetectedEnemies>().locked)//checks bool to see if lockOn button was pressed
{
    mainCam.SetActive(false);//turns off main cam
    lockCam.SetActive(true);//turns on lockOn cam

    movesetting.tarObject = GetComponent<DetectedEnemies>().Closest;//target object will be the closest enemy to player

    this.transform.LookAt(movesetting.tarObject.transform.position);//player will look at the target object at all times

    if (currXRot.x > maxXRot.x)//if the current x rot of this object exceeds the maxXRot it can go...
        currXRot.x = maxXRot.x;//it gets reset

    transform.Translate(Vector3.right * movesetting.speed * Time.deltaTime * turnInput);//orbits around the target object
    transform.Translate(Vector3.forward * movesetting.speed * Time.deltaTime * forwardInput);//in control of moving towards and away from target
}

任何和所有帮助都非常有用,请提前谢谢。如果您需要更多信息或有任何不清楚的地方,请告诉我。

1 个答案:

答案 0 :(得分:0)

尝试创建用于轨道运行速度的第二个速度变量。然后,如果玩家被锁定,则将第一个速度变量设置为0,当玩家未被锁定时,将轨道运行速度变量设置为0.这样的事情:(我用5作为例子)

if(GetComponent.<DetectedEnemies>().locked) {

speed = 5;
orbitSpeed = 5;
} else {

speed = 5;
orbitSpeed = 0;
}