Поверните игровой объект, нажав кнопку - PullRequest
1 голос
/ 27 октября 2011

У меня есть объект и 2 кнопки текстуры GUI.Я хочу повернуть объект влево, когда я нажимаю левую кнопку и вправо, когда нажимаю другую.

Есть идеи?

У меня есть скрипт, который работает, когда я перетаскиваю свой объект.Я опубликую важную часть:

function Start () 
{
  var angles = transform.eulerAngles;
  x = angles.y;    

  // Make the rigid body not change rotation
  if (rigidbody)
    rigidbody.freezeRotation = true;    
}

function LateUpdate () 
{   
    if (isMouseOverGuiTexture()) return;  

    if (target && Input.GetMouseButton(0)) 
    {  
         //0.1 represents the sensitivity of the mouse
         x += Input.GetAxis("Mouse X") * xSpeed *0.1; //x rotation
         //y -= Input.GetAxis("Mouse Y") * ySpeed *0.1;  //y rotation
         //y = ClampAngle(y, yMinLimit, yMaxLimit);                
         var rotation = Quaternion.Euler(y, x, 0);
         var position = rotation * Vector3(0.900528, 8.829305, -distance+0.49548)+ target.position;

         transform.rotation = rotation;
         transform.position = position;
    }
}

1 Ответ

0 голосов
/ 26 января 2015

(Вопрос ответил в комментариях. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )

ОП написал:

Я решил это с помощью следующего:

var imageLeft: Texture2D; // drag the left button image here
var imageRight: Texture2D; // right button image
var speed: float = 60; // rotate speed in degrees per second
private var rotLeft = false; // object rotates left if true
private var rotRight = false; // object rotates right if true;

function OnGUI()
{
    rotLeft = GUI.RepeatButton(Rect(10,10,200,200), imageLeft);
    rotRight = GUI.RepeatButton(Rect(230,10,200,200), imageRight);
}

function Update()
{    
    if (rotLeft) transform.Rotate(0, -speed*Time.deltaTime, 0);
    if (rotRight) transform.Rotate(0, speed*Time.deltaTime, 0);
}

Я не знаю, какое значение Time.deltaTime принимает внутри OnGUI - это должно быть время с момента последнего OnGUI, но яЯ не уверен.Чтобы избежать проблем, я поместил реальное вращение в Update и использовал два логических элемента управления (rotLeft и rotRight) для связи с OnGUI.

...