예제 #1
0
파일: Type_Worker.cs 프로젝트: Geksogod/TPR
    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;
    }
예제 #2
0
파일: Type_Worker.cs 프로젝트: Geksogod/TPR
 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;
 }
예제 #3
0
파일: Human_Move.cs 프로젝트: Geksogod/TPR
 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());
         }
     }
 }