Пятница, 19 Апреля 2024, 13:49

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Персонаж не выходит из рамки определённого круга (анимации)
Персонаж не выходит из рамки определённого круга
UnityKoshksandaДата: Воскресенье, 13 Мая 2018, 23:37 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Сделал цикл анимаций - спокойствие и ходьба. Тоесть если я стою и не нажимаю ни на какие кнопки идёт анимация Idle,а если нажимаю на W A S D,идёт собственно анимация бега. Но,вот бегать я свободно не могу,анимация есть,но перс будто в какую-то стену упирается и не может бежать по территории. Помогите пли.

Кошка танцует до утра
CleverRusДата: Понедельник, 14 Мая 2018, 00:58 | Сообщение # 2
почетный гость
Сейчас нет на сайте
А скрипт контролера ты на персонажа накинул?
UnityKoshksandaДата: Понедельник, 14 Мая 2018, 14:33 | Сообщение # 3
почетный гость
Сейчас нет на сайте
да

Добавлено (14 Мая 2018, 14:33)
---------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player_script : MonoBehaviour {
public float x;
public float y;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
x = Input.GetAxis("Vertical");
y = Input.GetAxis("Horizontal");
if (Input.GetKey (KeyCode.W))
transform.rotation = Quaternion.Lerp (transform.rotation, Quaternion.Euler (0, transform.rotation.y, 0), 0.2f);
if (Input.GetKey (KeyCode.S))
transform.rotation = Quaternion.Lerp (transform.rotation, Quaternion.Euler (0, transform.rotation.y + 180, 0), 0.2f);
if (Input.GetKey (KeyCode.A))
transform.rotation = Quaternion.Lerp (transform.rotation, Quaternion.Euler (0, transform.rotation.y - 90, 0), 0.2f);
if (Input.GetKey (KeyCode.D))
transform.rotation = Quaternion.Lerp (transform.rotation, Quaternion.Euler (0, transform.rotation.y + 90, 0), 0.2f);
}
void FixedUpdate(){
gameObject.GetComponent<Animator> ().SetFloat ("Speed", x, 0.1f,Time.deltaTime);
gameObject.GetComponent<Animator> ().SetFloat ("Direction", y, 0.1f,Time.deltaTime);
}
}


Кошка танцует до утра
roma3fonДата: Понедельник, 14 Мая 2018, 15:55 | Сообщение # 4
участник
Сейчас нет на сайте
UnityKoshksanda,
1. Зачем проверять кнопки WSAD если ты используешь оси? Использовать напрямую кнопки, моветон. Всё настраивается в InputManager.
2. Ты поворачиваешь плеера, но не двигаешь (GetComponent<Rigidbody>().velocity = new Vector3(направление);).
3. Зачем изменять анимацию несколько раз в кардре, используй Update в крайнем случае LateUpdate.
4. А вот физику лучше считать в FixedUpdate.
UnityKoshksandaДата: Понедельник, 14 Мая 2018, 20:24 | Сообщение # 5
почетный гость
Сейчас нет на сайте
тоесть? я щас не дома,но можете подсказать что исправить в скрипте помимо апдейта

Кошка танцует до утра
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Персонаж не выходит из рамки определённого круга (анимации)
  • Страница 1 из 1
  • 1
Поиск:

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