2015-03-13 4 views
0

Я хочу, чтобы объект, когда породил, повернулся и направился к моему вражескому объекту. У меня уже есть работа, но вращение к врагу, похоже, не работает.Поверните объект по направлению к другому объекту - C# Unity

Вот мой текущий код:

GameObject newRocket = GameObject.FindGameObjectWithTag("Enemy"); 
direction = (cil.transform.position - novaStrela.transform.position); 
rotationDirection = Quaternion.LookRotation(direction); 
newRocket = Instantiate (rocket, transform.position, rotationDirection) as GameObject; 
newRocket.rigidbody.AddForce ((target.transform.position - transform.position).normalized * projectileSpeed); 

Я знаю, что это немного беспорядок, но я был бы рад, если бы вы мне помочь. Спасибо до сих пор

+0

Я предполагаю, что объект «cil» является противником, а «novaStrela» является игроком/шутером? – ThisHandleNotInUse

+0

Опубликовать рис, сравнивающий результат с 'rotationDirection' vs 'Quaternion.identity' как аргумент вращения. –

+0

@ThisHandleNotInUse Да, вы предполагаете, правильно .. Я не исправил это .. Так cil = target и novaStrela = newRocket .... –

ответ

2

Thry это:

Vector3 v3Dir = transform.position - _destination.position; 
      float angle = Mathf.Atan2(v3Dir.y, v3Dir.x) * Mathf.Rad2Deg; 
      transform.eulerAngles = new Vector3(0, 0, angle); 

где transform.position является положение ракеты (вещь, которую вы хотите посмотреть на объект) и _destination.position позиция объекта смотреть в. Возможно, вам придется поиграть, так как это мой код из 2D-игры.

Смежные вопросы