Передвижение персонажа

Программирование на Юнити.

Передвижение персонажа

Сообщение kolgute 31 мар 2019, 21:47

Непонятная проблема с непонятным, для меня, решением. Нужно для мобильной игры сделать передвижение персонажа на джостик, всё добавил и когда пришла пора писать код пошло что то не так...
Синтаксис:
Используется csharp
private Animation anim;

    private Rigidbody rb;
    [SerializeField]
    private float speed = 4f;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        anim = GetComponent<Animation>();
    }

    // Update is called once per frame
    void Update()
    {
        float x = CrossPlatformInputManager.GetAxis("Horizontal");
        float y = CrossPlatformInputManager.GetAxis("Vertical");

        Vector3 movement = new Vector3(x, 0.0f, y);
        rb.velocity = movement*4f;

        if (x != 0 && y != 0)
        {[list=][/list]
            transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(x, y) * Mathf.Rad2Deg, transform.eulerAngles.z);
        }

        if (x!=0 || y != 0)
        {
            anim.Play("Walk");
        }
        else
        {
            anim.Play("Idle");
        }
   

Для начала персонаж не хочет двигаться по вертикали, начинает двигать вверх или в низ, пока я не начну менять положение по Y а не по Z, и это первая непонятная проблема
Вторая проблема в конструкции IF
Синтаксис:
Используется csharp
if (x != 0 && y != 0)
        {
            transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(x, y) * Mathf.Rad2Deg, transform.eulerAngles.z);
        }
 

тут он должен рассчитывать угол поворота для Y и поворачивать что бы перемещение казалось реалистичным, однако если рассматривать движение по горизонтали то он не просто поговаривает модель влево\право а ещё ставит её вверх ногами, если брать вертикаль то при движении модель просто "ложится" на поверхность, подскажите что не так. Код не мой брал, брал у зарубежного блогера, у него всё работает без изъянов
kolgute
UNец
 
Сообщения: 3
Зарегистрирован: 31 мар 2019, 21:39

Re: Передвижение персонажа

Сообщение Tolking 01 апр 2019, 09:47

1)
x- влево/вправо
y- вверх/вниз
z- вперед/назад

2)
Возможно что модель неправильно импортирована, а возможно потому что 1.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Передвижение персонажа

Сообщение kolgute 01 апр 2019, 20:50

Tolking писал(а):1)
x- влево/вправо
y- вверх/вниз
z- вперед/назад

Так я это знаю, но когда код меняет значение Z он идёт не вперёд назад а вверх вниз
Tolking писал(а):2)
Возможно что модель неправильно импортирована, а возможно потому что 1.

Модель импортировал через AssetStore, пробовал разные модели, всёравно
kolgute
UNец
 
Сообщения: 3
Зарегистрирован: 31 мар 2019, 21:39

Re: Передвижение персонажа

Сообщение Tolking 01 апр 2019, 22:37

Значит так установлена камера.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Передвижение персонажа

Сообщение kolgute 02 апр 2019, 11:25

Tolking писал(а):Значит так установлена камера.

Да, действительно всё из за камеры, когда пробовал с камерой которая создаётся автоматически с новой сценой всё нормально, но мне нужна камера от Vuforia а с ней беда почему то, не знаете как пофиксить?
kolgute
UNец
 
Сообщения: 3
Зарегистрирован: 31 мар 2019, 21:39


Вернуться в Скрипты

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

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