Init commit
This commit is contained in:
parent
07c0e21a57
commit
31ea50c10a
@ -2419,6 +2419,37 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &181975869
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 181975870}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: BartenderSpawn
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &181975870
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 181975869}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: -7}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1360757596}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &186139407
|
--- !u!1 &186139407
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -4327,8 +4358,6 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 7ab08469541b2aa45818fa36bbcb9cf7, type: 3}
|
m_Script: {fileID: 11500000, guid: 7ab08469541b2aa45818fa36bbcb9cf7, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
_persistent: 0
|
|
||||||
<CustomerDataSo>k__BackingField: {fileID: 11400000, guid: e6ce9d58057b580479880585947969d8, type: 2}
|
|
||||||
_customerPrefab: {fileID: -2302002259734456648, guid: 23195e611c71ad44b8a1ccb2b6e0efe5, type: 3}
|
_customerPrefab: {fileID: -2302002259734456648, guid: 23195e611c71ad44b8a1ccb2b6e0efe5, type: 3}
|
||||||
_customerSpawnTransform: {fileID: 1038321203}
|
_customerSpawnTransform: {fileID: 1038321203}
|
||||||
_checkEmptySeatInterval: 0.5
|
_checkEmptySeatInterval: 0.5
|
||||||
@ -5272,6 +5301,37 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 444009244}
|
m_GameObject: {fileID: 444009244}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &473619455
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 473619456}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: ServerSpawn
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &473619456
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 473619455}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: -7}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1360757596}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &510358306
|
--- !u!1 &510358306
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -9288,12 +9348,12 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 887608711}
|
m_GameObject: {fileID: 887608711}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -7}
|
m_LocalPosition: {x: 0, y: 0, z: -7}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 1665075868}
|
m_Father: {fileID: 1360757596}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &891021167
|
--- !u!1 &891021167
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -14334,6 +14394,40 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: bbb4e96b2ebafc246b85623c547a7d01, type: 3}
|
m_Script: {fileID: 11500000, guid: bbb4e96b2ebafc246b85623c547a7d01, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &1360757595
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1360757596}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Crews
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1360757596
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1360757595}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 887608712}
|
||||||
|
- {fileID: 473619456}
|
||||||
|
- {fileID: 181975870}
|
||||||
|
m_Father: {fileID: 1665075868}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1370164786
|
--- !u!1 &1370164786
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -18444,7 +18538,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 887608712}
|
- {fileID: 1360757596}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &1665075869
|
--- !u!114 &1665075869
|
||||||
@ -18545,14 +18639,14 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
_cleanerCrewPrefab: {fileID: 3226241112093390236, guid: fb1e288d64b813b4a9929ba9ece44956, type: 3}
|
_cleanerCrewPrefab: {fileID: 3226241112093390236, guid: fb1e288d64b813b4a9929ba9ece44956, type: 3}
|
||||||
_servingCrewPrefab: {fileID: 0}
|
_servingCrewPrefab: {fileID: 1745629821853633206, guid: b692f61d994a0b94cb92cf0f2d47cfb2, type: 3}
|
||||||
_bartenderCrewPrefab: {fileID: 0}
|
_bartenderCrewPrefab: {fileID: 0}
|
||||||
_cleanerCrewSpawnTransform: {fileID: 887608712}
|
_cleanerCrewSpawnTransform: {fileID: 887608712}
|
||||||
_servingCrewSpawnTransform: {fileID: 0}
|
_servingCrewSpawnTransform: {fileID: 473619456}
|
||||||
_bartenderCrewSpawnTransform: {fileID: 0}
|
_bartenderCrewSpawnTransform: {fileID: 181975870}
|
||||||
<Crews>k__BackingField: []
|
<Crews>k__BackingField: []
|
||||||
<CleanerCrews>k__BackingField: []
|
<CleanerCrews>k__BackingField: []
|
||||||
<ServingCrews>k__BackingField: []
|
<ServerCrews>k__BackingField: []
|
||||||
<BartenderCrews>k__BackingField: []
|
<BartenderCrews>k__BackingField: []
|
||||||
--- !u!1 &1670140492
|
--- !u!1 &1670140492
|
||||||
GameObject:
|
GameObject:
|
||||||
|
@ -3,19 +3,19 @@ using BlueWater.Npcs.Crews;
|
|||||||
|
|
||||||
namespace BlueWater.BehaviorTrees.Actions
|
namespace BlueWater.BehaviorTrees.Actions
|
||||||
{
|
{
|
||||||
[TaskCategory("Custom/Npc/Crew/Cleaner")]
|
[TaskCategory("Custom/Npc/Crew")]
|
||||||
public class CompleteCleaning : Action
|
public class CompleteMission : Action
|
||||||
{
|
{
|
||||||
private CleanerCrew _cleanerCrew;
|
private Crew _crew;
|
||||||
|
|
||||||
public override void OnAwake()
|
public override void OnAwake()
|
||||||
{
|
{
|
||||||
_cleanerCrew = GetComponent<CleanerCrew>();
|
_crew = GetComponent<Crew>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
{
|
{
|
||||||
if (_cleanerCrew.CrewInteraction == null && _cleanerCrew.IsCleaningFloor == false && _cleanerCrew.IsCleaningTable == false)
|
if (_crew.CrewInteraction == null)
|
||||||
{
|
{
|
||||||
return TaskStatus.Success;
|
return TaskStatus.Success;
|
||||||
}
|
}
|
||||||
|
@ -3,26 +3,26 @@ using BlueWater.Npcs.Crews;
|
|||||||
|
|
||||||
namespace BlueWater.BehaviorTrees.Actions
|
namespace BlueWater.BehaviorTrees.Actions
|
||||||
{
|
{
|
||||||
[TaskCategory("Custom/Npc/Crew/Cleaner")]
|
[TaskCategory("Custom/Npc/Crew")]
|
||||||
public class MoveToRandomPositionInRange : Action
|
public class MoveToRandomPositionInRange : Action
|
||||||
{
|
{
|
||||||
private CleanerCrew _cleanerCrew;
|
private Crew _crew;
|
||||||
|
|
||||||
public override void OnAwake()
|
public override void OnAwake()
|
||||||
{
|
{
|
||||||
_cleanerCrew = GetComponent<CleanerCrew>();
|
_crew = GetComponent<Crew>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnStart()
|
public override void OnStart()
|
||||||
{
|
{
|
||||||
_cleanerCrew.AIMovement.MoveToRandomPositionInRange(10f);
|
_crew.AIMovement.MoveToRandomPositionInRange(10f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
{
|
{
|
||||||
if (_cleanerCrew.AIMovement.HasReachedDestination())
|
if (_crew.AIMovement.HasReachedDestination())
|
||||||
{
|
{
|
||||||
_cleanerCrew.AIMovement.StopMove();
|
_crew.AIMovement.StopMove();
|
||||||
return TaskStatus.Success;
|
return TaskStatus.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
using BehaviorDesigner.Runtime.Tasks;
|
|
||||||
using BlueWater.Npcs.Crews;
|
|
||||||
|
|
||||||
namespace BlueWater.BehaviorTrees.Actions
|
|
||||||
{
|
|
||||||
[TaskCategory("Custom/Npc/Crew/Cleaner")]
|
|
||||||
public class CheckCleaning : Conditional
|
|
||||||
{
|
|
||||||
private CleanerCrew _cleanerCrew;
|
|
||||||
|
|
||||||
public override void OnAwake()
|
|
||||||
{
|
|
||||||
_cleanerCrew = GetComponent<CleanerCrew>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
|
||||||
{
|
|
||||||
return _cleanerCrew.IsOnMission ? TaskStatus.Success : TaskStatus.Failure;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,21 @@
|
|||||||
|
using BehaviorDesigner.Runtime.Tasks;
|
||||||
|
using BlueWater.Npcs.Crews;
|
||||||
|
|
||||||
|
namespace BlueWater.BehaviorTrees.Actions
|
||||||
|
{
|
||||||
|
[TaskCategory("Custom/Npc/Crew")]
|
||||||
|
public class CheckOnMission : Conditional
|
||||||
|
{
|
||||||
|
private Crew _crew;
|
||||||
|
|
||||||
|
public override void OnAwake()
|
||||||
|
{
|
||||||
|
_crew = GetComponent<Crew>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override TaskStatus OnUpdate()
|
||||||
|
{
|
||||||
|
return _crew.IsOnMission ? TaskStatus.Success : TaskStatus.Failure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -3,43 +3,43 @@ using BlueWater.Npcs.Crews;
|
|||||||
|
|
||||||
namespace BlueWater.BehaviorTrees.Actions
|
namespace BlueWater.BehaviorTrees.Actions
|
||||||
{
|
{
|
||||||
[TaskCategory("Custom/Npc/Crew/Cleaner")]
|
[TaskCategory("Custom/Npc/Crew")]
|
||||||
public class Cleaning : Conditional
|
public class OnMission : Conditional
|
||||||
{
|
{
|
||||||
private CleanerCrew _cleanerCrew;
|
private Crew _crew;
|
||||||
|
|
||||||
public override void OnAwake()
|
public override void OnAwake()
|
||||||
{
|
{
|
||||||
_cleanerCrew = GetComponent<CleanerCrew>();
|
_crew = GetComponent<Crew>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnStart()
|
public override void OnStart()
|
||||||
{
|
{
|
||||||
if (_cleanerCrew.CrewInteraction != null)
|
if (_crew.CrewInteraction != null)
|
||||||
{
|
{
|
||||||
_cleanerCrew.AIMovement.Move(_cleanerCrew.CrewInteraction.CenterTransform.position);
|
_crew.AIMovement.Move(_crew.CrewInteraction.CenterTransform.position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
{
|
{
|
||||||
if (_cleanerCrew.CrewInteraction == null)
|
if (_crew.CrewInteraction == null)
|
||||||
{
|
{
|
||||||
_cleanerCrew.AIMovement.StopMove();
|
_crew.AIMovement.StopMove();
|
||||||
_cleanerCrew.ResetMission();
|
_crew.ResetMission();
|
||||||
return TaskStatus.Failure;
|
return TaskStatus.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_cleanerCrew.CrewInteraction.CanInteractionCrew())
|
if (!_crew.CrewInteraction.CanInteractionCrew())
|
||||||
{
|
{
|
||||||
_cleanerCrew.AIMovement.StopMove();
|
_crew.AIMovement.StopMove();
|
||||||
return TaskStatus.Failure;
|
return TaskStatus.Failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_cleanerCrew.CanInteractionPosition()) return TaskStatus.Running;
|
if (!_crew.CanInteractionPosition()) return TaskStatus.Running;
|
||||||
|
|
||||||
_cleanerCrew.AIMovement.StopMove();
|
_crew.AIMovement.StopMove();
|
||||||
_cleanerCrew.CrewInteraction.InteractionCrew(_cleanerCrew);
|
_crew.CrewInteraction.InteractionCrew(_crew);
|
||||||
|
|
||||||
return TaskStatus.Success;
|
return TaskStatus.Success;
|
||||||
}
|
}
|
||||||
|
@ -5,35 +5,6 @@ namespace BlueWater.Npcs.Crews
|
|||||||
{
|
{
|
||||||
public class CleanerCrew: Crew
|
public class CleanerCrew: Crew
|
||||||
{
|
{
|
||||||
public void OnMission(ICrewInteraction crewInteraction)
|
|
||||||
{
|
|
||||||
CrewInteraction = crewInteraction;
|
|
||||||
CrewInteraction.OnInteractionCompleted += InteractionCompleted;
|
|
||||||
IsOnMission = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResetMission()
|
|
||||||
{
|
|
||||||
CrewInteraction = null;
|
|
||||||
IsOnMission = false;
|
|
||||||
IsCleaningFloor = false;
|
|
||||||
IsCleaningTable = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanInteractionPosition()
|
|
||||||
{
|
|
||||||
if (CrewInteraction.CenterTransform == null) return false;
|
|
||||||
|
|
||||||
return AIMovement.HasReachedDestination() ||
|
|
||||||
Vector3.Distance(CrewInteraction.CenterTransform.position, transform.position) <=
|
|
||||||
CrewInteraction.InteractionRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InteractionCompleted()
|
|
||||||
{
|
|
||||||
CrewInteraction.OnInteractionCompleted -= InteractionCompleted;
|
|
||||||
|
|
||||||
ResetMission();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -198,6 +198,39 @@ namespace BlueWater.Npcs.Crews
|
|||||||
CurrentState.EnterState(this);
|
CurrentState.EnterState(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void OnMission(ICrewInteraction crewInteraction)
|
||||||
|
{
|
||||||
|
CrewInteraction = crewInteraction;
|
||||||
|
CrewInteraction.OnInteractionCompleted += InteractionCompleted;
|
||||||
|
IsOnMission = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void ResetMission()
|
||||||
|
{
|
||||||
|
CrewInteraction = null;
|
||||||
|
IsOnMission = false;
|
||||||
|
IsCleaningFloor = false;
|
||||||
|
IsCleaningTable = false;
|
||||||
|
IsServing = false;
|
||||||
|
IsMakingCocktail = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual bool CanInteractionPosition()
|
||||||
|
{
|
||||||
|
if (CrewInteraction.CenterTransform == null) return false;
|
||||||
|
|
||||||
|
return AIMovement.HasReachedDestination() ||
|
||||||
|
Vector3.Distance(CrewInteraction.CenterTransform.position, transform.position) <=
|
||||||
|
CrewInteraction.InteractionRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void InteractionCompleted()
|
||||||
|
{
|
||||||
|
CrewInteraction.OnInteractionCompleted -= InteractionCompleted;
|
||||||
|
|
||||||
|
ResetMission();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +1,9 @@
|
|||||||
|
using BlueWater.Interfaces;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Npcs.Crews
|
namespace BlueWater.Npcs.Crews
|
||||||
{
|
{
|
||||||
public class ServingCrew: Crew
|
public class ServerCrew: Crew
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
@ -99,6 +99,9 @@ namespace BlueWater.Npcs.Customers
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public CocktailData OrderedCocktailData { get; private set; }
|
public CocktailData OrderedCocktailData { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Bill CurrentBill { get; set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public bool IsReceivedItem { get; set; }
|
public bool IsReceivedItem { get; set; }
|
||||||
|
|
||||||
@ -179,9 +182,7 @@ namespace BlueWater.Npcs.Customers
|
|||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
if (_isQuitting) return;
|
EventManager.InvokeDestroyCustomer(this);
|
||||||
|
|
||||||
CustomerManager.Instance.UnregisterCustomer(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -142,6 +142,12 @@ namespace BlueWater
|
|||||||
OnCreateCustomer?.Invoke();
|
OnCreateCustomer?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Action<Customer> OnDestroyCustomer;
|
||||||
|
public static void InvokeDestroyCustomer(Customer customer)
|
||||||
|
{
|
||||||
|
OnDestroyCustomer?.Invoke(customer);
|
||||||
|
}
|
||||||
|
|
||||||
// 손님이 칵테일 주문 이벤트
|
// 손님이 칵테일 주문 이벤트
|
||||||
public static Action<Customer> OnOrderedCocktail;
|
public static Action<Customer> OnOrderedCocktail;
|
||||||
public static void InvokeOrderedCocktail(Customer orderedCustomer)
|
public static void InvokeOrderedCocktail(Customer orderedCustomer)
|
||||||
@ -170,10 +176,10 @@ namespace BlueWater
|
|||||||
OnCreateCleanerCrew?.Invoke();
|
OnCreateCleanerCrew?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Func<ServingCrew> OnCreateServingCrew;
|
public static Func<ServerCrew> OnCreateServerCrew;
|
||||||
public static void InvokeCreateServingCrew()
|
public static void InvokeCreateServerCrew()
|
||||||
{
|
{
|
||||||
OnCreateServingCrew?.Invoke();
|
OnCreateServerCrew?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Func<BartenderCrew> OnCreateBartenderCrew;
|
public static Func<BartenderCrew> OnCreateBartenderCrew;
|
||||||
|
@ -1,16 +1,36 @@
|
|||||||
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Npcs.Crews;
|
||||||
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
{
|
{
|
||||||
public class ServingTable : InteractionFurniture
|
public class ServingTable : InteractionFurniture, ICrewInteraction
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private SpriteRenderer _cocktailGlassImage;
|
private SpriteRenderer _cocktailGlassImage;
|
||||||
|
|
||||||
// 서빙 테이블 기준 아이템이 있는지 없는지
|
// 서빙 테이블 기준 아이템이 있는지 없는지
|
||||||
private IPickup _currentPickupItem;
|
private IPickup _currentPickupItem;
|
||||||
|
public IPickup CurrentPickupItem
|
||||||
|
{
|
||||||
|
get => _currentPickupItem;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_currentPickupItem = value;
|
||||||
|
|
||||||
|
if (_currentPickupItem != null)
|
||||||
|
{
|
||||||
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _findServerCrewInstance,
|
||||||
|
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.ServerCrews, crew => crew.OnMission(this)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Material _originalCocktailGlassMaterial;
|
private Material _originalCocktailGlassMaterial;
|
||||||
|
private Coroutine _findServerCrewInstance;
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
@ -22,23 +42,23 @@ namespace BlueWater.Tycoons
|
|||||||
public override void Interaction()
|
public override void Interaction()
|
||||||
{
|
{
|
||||||
// 테이블의 칵테일을 가져가는 경우
|
// 테이블의 칵테일을 가져가는 경우
|
||||||
if (_currentPickupItem != null)
|
if (CurrentPickupItem != null)
|
||||||
{
|
{
|
||||||
EventManager.InvokeTakeFromServingTable();
|
EventManager.InvokeTakeFromServingTable();
|
||||||
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(_currentPickupItem);
|
CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem);
|
||||||
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.SetItemImage(_currentPickupItem);
|
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem);
|
||||||
_cocktailGlassImage.enabled = false;
|
_cocktailGlassImage.enabled = false;
|
||||||
InteractionCanvas.BalloonUi.DiscardItem();
|
InteractionCanvas.BalloonUi.DiscardItem();
|
||||||
_currentPickupItem = null;
|
CurrentPickupItem = null;
|
||||||
}
|
}
|
||||||
// 테이블에 칵테일을 놓는 경우
|
// 테이블에 칵테일을 놓는 경우
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EventManager.InvokePlaceOnServingTable();
|
EventManager.InvokePlaceOnServingTable();
|
||||||
_currentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.GetCurrentPickupItem();
|
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.GetCurrentPickupItem();
|
||||||
CurrentTycoonPlayer.TycoonPickupHandler.GiveItem(_currentPickupItem);
|
CurrentTycoonPlayer.TycoonPickupHandler.GiveItem(CurrentPickupItem);
|
||||||
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.DiscardItem();
|
CurrentTycoonPlayer.InteractionCanvas.BalloonUi.DiscardItem();
|
||||||
InteractionCanvas.BalloonUi.SetItemImage(_currentPickupItem);
|
InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem);
|
||||||
_cocktailGlassImage.enabled = true;
|
_cocktailGlassImage.enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -47,13 +67,13 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
// 1. 테이블에 칵테일이 있고, 플레이어가 칵테일을 들고 있지 않은 경우
|
// 1. 테이블에 칵테일이 있고, 플레이어가 칵테일을 들고 있지 않은 경우
|
||||||
// 2. 테이블에 칵테일이 없고, 플레이어가 칵테일을 들고 있는 경우 (정상적인 칵테일만)
|
// 2. 테이블에 칵테일이 없고, 플레이어가 칵테일을 들고 있는 경우 (정상적인 칵테일만)
|
||||||
return (_currentPickupItem != null && !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpCocktail())||
|
return (CurrentPickupItem != null && !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpCocktail())||
|
||||||
(_currentPickupItem == null && CurrentTycoonPlayer.TycoonPickupHandler.IsServablePickupItem());
|
(CurrentPickupItem == null && CurrentTycoonPlayer.TycoonPickupHandler.IsServablePickupItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ShowInteractionUi()
|
public override void ShowInteractionUi()
|
||||||
{
|
{
|
||||||
InteractionMessage = _currentPickupItem != null ? "음료 들기" : "음료 내려놓기";
|
InteractionMessage = CurrentPickupItem != null ? "음료 들기" : "음료 내려놓기";
|
||||||
base.ShowInteractionUi();
|
base.ShowInteractionUi();
|
||||||
|
|
||||||
_cocktailGlassImage.material = OutlineMaterial;
|
_cocktailGlassImage.material = OutlineMaterial;
|
||||||
@ -65,5 +85,22 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
_cocktailGlassImage.material = _originalCocktailGlassMaterial;
|
_cocktailGlassImage.material = _originalCocktailGlassMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void InteractionCrew(Crew crew)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CancelInteractionCrew()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CanInteractionCrew()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public event Action OnInteractionCompleted;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -98,38 +98,6 @@ namespace BlueWater.Tycoons
|
|||||||
InteractionMessage = "치우기";
|
InteractionMessage = "치우기";
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator FindCleanerCrewCoroutine()
|
|
||||||
{
|
|
||||||
var waitTime = new WaitForSeconds(2f);
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
var cleaners = TycoonManager.Instance.CrewController.CleanerCrews;
|
|
||||||
if (cleaners == null || cleaners.Count == 0)
|
|
||||||
{
|
|
||||||
yield return waitTime;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var closestCleaners = cleaners.OrderBy(element =>
|
|
||||||
Vector3.Distance(element.transform.position, transform.position)).ToList();
|
|
||||||
var isFound = false;
|
|
||||||
|
|
||||||
foreach (var element in closestCleaners.Where(element => !element.IsOnMission))
|
|
||||||
{
|
|
||||||
element.OnMission(this);
|
|
||||||
isFound = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isFound)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return waitTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetTableNumber(int number) => TableNumber = number;
|
public void SetTableNumber(int number) => TableNumber = number;
|
||||||
|
|
||||||
public void SetFood(Sprite sprite)
|
public void SetFood(Sprite sprite)
|
||||||
@ -179,7 +147,9 @@ namespace BlueWater.Tycoons
|
|||||||
InteractionCanvas.BalloonUi.OrderItem(_dirtyImage, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(_dirtyImage, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
||||||
IsCleaned = false;
|
IsCleaned = false;
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance, FindCleanerCrewCoroutine());
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
||||||
|
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InteractionCrew(Crew crew)
|
public void InteractionCrew(Crew crew)
|
||||||
|
@ -68,40 +68,9 @@ namespace BlueWater.Tycoons
|
|||||||
InteractionMessage = "치우기";
|
InteractionMessage = "치우기";
|
||||||
vomitingImage = VisualLook.GetComponent<SpriteRenderer>().sprite;
|
vomitingImage = VisualLook.GetComponent<SpriteRenderer>().sprite;
|
||||||
InteractionCanvas.BalloonUi.OrderItem(vomitingImage, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(vomitingImage, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
||||||
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance, FindCleanerCrewCoroutine());
|
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
||||||
}
|
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
||||||
|
|
||||||
private IEnumerator FindCleanerCrewCoroutine()
|
|
||||||
{
|
|
||||||
var waitTime = new WaitForSeconds(2f);
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
var cleaners = TycoonManager.Instance.CrewController.CleanerCrews;
|
|
||||||
if (cleaners == null || cleaners.Count == 0)
|
|
||||||
{
|
|
||||||
yield return waitTime;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var closestCleaners = cleaners.OrderBy(element =>
|
|
||||||
Vector3.Distance(element.transform.position, transform.position)).ToList();
|
|
||||||
var isFound = false;
|
|
||||||
|
|
||||||
foreach (var element in closestCleaners.Where(element => !element.IsOnMission))
|
|
||||||
{
|
|
||||||
element.OnMission(this);
|
|
||||||
isFound = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isFound)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return waitTime;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Interaction()
|
public override void Interaction()
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using BlueWater.Npcs.Crews;
|
using BlueWater.Npcs.Crews;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -13,7 +15,7 @@ namespace BlueWater.Tycoons
|
|||||||
private CleanerCrew _cleanerCrewPrefab;
|
private CleanerCrew _cleanerCrewPrefab;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private ServingCrew _servingCrewPrefab;
|
private ServerCrew _servingCrewPrefab;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private BartenderCrew _bartenderCrewPrefab;
|
private BartenderCrew _bartenderCrewPrefab;
|
||||||
@ -36,7 +38,7 @@ namespace BlueWater.Tycoons
|
|||||||
public List<CleanerCrew> CleanerCrews { get; private set; }
|
public List<CleanerCrew> CleanerCrews { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public List<ServingCrew> ServingCrews { get; private set; }
|
public List<ServerCrew> ServerCrews { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public List<BartenderCrew> BartenderCrews { get; private set; }
|
public List<BartenderCrew> BartenderCrews { get; private set; }
|
||||||
@ -44,14 +46,14 @@ namespace BlueWater.Tycoons
|
|||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
EventManager.OnCreateCleanerCrew += CreateCleanerCrew;
|
EventManager.OnCreateCleanerCrew += CreateCleanerCrew;
|
||||||
EventManager.OnCreateServingCrew += CreateServingCrew;
|
EventManager.OnCreateServerCrew += CreateServerCrew;
|
||||||
EventManager.OnCreateBartenderCrew += CreateBartenderCrew;
|
EventManager.OnCreateBartenderCrew += CreateBartenderCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
EventManager.OnCreateCleanerCrew -= CreateCleanerCrew;
|
EventManager.OnCreateCleanerCrew -= CreateCleanerCrew;
|
||||||
EventManager.OnCreateServingCrew -= CreateServingCrew;
|
EventManager.OnCreateServerCrew -= CreateServerCrew;
|
||||||
EventManager.OnCreateBartenderCrew -= CreateBartenderCrew;
|
EventManager.OnCreateBartenderCrew -= CreateBartenderCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,10 +67,10 @@ namespace BlueWater.Tycoons
|
|||||||
return newCrew;
|
return newCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServingCrew CreateServingCrew()
|
public ServerCrew CreateServerCrew()
|
||||||
{
|
{
|
||||||
var newCrew = Instantiate(_servingCrewPrefab, _servingCrewSpawnTransform.position, _servingCrewPrefab.transform.rotation);
|
var newCrew = Instantiate(_servingCrewPrefab, _servingCrewSpawnTransform.position, _servingCrewPrefab.transform.rotation);
|
||||||
Utils.RegisterList(ServingCrews, newCrew);
|
Utils.RegisterList(ServerCrews, newCrew);
|
||||||
Utils.RegisterList(Crews, newCrew);
|
Utils.RegisterList(Crews, newCrew);
|
||||||
newCrew.Initialize();
|
newCrew.Initialize();
|
||||||
|
|
||||||
@ -84,5 +86,33 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
return newCrew;
|
return newCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T FindClosestAvailableCrew<T>(Vector3 position, List<T> crews) where T : Crew
|
||||||
|
{
|
||||||
|
if (crews == null || crews.Count == 0) return null;
|
||||||
|
|
||||||
|
var availableCrews = crews.Where(crew => !crew.IsOnMission).ToList();
|
||||||
|
if (availableCrews.Count == 0) return null;
|
||||||
|
|
||||||
|
return availableCrews
|
||||||
|
.OrderBy(crew => Vector3.Distance(crew.transform.position, position))
|
||||||
|
.FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerator FindClosestCrewCoroutine<T>(Vector3 position, List<T> crews, System.Action<T> onCrewFoundEvent) where T : Crew
|
||||||
|
{
|
||||||
|
var waitTime = new WaitForSeconds(2f);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
var closestCrew = FindClosestAvailableCrew(position, crews);
|
||||||
|
if (closestCrew != null)
|
||||||
|
{
|
||||||
|
onCrewFoundEvent?.Invoke(closestCrew);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return waitTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,12 +7,9 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
{
|
{
|
||||||
public class CustomerManager : Singleton<CustomerManager>
|
public class CustomerController : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Title("손님 데이터")]
|
[Title("손님 데이터")]
|
||||||
[field: SerializeField, Required]
|
|
||||||
public CustomerDataSo CustomerDataSo { get; private set; }
|
|
||||||
|
|
||||||
[SerializeField, Required]
|
[SerializeField, Required]
|
||||||
private Customer _customerPrefab;
|
private Customer _customerPrefab;
|
||||||
|
|
||||||
@ -37,11 +34,13 @@ namespace BlueWater.Tycoons
|
|||||||
_customerTableController = TycoonManager.Instance.CustomerTableController;
|
_customerTableController = TycoonManager.Instance.CustomerTableController;
|
||||||
|
|
||||||
EventManager.OnCreateCustomer += TryFindEmptySeat;
|
EventManager.OnCreateCustomer += TryFindEmptySeat;
|
||||||
|
EventManager.OnDestroyCustomer += UnregisterCustomer;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
EventManager.OnCreateCustomer -= TryFindEmptySeat;
|
EventManager.OnCreateCustomer -= TryFindEmptySeat;
|
||||||
|
EventManager.OnDestroyCustomer -= UnregisterCustomer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Customer CreateCustomer()
|
public Customer CreateCustomer()
|
||||||
@ -116,18 +115,12 @@ namespace BlueWater.Tycoons
|
|||||||
Utils.UnregisterList(InstanceCustomers, customer);
|
Utils.UnregisterList(InstanceCustomers, customer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CustomerData GetRandomCustomerData()
|
public void CheckInstanceCustomerBills()
|
||||||
{
|
{
|
||||||
var customerDataCount = CustomerDataSo.GetDataCount();
|
foreach (var element in InstanceCustomers)
|
||||||
if (customerDataCount == 0)
|
|
||||||
{
|
{
|
||||||
Debug.LogError($"{CustomerDataSo}의 값이 비어있습니다.");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return CustomerDataSo.GetRandomValue();
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Customer> GetCurrentCustomers() => InstanceCustomers;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
20
Assets/02.Scripts/Tycoon/ServingTableController.cs
Normal file
20
Assets/02.Scripts/Tycoon/ServingTableController.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Tycoons
|
||||||
|
{
|
||||||
|
public class ServingTableController : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private Transform _servingTableRoot;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private List<ServingTable> _servingTables;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_servingTables = _servingTableRoot.GetComponentsInChildren<ServingTable>().ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Tycoon/ServingTableController.cs.meta
Normal file
2
Assets/02.Scripts/Tycoon/ServingTableController.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 03e84488b3da65549a78d481636713a3
|
@ -125,12 +125,7 @@ namespace BlueWater.Uis
|
|||||||
_isItemReceived = false;
|
_isItemReceived = false;
|
||||||
SetItemImage(_orderCocktailData);
|
SetItemImage(_orderCocktailData);
|
||||||
|
|
||||||
_tween = _fillImage.DOFillAmount(1f, hurryTime)
|
SetTween(waitTime, hurryTime);
|
||||||
.From(0f)
|
|
||||||
.SetEase(Ease.Linear)
|
|
||||||
.SetDelay(waitTime)
|
|
||||||
.OnComplete(OnTweenComplete)
|
|
||||||
.SetAutoKill(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OrderItem(Sprite sprite, int waitTime, int hurryTime)
|
public void OrderItem(Sprite sprite, int waitTime, int hurryTime)
|
||||||
@ -141,6 +136,12 @@ namespace BlueWater.Uis
|
|||||||
SetItemSprite(sprite);
|
SetItemSprite(sprite);
|
||||||
ShowUi();
|
ShowUi();
|
||||||
|
|
||||||
|
SetTween(waitTime, hurryTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTween(int waitTime, int hurryTime)
|
||||||
|
{
|
||||||
|
_tween?.Kill();
|
||||||
_tween = _fillImage.DOFillAmount(1f, hurryTime)
|
_tween = _fillImage.DOFillAmount(1f, hurryTime)
|
||||||
.From(0f)
|
.From(0f)
|
||||||
.SetEase(Ease.Linear)
|
.SetEase(Ease.Linear)
|
||||||
|
@ -65,10 +65,16 @@ namespace BlueWater
|
|||||||
_tableNumberText.text = customer.CurrentTableSeat.TableNumber.ToString();
|
_tableNumberText.text = customer.CurrentTableSeat.TableNumber.ToString();
|
||||||
_tableNumberImageObject.SetActive(true);
|
_tableNumberImageObject.SetActive(true);
|
||||||
|
|
||||||
_sliderTween = _slider.DOValue(0f, customer.CurrentLevelData.HurryTime)
|
SetTween(customer.CurrentLevelData.WaitTime, customer.CurrentLevelData.HurryTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTween(int waitTime, int hurryTime)
|
||||||
|
{
|
||||||
|
_sliderTween?.Kill();
|
||||||
|
_sliderTween = _slider.DOValue(0f, hurryTime)
|
||||||
.From(1f)
|
.From(1f)
|
||||||
.SetEase(Ease.Linear)
|
.SetEase(Ease.Linear)
|
||||||
.SetDelay(customer.CurrentLevelData.WaitTime)
|
.SetDelay(waitTime)
|
||||||
.SetAutoKill(true);
|
.SetAutoKill(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class BillUi : MonoBehaviour
|
public class BillUi : MonoBehaviour
|
||||||
{
|
{
|
||||||
@ -25,7 +27,8 @@ namespace BlueWater
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private List<BillInfo> _billInfos = new(5);
|
private List<BillInfo> _billInfos = new(5);
|
||||||
|
|
||||||
private Dictionary<Customer, Bill> _customerBillDictionary = new();
|
private ObservableList<KeyValuePair<Customer, Bill>> _customerBills = new();
|
||||||
|
|
||||||
private bool _isMovedChain;
|
private bool _isMovedChain;
|
||||||
private bool _isActivating;
|
private bool _isActivating;
|
||||||
|
|
||||||
@ -33,12 +36,16 @@ namespace BlueWater
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
_customerBills.ItemAdded += UpdateBillInfo;
|
||||||
|
_customerBills.ItemRemoved += UpdateBillInfo;
|
||||||
EventManager.OnOrderedCocktail += OrderedCocktail;
|
EventManager.OnOrderedCocktail += OrderedCocktail;
|
||||||
EventManager.OnOrderResult += OrderResult;
|
EventManager.OnOrderResult += OrderResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
|
_customerBills.ItemAdded -= UpdateBillInfo;
|
||||||
|
_customerBills.ItemRemoved -= UpdateBillInfo;
|
||||||
EventManager.OnOrderedCocktail -= OrderedCocktail;
|
EventManager.OnOrderedCocktail -= OrderedCocktail;
|
||||||
EventManager.OnOrderResult -= OrderResult;
|
EventManager.OnOrderResult -= OrderResult;
|
||||||
}
|
}
|
||||||
@ -47,33 +54,29 @@ namespace BlueWater
|
|||||||
{
|
{
|
||||||
var instance = Instantiate(_billPrefab, _spawnLocation);
|
var instance = Instantiate(_billPrefab, _spawnLocation);
|
||||||
instance.Initialize(customer, _spawnPosition, _billInfos[0].Position);
|
instance.Initialize(customer, _spawnPosition, _billInfos[0].Position);
|
||||||
_customerBillDictionary.Add(customer, instance);
|
customer.CurrentBill = instance;
|
||||||
UpdateBillInfo();
|
var newKeyValuePair = new KeyValuePair<Customer, Bill>(customer, instance);
|
||||||
|
_customerBills.Add(newKeyValuePair);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OrderResult(Customer customer, bool isSucceed)
|
private void OrderResult(Customer customer, bool isSucceed)
|
||||||
{
|
{
|
||||||
if (_customerBillDictionary.TryGetValue(customer, out var bill))
|
var keyValue = _customerBills.FirstOrDefault((element) => element.Key == customer);
|
||||||
{
|
keyValue.Value.OrderResult(isSucceed, () => _customerBills.Remove(keyValue));
|
||||||
bill.OrderResult(isSucceed, UpdateBillInfo);
|
|
||||||
_customerBillDictionary.Remove(customer);
|
|
||||||
|
|
||||||
UpdateBillInfo(); // Bill이 제거된 후 빈 자리를 업데이트
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateBillInfo()
|
private void UpdateBillInfo(ObservableList<KeyValuePair<Customer, Bill>> sender, ListChangedEventArgs<KeyValuePair<Customer, Bill>> e)
|
||||||
{
|
{
|
||||||
foreach (var element in _customerBillDictionary.Values)
|
foreach (var element in sender)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < _billInfos.Count; i++)
|
for (var i = 0; i < _billInfos.Count; i++)
|
||||||
{
|
{
|
||||||
if (element.CurrentBillInfo == _billInfos[i]) break;
|
if (element.Value.CurrentBillInfo == _billInfos[i]) break;
|
||||||
|
|
||||||
if (_billInfos[i].IsEmpty)
|
if (_billInfos[i].IsEmpty)
|
||||||
{
|
{
|
||||||
PlayChainAnimation();
|
PlayChainAnimation();
|
||||||
element.Move(_billInfos[i]);
|
element.Value.Move(_billInfos[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ namespace BlueWater.Uis
|
|||||||
TycoonManager.Instance.TycoonStatus.CurrentGarnishAmount2 += 4000;break;
|
TycoonManager.Instance.TycoonStatus.CurrentGarnishAmount2 += 4000;break;
|
||||||
case "AddAllLiquid":
|
case "AddAllLiquid":
|
||||||
TycoonManager.Instance.TycoonIngredientController.AllAddBarrels(1000); break;
|
TycoonManager.Instance.TycoonIngredientController.AllAddBarrels(1000); break;
|
||||||
case "ServerNpc": EventManager.InvokeCreateServingCrew(); break;
|
case "ServerNpc": EventManager.InvokeCreateServerCrew(); break;
|
||||||
case "CleanerNpc": EventManager.InvokeCreateCleanerCrew(); break;
|
case "CleanerNpc": EventManager.InvokeCreateCleanerCrew(); break;
|
||||||
case "ChefNpc": EventManager.InvokeCreateBartenderCrew(); break;
|
case "ChefNpc": EventManager.InvokeCreateBartenderCrew(); break;
|
||||||
case "SpeedUp":
|
case "SpeedUp":
|
||||||
|
@ -728,7 +728,7 @@ MonoBehaviour:
|
|||||||
resetValuesOnRestart: 0
|
resetValuesOnRestart: 0
|
||||||
externalBehavior: {fileID: 11400000, guid: b46524e0380db8a4caaa3000e32b5e04, type: 2}
|
externalBehavior: {fileID: 11400000, guid: b46524e0380db8a4caaa3000e32b5e04, type: 2}
|
||||||
mBehaviorSource:
|
mBehaviorSource:
|
||||||
behaviorName: Cleaner
|
behaviorName: CleanerCrew
|
||||||
behaviorDescription:
|
behaviorDescription:
|
||||||
mTaskData:
|
mTaskData:
|
||||||
types: []
|
types: []
|
||||||
|
1140
Assets/05.Prefabs/Characters/Npcs/Crews/ServerCrew.prefab
Normal file
1140
Assets/05.Prefabs/Characters/Npcs/Crews/ServerCrew.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b692f61d994a0b94cb92cf0f2d47cfb2
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -176,6 +176,42 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 3249711671270954515}
|
m_Father: {fileID: 3249711671270954515}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1304425945750998618
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5776045902233640550}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: BartenderTables
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5776045902233640550
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1304425945750998618}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5701996018619210215}
|
||||||
|
- {fileID: 790144698020171886}
|
||||||
|
- {fileID: 5559400221697507446}
|
||||||
|
- {fileID: 5881185964479335323}
|
||||||
|
- {fileID: 7251359079948161700}
|
||||||
|
m_Father: {fileID: 1402113424960589398}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1374224201695919457
|
--- !u!1 &1374224201695919457
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -1444,11 +1480,6 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 5701996018619210215}
|
|
||||||
- {fileID: 790144698020171886}
|
|
||||||
- {fileID: 5559400221697507446}
|
|
||||||
- {fileID: 5881185964479335323}
|
|
||||||
- {fileID: 7251359079948161700}
|
|
||||||
- {fileID: 2754206603907726668}
|
- {fileID: 2754206603907726668}
|
||||||
- {fileID: 3647761711574370734}
|
- {fileID: 3647761711574370734}
|
||||||
- {fileID: 251860307607057383}
|
- {fileID: 251860307607057383}
|
||||||
@ -1724,6 +1755,7 @@ Transform:
|
|||||||
- {fileID: 4798925548635759970}
|
- {fileID: 4798925548635759970}
|
||||||
- {fileID: 3032369304281183765}
|
- {fileID: 3032369304281183765}
|
||||||
- {fileID: 1031605920973182729}
|
- {fileID: 1031605920973182729}
|
||||||
|
- {fileID: 5776045902233640550}
|
||||||
m_Father: {fileID: 4449232531499695111}
|
m_Father: {fileID: 4449232531499695111}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &8697754653569273504
|
--- !u!1 &8697754653569273504
|
||||||
@ -2018,7 +2050,7 @@ PrefabInstance:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4798925548635759970}
|
m_TransformParent: {fileID: 5776045902233640550}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
@ -2038,15 +2070,15 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
@ -4326,7 +4358,7 @@ PrefabInstance:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4798925548635759970}
|
m_TransformParent: {fileID: 5776045902233640550}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
@ -4346,15 +4378,15 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
@ -4454,7 +4486,7 @@ PrefabInstance:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4798925548635759970}
|
m_TransformParent: {fileID: 5776045902233640550}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
@ -4474,15 +4506,15 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
@ -5534,7 +5566,7 @@ PrefabInstance:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4798925548635759970}
|
m_TransformParent: {fileID: 5776045902233640550}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
@ -5554,15 +5586,15 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
@ -6338,7 +6370,7 @@ PrefabInstance:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 4798925548635759970}
|
m_TransformParent: {fileID: 5776045902233640550}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
@ -6358,15 +6390,15 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.x
|
propertyPath: m_LocalRotation.x
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.y
|
propertyPath: m_LocalRotation.y
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalRotation.z
|
propertyPath: m_LocalRotation.z
|
||||||
value: 0
|
value: -0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
- target: {fileID: 809828747251277026, guid: a46735af9ffe7684fb0f19bc9b351e30, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
@ -10,7 +10,7 @@ MonoBehaviour:
|
|||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: b23f08d2ae4cba14087c1ed36193d82b, type: 3}
|
m_Script: {fileID: 11500000, guid: b23f08d2ae4cba14087c1ed36193d82b, type: 3}
|
||||||
m_Name: Cleaner
|
m_Name: CleanerCrew
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
mBehaviorSource:
|
mBehaviorSource:
|
||||||
behaviorName: Customer
|
behaviorName: Customer
|
||||||
@ -22,10 +22,11 @@ MonoBehaviour:
|
|||||||
variableStartIndex:
|
variableStartIndex:
|
||||||
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(548.5,11.3636351)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(-2.36053467,152.585861)"},"ID":1,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(0,120)"},"ID":2,"Name":"Cleaner
|
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(548.5,11.3636351)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(-2.36053467,152.585861)"},"ID":1,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(0,120)"},"ID":2,"Name":"Cleaner
|
||||||
Cycle","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-2.54729939,179.727264)"},"ID":3,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-225.263184,152.083344)"},"ID":4,"Name":"Succes
|
Cycle","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-2.54729939,179.727264)"},"ID":3,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-225.263184,152.083344)"},"ID":4,"Name":"Succes
|
||||||
Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.CheckCleaning","NodeData":{"Offset":"(-120,150)"},"ID":5,"Name":"Check
|
Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.CheckOnMission","NodeData":{"Offset":"(-120,150)"},"ID":5,"Name":"Check
|
||||||
Cleaning","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.876663,145.4505)"},"ID":6,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-105,147.5)"},"ID":7,"Name":"Succes
|
On Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.876663,145.4505)"},"ID":6,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-105,147.5)"},"ID":7,"Name":"Succes
|
||||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.Cleaning","NodeData":{"Offset":"(-140,150)"},"ID":8,"Name":"Cleaning","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.CompleteCleaning","NodeData":{"Offset":"(2.49850464,149.907471)"},"ID":9,"Name":"Complete
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.OnMission","NodeData":{"Offset":"(-140,150)"},"ID":8,"Name":"On
|
||||||
Cleaning","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(162.857178,152.857422)"},"ID":10,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,145.2378)"},"ID":11,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(289.942871,151.213776)"},"ID":12,"Name":"Fail
|
Mission","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.CompleteMission","NodeData":{"Offset":"(0,150)"},"ID":9,"Name":"Complete
|
||||||
|
Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(162.857178,152.857422)"},"ID":10,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,145.2378)"},"ID":11,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(289.942871,151.213776)"},"ID":12,"Name":"Fail
|
||||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.MoveToRandomPositionInRange","NodeData":{"Offset":"(-100.101685,148.086548)"},"ID":13,"Name":"Move
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.MoveToRandomPositionInRange","NodeData":{"Offset":"(-100.101685,148.086548)"},"ID":13,"Name":"Move
|
||||||
To Random Position In Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(99.99939,150)"},"ID":14,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}]}'
|
To Random Position In Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(99.99939,150)"},"ID":14,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}]}'
|
||||||
fieldSerializationData:
|
fieldSerializationData:
|
40
Assets/11.BehaviorTree/ServerCrew.asset
Normal file
40
Assets/11.BehaviorTree/ServerCrew.asset
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: b23f08d2ae4cba14087c1ed36193d82b, type: 3}
|
||||||
|
m_Name: ServerCrew
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
mBehaviorSource:
|
||||||
|
behaviorName: Customer
|
||||||
|
behaviorDescription:
|
||||||
|
mTaskData:
|
||||||
|
types: []
|
||||||
|
parentIndex:
|
||||||
|
startIndex:
|
||||||
|
variableStartIndex:
|
||||||
|
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(548.5,11.3636351)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(-2.36053467,152.585861)"},"ID":1,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(0,120)"},"ID":2,"Name":"Cleaner
|
||||||
|
Cycle","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-2.54729939,179.727264)"},"ID":3,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-225.263184,152.083344)"},"ID":4,"Name":"Succes
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.CheckOnMission","NodeData":{"Offset":"(-120,150)"},"ID":5,"Name":"Check
|
||||||
|
On Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.876663,145.4505)"},"ID":6,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-105,147.5)"},"ID":7,"Name":"Succes
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.OnMission","NodeData":{"Offset":"(-140,150)"},"ID":8,"Name":"On
|
||||||
|
Mission","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.CompleteMission","NodeData":{"Offset":"(0,150)"},"ID":9,"Name":"Complete
|
||||||
|
Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(162.857178,152.857422)"},"ID":10,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,145.2378)"},"ID":11,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(289.942871,151.213776)"},"ID":12,"Name":"Fail
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.MoveToRandomPositionInRange","NodeData":{"Offset":"(-100.101685,148.086548)"},"ID":13,"Name":"Move
|
||||||
|
To Random Position In Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(99.99939,150)"},"ID":14,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}]}'
|
||||||
|
fieldSerializationData:
|
||||||
|
typeName: []
|
||||||
|
fieldNameHash:
|
||||||
|
startIndex:
|
||||||
|
dataPosition:
|
||||||
|
unityObjects: []
|
||||||
|
byteData:
|
||||||
|
byteDataArray:
|
||||||
|
Version: 1.7.9
|
8
Assets/11.BehaviorTree/ServerCrew.asset.meta
Normal file
8
Assets/11.BehaviorTree/ServerCrew.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7528ceb2f7ed9cc4896ce2c45aa65338
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user