将物体移动到另一个位置(闪烁)

时间:2015-03-16 13:34:57

标签: unity3d

我眨眼的意思是,物体是否会立即移动(改变)到另一个(特定)位置,但不会缓慢或没有显示移动路径?它就像突然出现在另一个位置

enter image description here

方框是位置,当向右按下对象到达右边的下一个位置时,当向左按下时,对象进入左边的下一个位置。

public float speed;

if (Input.GetKey (KeyCode.LeftArrow))          transform.Translate (new Vector3 (-speed, 0, 0) * Time.deltaTime);

if (Input.GetKey(KeyCode.RightArrow))          transform.Translate (new Vector3 (speed, 0, 0) * Time.deltaTime);

我如何使用我的代码执行此操作?

2 个答案:

答案 0 :(得分:0)

使用此位置,其中pos3是起始位置,too3是结束位置,step3是从pos3移动到too3的速度

transform.position = Vector3.MoveTowards(pos3, too3, step3);

答案 1 :(得分:0)

如果你想要的是根据用户输入立即向左和向右移动 x 金额,你可以使用GetKey的GetKeyDown来进行"一次移动& #34;每次按下按键。

但是如果你想按下按键并看到它每隔 t 时间移动 x 那么你可以使用一个计时器,只需在 t时移动

public float speed = 10;//the x amount moved
public float timeToMove = 0.5f; //the t time to "blink"

private float timer;

void Start () {
    timer = timeToMove; //initially you can move
}

void Update () {
    //add time to the timer
    if(timer < timeToMove){
        timer += Time.deltaTime; 
    }


    if(Input.GetKey(KeyCode.A)){
        //only move if the time has passed
        if (timer >= timeToMove){
            transform.Translate (new Vector3 (-speed, 0, 0) * Time.deltaTime);

            timer = 0; //reset the timer
        }
    }
}

在这种情况下,物体每0.5秒向左移动一次,使其闪烁。您可以在右侧执行相同的操作,您可以设置速度和时间,使其随意移动。

希望这有帮助。