Unityscript使对象移动缓慢

时间:2014-09-27 00:03:08

标签: unity3d unityscript

所以我不知道为什么这不起作用。我问过我的老师,但他一点也不帮助。在我的游戏中,我有一个物体,当触发时,会导致墙壁垂直缩回。然而,无论我如何摆弄它,对象只是自动地捕捉到另一个位置而与它的位置无关。 (我可以使用不同的脚本将对象恢复正常以重置事物)。我添加了两个函数,因此它不会立即移动到新位置,而是会慢慢移动,但它似乎根本不起作用。

var door: GameObject;
var torch: GameObject;
var flame: GameObject;

function OnMouseDown(){
for(var count: int = 0; count < 10; count++)
    {
    door.transform.position = Vector3(0,0.1,0);
    torch.transform.position = Vector3(0,0.1,0);
    flame.transform.position = Vector3(0,0.1,0);
    yield WaitForSeconds(1.0);
    }
// move door out of way
}

2 个答案:

答案 0 :(得分:0)

要慢慢移动对象,可以使用Vector3.Lerp从当前位置插入到目标位置。

Vector3.Lerp(Vector3 from, Vector3 to, float t);

transform.position = Vector3.Lerp(currentPosition, targetPosition, 0.1f);

答案 1 :(得分:0)

 Vector3 dest=new Vector3(0,1,0); //set your destination position here , i set (0,1,0) set whatever
public float smooth=2.0;

function OnMouseDown(){
door.transform.position = Vector3.Lerp (door.transform.position, , Time.deltaTime * smooth);
torch.transform.position = Vector3.Lerp (torch.transform.position, , Time.deltaTime * smooth);
flame.transform.position = Vector3.Lerp (flame.transform.position, , Time.deltaTime * smooth);
}