Init commit

This commit is contained in:
Nam Tae Gun 2024-10-16 03:01:16 +09:00
parent 07c0e21a57
commit 31ea50c10a
33 changed files with 1611 additions and 246 deletions

View File

@ -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:

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}

View File

@ -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;
} }

View File

@ -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();
}
} }
} }

View File

@ -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
} }
} }

View File

@ -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
{ {
} }

View File

@ -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

View File

@ -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;

View File

@ -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;
} }
} }

View File

@ -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)

View File

@ -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()

View File

@ -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;
}
}
} }
} }

View File

@ -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;
} }
} }

View 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();
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 03e84488b3da65549a78d481636713a3

View File

@ -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)

View File

@ -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);
} }

View File

@ -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;
} }
} }

View File

@ -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":

View File

@ -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: []

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b692f61d994a0b94cb92cf0f2d47cfb2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -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:

View 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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7528ceb2f7ed9cc4896ce2c45aa65338
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant: