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