Страница 1 из 1

Простой вопрос.

СообщениеДобавлено: 28 ноя 2011, 04:52
Good1101
Здравствуйте!
Может быть вопрос вам покажется слишком нубийским но не судите строго, сишарп начал изучать недавно а юнити и тем более, вобщим запарился я курить мануалы, напишите пожалуйста кому несложно самый простой способ повернуть объект на пару градусов вправо или влево относительно текущего положения. Заранее спасибо за помощь.

Re: Простой вопрос.

СообщениеДобавлено: 28 ноя 2011, 05:12
IDoNotExist
повернуть объект на пару градусов вправо или влево относительно текущего положения.

Нет такого понятия в 3d пространстве как "Право" и "Лево" есть оси X,Y,Z вокруг них можно повернуть объект.

Синтаксис:
Используется csharp

void Update(){
   Vector3 povorot = new Vector3(0,45,0);
   transform.localRotation = Quaternion.Euler(povorot);


}

 

Re: Простой вопрос.

СообщениеДобавлено: 28 ноя 2011, 06:04
Good1101
Спасибо работает. Но тут как я понимаю обьект всегда будет поворарачиватся в положение 45 градусов а мне нужно прибавить например 10 градусов к уже имеющемуся положению.
Попробовал сделать так но получилась фигня какая то.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class Pazbros : MonoBehaviour
{
        int i = 10;
        float foi;

        void Start () {
        foi = transform.rotation.y;
        foi += i;
        Debug.Log(transform.rotation.y);
        }
       
        void Update () {
       
        Vector3 povorot = new Vector3(0, foi, 0);
        transform.localRotation = Quaternion.Euler(povorot);
     
        }
}
 

И Debug.Log показывает что transform.rotation.y = 0.3, хотя он находился у меня в положении 40

Re: Простой вопрос.

СообщениеДобавлено: 28 ноя 2011, 13:20
IDoNotExist
"Фигня какаято" слишком абстрактное понятие, подробнее пожалуйста. Скорее всего неправильно обратились к компоненте transform.rotation.y, правильно будет transform.rotation.eulerAngles.y. И еще не путайте rotation и localRotation;

Вот правильный код:
Синтаксис:
Используется csharp

using UnityEngine;
using System.Collections;
public class Pazbros : MonoBehaviour
{
        int i = 10;
        Vector3 povorot;

        void Start () {
        povorot = transform.localRotation.eulerAngles;
        povorot.y += i;
        Debug.Log(povorot);

        transform.localRotation = Quaternion.Euler(povorot);
        }
       
     
}

 

Re: Простой вопрос.

СообщениеДобавлено: 28 ноя 2011, 18:35
Good1101
Спасибо то что нужно!