private void GoToStorage() { storage = HumanHelper.FindNearBuilding(Building.BuildingType.Storage, transform.position); Move_Position pos = new Move_Position(storage.gameObject); move.SetMovePosition(pos, storage.gameObject.GetComponent <Collider>().bounds.extents.x * 2); state = State.GoToStorage; }
public void SetTask(Task task) { if (state != State.ReadyToTakeTask) { Debug.LogError("Worker can't take task"); return; } isTaskDoing = false; currentTask = task; switch (currentTask.taskType) { case Task.TaskType.resourceGathering: Move_Position pos = new Move_Position(Vector3.zero, task.taskTarget); move.SetMovePosition(pos, task.taskTarget.GetComponent <Collider>().bounds.extents.x); haveTask = true; break; } state = State.GoToTask; }
public void SetMovePosition(Move_Position position, float Offset) { if (stop) { if (position.targetPosition == null) { nextPosition = position.position; } else { nextPosition = position.targetPosition.transform.position; } if (!nextPosition.Equals(Vector3.zero)) { human.SetAnimationTrigger("Walk"); navMesh.SetDestination(nextPosition); navMesh.isStopped = false; stop = false; arrived = false; offset = Offset; StartCoroutine(DesiredVelocity()); } } }