private void ChangeToState_Traveling(RARC_RoomTab roomToWorkIn) { //Reset Timer currentTimeInState = 0; //Set Working Room currentWorkingRoom = roomToWorkIn; //Set Goal Spot if (currentWorkingRoom.currentFloorLevel == crewCurrentShipFloor) { crewPositionalGoal_GO = RARC_CrewBotsController.Instance.GetTravelingPosition(currentWorkingRoom, gameObject.transform.position); Utility_SetFacingDirection(); isGoingInElevator = false; } else { crewPositionalGoal_GO = RARC_CrewBotsController.Instance.GetClosestElevatorPosition(crewCurrentShipFloor); Utility_SetFacingDirection(); //Utlity_CalculateDirectionOfElevator(); isGoingInElevator = true; } //Set Animator Utility_SetAnimation_Walk(); //Change To Wandering crewCurrent_State = CrewState.Traveling; }
///////////////////////////////////////////////////////////////// public GameObject GetWanderingNodePosition(int shipFloorLevel, Vector3 currentMemberPosition) { //Filter Rooms On Level Then Grab a Room Then Grab a Node In Room List <RARC_RoomTab> roomsOnFloorLevel_List = RARC_RoomsController.Instance.GetRoomsOnFloorLevel(shipFloorLevel); RARC_RoomTab selectedRoom = roomsOnFloorLevel_List[Random.Range(0, roomsOnFloorLevel_List.Count)]; return(selectedRoom.GetRandomNode(currentMemberPosition)); }
public void SpawnCrewInRoom(RARC_RoomTab roomTab, RARC_Crew newCrewMember) { Vector3 spawnPoint = roomTab.GetRandomNode(new Vector3(0, 0, 0)).transform.position; GameObject newCrewMember_GO = Instantiate(crew_Prefab, crew_Container.transform); newCrewMember_GO.transform.position = spawnPoint; //Set Crew Info For Current Level newCrewMember_GO.GetComponent <RARC_CrewAgent>().crewCurrentShipFloor = roomTab.currentFloorLevel; }
public GameObject GetTravelingPosition(RARC_RoomTab workstationRoomTab, Vector3 currentMemberPosition) { //Filter Rooms On Level Then Grab a Room Then Grab a Node In Room return(workstationRoomTab.GetRandomNode(currentMemberPosition)); }