Задать вопрос
@tryty

Поворот персонажа при движении кликом?

Персонаж двигается по клику, но возникает проблема на коротких дистанциях - не срабатывает Flip();.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Player : MonoBehaviour {

	public float speed;
	private Vector3 targetPosition;
	private bool isMoving = false;
	private bool facingRight = true;
	
	void Update()
    {
		if(Input.GetMouseButtonDown(0))
		{
			SetTargetPosition();
		}
		
		if(isMoving)
		{
		Move();
		}
		
		if(!facingRight && targetPosition.x > 0.1)
	  {
		  Flip();
	  }
	  else if(facingRight && targetPosition.x < 0.1)
	  {
		Flip();  
	  }
	}
	
	void SetTargetPosition()
	{
		targetPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
		targetPosition.z = transform.position.z;
		
		isMoving = true;
	}
	
	void Move()
	{
		//transform.rotation = Quaternion.LookRotation(Vector3.forward, targetPosition);
		transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
		
		if(transform.position == targetPosition)
		{
			isMoving = false;
		}
	}
	
	private void Flip()
	{
		facingRight = !facingRight;
		Vector3 Scaler = transform.localScale;
		Scaler.x *= -1;
		transform.localScale = Scaler;
	}
}
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
@tryty Автор вопроса
Зато мне дошло почему не всегда поворачивал targetPosition.x > 0.1 так как когда я стояв по х на 2 а двигал на 1 то у меня срабатывало > 0 хоть я и пошел в обратную сторону
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы