Построение вопроса - это его ошибка,
поворот происходит только когда я нажимаю мышкой на область самого персонажа
Он ничего не говорил про поворот к мыши.
public interface IWindow
{
void Open();
void Close();
}
public class InventoryWindow : IWindow{}
public class HealthWindow : IWindow{}
public class HouseWindow : IWindow{}
public class SomeObject
{
public void OpenWindow(IWindow window)
{
window.Open();
}
}
зачем интерфейсы нужны если их прийдёться постоянно писать
А на счёт архитектуры то игра впринципе не сложная и я толком пока не понимаю какая может быть архитектура
[SerializeField] private float movementSpeed;
[SerializeField] private float jumpForce;
[SerializeField] private GameObject playerModel;
public bool play = false;
private PlayerInput _playerInput;
private Transform player;
[SerializeField] private GameObject startScreen;
[SerializeField] private GameObject loseScreen;
public delegate void UIEvents();
public static event UIEvents TapOnScreen;
rb.velocity = ((transform.right * horizontal) + (transform.forward * vertical)) * speed;
var velocity = rb.velocity;
velocity......изменяешь скорость по осям, которые тебе нужны
rb.velocity = velocity; присваиваешь скорость
И то и то связано с тем что я эксперементирую и сам еще не решил что нужно использовать. Ну и конечно постоянные правки и переименования в которых тоже что то теряется.
Или все должно быть как в примере с помощью функции Get() и функции Set()?
public class Document
{
public string Text { get; set; }
}
public class Human
{
public void ReadDocument(Document document)
{
Debug.Log(document.Text);
}
}
public class Document
{
private readonly string _text;
public Document(string text)
{
_text = text;
}
public void Print()
{
Debug.Log(_text);
}
}
public class Human
{
public void ReadDocument(Document document)
{
document.Print();
}
}
StopCoroutine в конце корутины лишнее, она сама завершится.
ExpiredTime перемести из скоупа класса в скоуп корутины и тебе не нужно будет обнулять его:
Апдейт здесь не нужен. Ты вызываешь метод Jump и там уже выполняется проверка: если нормаль != Vector3.zero, то прыгать, соответственно, IsJumping тоже не нужен.
Кэшировать корутину надо, если тебе нужно прервать ее выполнение до момента, когда она сама завершится.