2014-09-27 87 views
0

所以我不知道爲什麼這不起作用。我問過我的老師,但他根本沒有幫助。在我的比賽中,我有一個物體,當被觸發時,會導致牆體垂直收縮。然而,無論我如何擺弄它,該物體都會自動捕捉到另一個位置,與剛纔的位置無關。 (我可以通過不同的腳本來重新設置對象)。我向它添加了兩個功能,所以不是立即移動到新的位置,而是慢慢移動,但它似乎根本沒有工作。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 
} 

回答

0

要緩慢移動物體,可以使用Vector3.Lerp從當前位置插入到目標位置。

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

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

如何輸入值成劇本,到底是什麼? – MechaScoots 2014-09-27 00:24:45

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); 
}