2015-06-08 2 views
0

В принципе, я хочу, чтобы я мог перемещать объект влево или вправо, но круговым движением, а не прямой линией. Это связано с тем, что объект является дочерним элементом другой сферы, и я хочу перемещать объект вокруг сферы с помощью клавиши со стрелками влево/вправо, чтобы можно было установить положение вокруг сферы.Управление/перемещение объекта круговым движением в Unity

Я нашел код, который перемещает круг только в одном направлении, и я не могу его контролировать. Вот оно:

float timeCounter = 0; 

void Update() { 
     timeCounter += Time.deltaTime; 
     float x = Mathf.Cos (timeCounter); 
     float y = Mathf.Sin (timeCounter); 
     float z = 0; 
     transform.position = new Vector3 (x, y, z); 
} 

Если кто-то может попытаться «преобразовать» этот код в код, который я могу контролировать с левой и правой arrowkey и делает его двигаться как влево и вправо, это было бы здорово. Другие материалы также высоко оценили

ответ

2
float timeCounter = 0; 

void Update() { 
    timeCounter += Input.GetAxis("Horizontal") * Time.deltaTime; // multiply all this with some speed variable (* speed); 
    float x = Mathf.Cos (timeCounter); 
    float y = Mathf.Sin (timeCounter); 
    float z = 0; 
    transform.position = new Vector3 (x, y, z); 
} 
3

Вот полный код для вращения с левой и правой клавиш со стрелками

float timeCounter = 0; 
bool Direction = false; 

void Update() { 

    if(Input.GetKeyDown(KeyCode.LeftArrow)) 
    { 
     Direction = false; 
    } 
    if(Input.GetKeyDown(KeyCode.RightArrow)) 
    { 
     Direction = true; 
    } 
    if (Direction) 
     timeCounter += Time.deltaTime; 
    else 
     timeCounter -= Time.deltaTime; 
    float x = Mathf.Cos (timeCounter); 
    float y = Mathf.Sin (timeCounter); 
    float z = 0; 
    transform.position = new Vector3 (x, y, z); 
} 
Смежные вопросы