我眨眼的意思是,物体是否会立即移动(改变)到另一个(特定)位置,但不会缓慢或没有显示移动路径?它就像突然出现在另一个位置
方框是位置,当向右按下对象到达右边的下一个位置时,当向左按下时,对象进入左边的下一个位置。
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);
我如何使用我的代码执行此操作?
答案 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秒向左移动一次,使其闪烁。您可以在右侧执行相同的操作,您可以设置速度和时间,使其随意移动。
希望这有帮助。