// Update is called once per frame void Update() { if (!sentient.Alive()) { //dont try this at home playerHUD.DeathNotice(sentient); return; } if (Input.GetKey(KeyCode.W)) { movement.RegisterAction(Movement.MovementType.Forward); } else if (Input.GetKey(KeyCode.S)) { movement.RegisterAction(Movement.MovementType.Backward); } else if (Input.GetKey(KeyCode.D)) { movement.RegisterAction(Movement.MovementType.Left); } else if (Input.GetKey(KeyCode.A)) { movement.RegisterAction(Movement.MovementType.Right); } if (Input.GetKeyDown(KeyCode.E)) { sentient.Interact(); } playerHUD.UpdateScores(sentient); }
private void FixedUpdate() { if (sentient != null && sentient.InInteractionRange) { sentient.Interact(); return; } if (movement.CanReceiveInput) { var seenInteractions = vision?.AllInVision; if (canAssignPriorities) { var priorities = priorityEvaluator?.GetTargetPriorities(); if (priorities != null) { (selectedMovementStrat as IAwareMover).SetPriorities(priorities); } else { //UnityEngine.Debug.LogError($"Assigned smart priorities Strategies move selector, but sentient object has no way to get priorities on {name}"); } } if (selectedMovementStrat.GetNextMovement(seenInteractions, transform.position, out var move, out var vec)) { moveDirection = vec; movement.RegisterAction(move); } } }