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

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

СообщениеДобавлено: 09 окт 2011, 21:13
zverrr
У меня есть 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

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

СообщениеДобавлено: 09 окт 2011, 21:20
waruiyume
Перед Vector3 нужно дописать new. Ещё нужно заморозить/сбросить вращение.

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

СообщениеДобавлено: 09 окт 2011, 21:23
zverrr
Ох, точно, благодарю :)

Да, вращение уже реализовал.

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

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

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

И более общий вопрос, как вы реализовываете управление персонажем?

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

СообщениеДобавлено: 10 окт 2011, 18:02
STARTS
http://player.7xf.ru/

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

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

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


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

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

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


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


Большое спасибо, но я неправильно отписался) Мне нужна строчка приземления. А то сколько не лазил по инету не нашёл как сделать что бы гг приземлялся на землю...

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

СообщениеДобавлено: 11 окт 2011, 08:32
STARTS
А всё спасибо, не нужно, совсем забыл про RegidBody)))