2011-04-02 3 views
1

J'essaie de faire un objet déplacer vers un cube qui est stocké dans un tableau.Transformer GameObject

Le tableau est rempli de gameObjects avec une étiquette.

Je peux amener l'objet à se déplacer instantanément vers le cube, mais pas lentement comme s'il marchait vers lui.

Ceci est mon script:

var moveTo : GameObject; 

function Update(){ 
    print(FindClosestEnemy().name); 
} 

function FindClosestEnemy():GameObject{ 

    var chasePoints : GameObject[]; 
    chasePoints = GameObject.FindGameObjectsWithTag("chasePoint"); 
    var closest : GameObject; 
    var distance = Mathf.Infinity; 
    var position = transform.position; 

    for(var go: GameObject in chasePoints){ 
     var diff = (go.transform.position-position); 
     var curDistance = diff.sqrMagnitude; 
     if(curDistance < distance){ 
      closest = go; 
      moveTo = closest; 
      transform.position -= moveTo.transform.position; 
      distance = curDistance; 
     } 
    } 
    return closest; 
} 

J'ai aussi essayé la chose Time.deltaTime, mais il se téléporte loin du cube.

Et le convertir pour transformer tableau isnt travaillant soit :(Toutes les idées pour faire ce travail?

aide est très appréciée :) Merci d'avance!

Répondre

1

Il semble que vous réalisiez l'ensemble de la transformation en une seule image. Vous devez choisir une vélocité et l'appliquer à l'objet pour chaque image. Vous connaissez le et de. Choisissez combien de temps vous voulez qu'il prenne et mettez-le à jour progressivement. Rappelez-vous que vous ne pouvez pas être sûr qu'il y aura 60 images par seconde, alors prenez cela en compte.

0

Vous pouvez utiliser Vector3.MoveTowards

Pour maxDistanceDelta vous choisissez une vitesse et multipliez-le par Time.deltaTime être cadre longueur indépendante:

Vector3.MoveTowards(transform.position, moveTo.transform.position, speed * Time.deltaTime);