Как реализовать движение объекта по одной оси?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как реализовать движение объекта по одной оси?

Сообщение zverrr 09 окт 2011, 21:13

У меня есть GameObject, которого я пытаюсь заставить двигаться. Двигаю вдоль оси таким кодом:

Синтаксис:
Используется csharp
...
        public GameObject hero;
...
        void FixedUpdate () {
                float moving = 0;
                moving = Input.GetAxis("Horizontal");
               
                hero.transform.Translate(0, 0, moving*Time.fixedDeltaTime*GroundSpeedDelta, Space.World);
...
        }


Как только объект сталкивается с другим физическим объектом, его координата меняется, и он продолжает двигаться по оси, но немного смещённый в сторону. Как заставить его при x!=0 переходить на x=0?

Первое, что приходит в голову:
Синтаксис:
Используется csharp
hero.transform.position = Vector3(0, hero.transform.position.y, hero.transform.position.z);
 


…но к моему удивлению получаю ошибку: error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected
Аватара пользователя
zverrr
UNIт
 
Сообщения: 84
Зарегистрирован: 24 сен 2011, 16:06

Re: Как реализовать движение объекта по одной оси?

Сообщение waruiyume 09 окт 2011, 21:20

Перед Vector3 нужно дописать new. Ещё нужно заморозить/сбросить вращение.
Последний раз редактировалось waruiyume 09 окт 2011, 21:31, всего редактировалось 1 раз.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как реализовать движение объекта по одной оси?

Сообщение zverrr 09 окт 2011, 21:23

Ох, точно, благодарю :)

Да, вращение уже реализовал.
Аватара пользователя
zverrr
UNIт
 
Сообщения: 84
Зарегистрирован: 24 сен 2011, 16:06

Re: Как реализовать движение объекта по одной оси?

Сообщение zverrr 10 окт 2011, 10:10

Есть ещё один вопрос, связанный с движением персонажа. Вот пример того, что получилось: http://player.7xf.ru/

Иногда, когда персонаж подпрыгивает над ящиками и в сторону, его тянет назад. Это связано с тем, что я не даю ему поворачиваться и двигаться по оси Х? Как это можно исправить?

И более общий вопрос, как вы реализовываете управление персонажем?
Аватара пользователя
zverrr
UNIт
 
Сообщения: 84
Зарегистрирован: 24 сен 2011, 16:06

Re: Как реализовать движение объекта по одной оси?

Сообщение STARTS 10 окт 2011, 18:02

http://player.7xf.ru/

Возможно покажусь наглым, но давно искал как сделать такой прыжок, мог бы дать скрипт?)
STARTS
UNец
 
Сообщения: 9
Зарегистрирован: 10 окт 2011, 17:52

Re: Как реализовать движение объекта по одной оси?

Сообщение zverrr 10 окт 2011, 20:03

STARTS писал(а):Возможно покажусь наглым, но давно искал как сделать такой прыжок, мог бы дать скрипт?)


Без проблем, это всего одна строчка:
Синтаксис:
Используется csharp
GameObject.transform.Translate(0, jumpingForce*Time.fixedDeltaTime, 0, Space.Self);
Аватара пользователя
zverrr
UNIт
 
Сообщения: 84
Зарегистрирован: 24 сен 2011, 16:06

Re: Как реализовать движение объекта по одной оси?

Сообщение STARTS 11 окт 2011, 08:15

zverrr писал(а):
STARTS писал(а):Возможно покажусь наглым, но давно искал как сделать такой прыжок, мог бы дать скрипт?)


Без проблем, это всего одна строчка:
Синтаксис:
Используется csharp
GameObject.transform.Translate(0, jumpingForce*Time.fixedDeltaTime, 0, Space.Self);


Большое спасибо, но я неправильно отписался) Мне нужна строчка приземления. А то сколько не лазил по инету не нашёл как сделать что бы гг приземлялся на землю...
STARTS
UNец
 
Сообщения: 9
Зарегистрирован: 10 окт 2011, 17:52

Re: Как реализовать движение объекта по одной оси?

Сообщение STARTS 11 окт 2011, 08:32

А всё спасибо, не нужно, совсем забыл про RegidBody)))
STARTS
UNец
 
Сообщения: 9
Зарегистрирован: 10 окт 2011, 17:52


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30