2016-10-01 6 views
-1

Есть такие вопросы, но я не нашел ответов на C#, так что вот мой вопрос: я хочу повернуть объект (в Unity 5) в том направлении, в котором он стоит. У меня есть этот код, чтобы повернуть мой плеер.Переместить объект в направлении, в котором он находится? C#

using UnityEngine;              
using System.Collections; 

public class Movement : MonoBehaviour 
{ 
    private bool isLeft = false; 

    void Update() 
    { 
     if (Input.GetMouseButtonDown(0)) 
     { 
      if (isLeft == false) 
      { 
       transform.rotation = Quaternion.Euler(90, 45,0); 
       isLeft = true; 
       Debug.Log("Turned Right"); 
      } 
      else 
      { 
       transform.rotation = Quaternion.Euler(90, -45, 0); 
       Debug.Log("Turned Left"); 
       isLeft = false; 
      } 
     } 
} 
+1

Название говорит ** «Переместите объект в направлении, в котором он обращен» **, тогда тело вашего вопроса говорит: «Я хочу повернуть объект (в Unity 5) в направлении, в котором он обращен» * * .... Для перемещения и поворота объекта это не одно и то же. Какой из них вы действительно пытаетесь сделать? С другой стороны, работает ли код в вашем вопросе? Что происходит с этим кодом? – Programmer

ответ

0

В то время как ваш вопрос и описание немного неоднозначны, кажется, что вы хотите переместить стрелку в направлении, обратном ее, правильно?

Убедитесь, что стрелка в игровом объекте направлена ​​вперед. Вы можете видеть, что такое форвард, выбрав игровой объект в сцене. Вперед будет синяя стрелка.

Теперь в коде, чтобы переместить его в этом направлении, вы можете перемещать его разными способами. Применить силу/Перевести/Установить позицию. Я рекомендую вам попробовать их, посмотреть, что выглядит и чувствует себя лучше. Чтобы просто изменить свое положение:

transform.position += transform.forward * Time.deltaTime * movementSpeed; 

Где скорость движения - это поплавок, который описывает, как быстро он должен двигаться. Time.deltaTime необходимо, если вы поместите этот код в Update().

0

Ok полный едит на ответ, так что у вас есть стрелка и в зависимости от того, каким образом его лицом вы хотите, чтобы переместить направление он сталкивается, и когда нажимает игрок он должен это повернуть на 45 градусов.

Легкая часть поворачивает его, в основном вы вызываете функцию onclick() или устанавливаете коллайдеры на объект и записываете краткий отрывок, проверяя при щелчке мыши, равно ли это ваше имя стрелки или коллайдера. если так настроить новую переменную для Vector3 для хранения нового вращения и просто добавить 45 к вращению объектов и установить новое вращение игрового объекта, равное вашей новой переменной вращения.

+0

Здесь: http://imgur.com/pf8fVBk [img] http://i.imgur.com/pf8fVBk.png [/ img] Я хочу, чтобы он двигался вперед в направлении, в котором стрелка обращена, и когда игрок клики, чтобы повернуть его на 45 градусов, чтобы он стал новым способом, с которым он сталкивается. – iFallOffStuff