File tree Expand file tree Collapse file tree 5 files changed +45
-1
lines changed
Expand file tree Collapse file tree 5 files changed +45
-1
lines changed Original file line number Diff line number Diff line change @@ -487,6 +487,10 @@ PrefabInstance:
487487 propertyPath : moveSpeed
488488 value : 0.5
489489 objectReference : {fileID: 0}
490+ - target : {fileID: -8264934038213892515, guid: 220ad0de1e362494dbef72b2bbadedd8, type: 3}
491+ propertyPath : sleepType
492+ value : 1
493+ objectReference : {fileID: 0}
490494 - target : {fileID: -8264934038213892515, guid: 220ad0de1e362494dbef72b2bbadedd8, type: 3}
491495 propertyPath : maxMoveTime
492496 value : 10
Original file line number Diff line number Diff line change @@ -20,6 +20,10 @@ PrefabInstance:
2020 propertyPath : moveSpeed
2121 value : 1.2
2222 objectReference : {fileID: 0}
23+ - target : {fileID: -8264934038213892515, guid: 220ad0de1e362494dbef72b2bbadedd8, type: 3}
24+ propertyPath : sleepType
25+ value : 1
26+ objectReference : {fileID: 0}
2327 - target : {fileID: -8264934038213892515, guid: 220ad0de1e362494dbef72b2bbadedd8, type: 3}
2428 propertyPath : maxMoveTime
2529 value : 60
Original file line number Diff line number Diff line change @@ -39,6 +39,13 @@ public enum FoodType
3939 Carnivore
4040}
4141
42+ public enum SleepType
43+ {
44+ Day ,
45+ Night ,
46+ None
47+ }
48+
4249public class Animal : MonoBehaviour
4350{
4451 [ HideInInspector ] public NavMeshAgent navAgent ;
@@ -92,6 +99,7 @@ public class Animal : MonoBehaviour
9299 public bool NeedToSleep => sleepValue <= 1 ;
93100 [ HideInInspector ] public bool isSleeping = false ;
94101 public float sleepSpeed = 10f ;
102+ public SleepType sleepType ;
95103
96104 [ HideInInspector ] public bool isDead = false ;
97105 [ HideInInspector ] public readonly List < GameObject > notReachableElements = new ( ) ;
Original file line number Diff line number Diff line change @@ -122,7 +122,9 @@ public void Start()
122122
123123 Node NeedToSleep = new ( animal =>
124124 {
125- return animal . NeedToSleep || animal . isSleeping ;
125+ bool isInSleepTime = ( animal . sleepType == SleepType . Day && DayNightCycle . Instance . currentTimeOfDay == TimeOfDay . Day ) ||
126+ ( animal . sleepType == SleepType . Night && DayNightCycle . Instance . currentTimeOfDay == TimeOfDay . Night ) ;
127+ return ( isInSleepTime && animal . sleepValue < 50 ) || animal . NeedToSleep || animal . isSleeping ;
126128 } ,
127129 OnSleepLocation ,
128130 NeedToEat ) ;
Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ public IEnumerator Setup()
4545 ARtoVR . Instance . ToggleMode ( ) ;
4646 yield return new WaitForSeconds ( ARtoVR . Instance . transitionDuration + 3 ) ;
4747
48+ DayNightCycle . Instance . currentTimeOfDay = TimeOfDay . Day ;
49+
4850 // ----- DecisionTree -----
4951 Assert . AreEqual ( deer . eventType , EventType . Random ) ;
5052 tree . Callback ( deer ) ;
@@ -188,5 +190,29 @@ public IEnumerator SleepBehaviour()
188190 tree . Callback ( deer ) ;
189191 Assert . AreEqual ( deer . eventType , EventType . Sleep ) ;
190192 yield return null ;
193+
194+ DayNightCycle . Instance . currentTimeOfDay = TimeOfDay . Night ;
195+ tree . Callback ( deer ) ;
196+ Assert . AreEqual ( deer . eventType , EventType . Sleep ) ;
197+ yield return null ;
198+
199+ DayNightCycle . Instance . currentTimeOfDay = TimeOfDay . Day ;
200+ tree . Callback ( deer ) ;
201+ Assert . AreEqual ( deer . eventType , EventType . Sleep ) ;
202+ yield return null ;
203+
204+ DayNightCycle . Instance . currentTimeOfDay = TimeOfDay . Day ;
205+ deer . sleepValue = 40f ;
206+ deer . isSleeping = false ;
207+ tree . Callback ( deer ) ;
208+ Assert . AreEqual ( deer . eventType , EventType . Random ) ;
209+ yield return null ;
210+
211+ DayNightCycle . Instance . currentTimeOfDay = TimeOfDay . Day ;
212+ deer . sleepValue = 100f ;
213+ deer . isSleeping = false ;
214+ tree . Callback ( deer ) ;
215+ Assert . AreEqual ( deer . eventType , EventType . Random ) ;
216+ yield return null ;
191217 }
192218}
You can’t perform that action at this time.
0 commit comments