Понедельник, 25 Ноября 2024, 14:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите или подскажите с управлением
Blood56rusДата: Четверг, 09 Августа 2018, 15:49 | Сообщение # 1
частый гость
Сейчас нет на сайте
Только начал работать с UNITY и пока не особо вникаю в код.
Проблема такая с управлением мышью при перемещении из точки А в точку Б, персонаж идёт не по поверхности коллайдеров, а по диагонали к следующей точки, при чём под тем углом на который кликнул, а не под 90. Подскажите как исправить или у кого может есть готовый вариант, поделитесь пожалуйста.
Код
public class PlayerMove : MonoBehaviour {
Vector3 cursPosition;
Vector3 nextPosition;
public float speed;
bool isMove = false;
// Use this for initialization
void Start () {
isMove = false;
cursPosition = transform.position;
nextPosition = transform.position;
}

// Update is called once per frame
void Update () {

if(Input.GetMouseButtonDown(0))
{
isMove = true;
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if(Physics.Raycast(ray,out hit))
{
nextPosition = hit.point;
}

}
if (cursPosition != nextPosition && isMove) {
transform.position = Vector3.MoveTowards(transform.position,nextPosition,Time.deltaTime*speed);
transform.LookAt (nextPosition);
if(transform.position == nextPosition)
{
isMove = false;
}
}
}
}

BrightSpotДата: Четверг, 09 Августа 2018, 17:49 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Цитата Blood56rus ()
а по диагонали к следующей точки

==
Цитата Blood56rus ()
transform.position = Vector3.MoveTowards(transform.position,nextPosition,Time.deltaTime*speed);

blink
Цитата Blood56rus ()
при чём под тем углом на который кликнул

==
Цитата Blood56rus ()
transform.LookAt (nextPosition);

crazy
"покури" справку... И вникать в код прийдется, что бы такие глупости не задавать deal



Более мощный компьютер глючит быстрее и точнее.
  • Страница 1 из 1
  • 1
Поиск:

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