Пятница, 22 Ноября 2024, 12:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с RB и Rotation[РЕШЕНО]
dzrone3488Дата: Среда, 14 Января 2015, 00:47 | Сообщение # 1
участник
Сейчас нет на сайте
У меня объект движется в одну сторону, может прыгать. Мне нужно, чтобы, когда он прыгал он перекручивался в воздухе, но когда он перекручивается он начинает передвигаться в другую сторону.Как это исправить. Делаю кубик на примере кубиков из игр таких как Impossible Game или Geometry Dash если что smile

Скрипт в студию!

Код

using UnityEngine;
using System.Collections;

public class CubeController : MonoBehaviour {

      public float transformSpeed;
      public float jumpPower;

      public KeyCode keyForJump;

      public RaycastHit hitData;

   void Start () {
     
   }
     
     
   void Update () {

          gameObject.transform.Translate(0, 0, -transformSpeed);

          if (Input.GetKey(keyForJump))
          {
              if (Physics.Raycast(transform.position, -Vector3.up, out hitData, 0.5f))
              {

                  rigidbody.AddForce(0, jumpPower, 0);
              }
              else
              {
                  transform.Rotate(-15.0f,0,0);
              }
          }
     
   }
}


Я делаю игры, а вы в них играете! :)
Моя группа по созданию игр - www.vk.com/dzrone



Сообщение отредактировал dzrone3488 - Среда, 14 Января 2015, 13:10
MANMANAДата: Среда, 14 Января 2015, 02:27 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата dzrone3488 ()
gameObject.transform.Translate(0, 0, -transformSpeed);

двигай в мировых координатах, а не в локальных
http://docs.unity3d.com/ScriptReference/Transform.Translate.html
Space.World которые. но тебе придется через sin/cos выдерживать верное направление


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
GECKДата: Среда, 14 Января 2015, 08:53 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Я бы сделал объект, который только перемещается, и засунул в него дочерний куб, который уже вращается, плющится и делает все что угодно.

Всё гениальное просто. И хреново работает.
MANMANAДата: Среда, 14 Января 2015, 12:39 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
GECK, ога, я такой же костыль делал для вертолета, тудыть его.
вешал пустышку на центр объекта в Blendere, делал к ней дочкой вертолет. Пустыху вращал только по двум осям, а вертолет по третьей, чтобы он собака такая в землю не сваливался без пустыхи при .forward в локальных


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
dzrone3488Дата: Среда, 14 Января 2015, 13:09 | Сообщение # 5
участник
Сейчас нет на сайте
Всем большое спасибо за внимание! Мне помог ответ MANMANA
Цитата MANMANA ()
gameObject.transform.Translate(0, 0, -transformSpeed);

двигай в мировых координатах, а не в локальных
http://docs.unity3d.com/ScriptReference/Transform.Translate.html
Space.World которые. но тебе придется через sin/cos выдерживать верное направление


Я просто как было им сказано двигал в мировых координатах добавив
Код

Space.World


Как четвёртый аргумент Translate

Цитата MANMANA ()
но тебе придется через sin/cos выдерживать верное направление


Я выравниваю направление моего кубика методом, игнорирования осей X и по осям ротации X Y Z в Компоненте RigidBody и всё!


Я делаю игры, а вы в них играете! :)
Моя группа по созданию игр - www.vk.com/dzrone

allodsДата: Среда, 14 Января 2015, 19:11 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
крути через Rotate или через eulerAngles

или засунь в префаб, и покрути в префабе или сам префаб покрути.


Сообщение отредактировал allods - Среда, 14 Января 2015, 19:12
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг