2014-09-27 2 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

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); 
} 
Смежные вопросы