From f2d1b384905c05d3ad678b8e1ee470867957ce07 Mon Sep 17 00:00:00 2001 From: Steve Halliwell Date: Sat, 8 Feb 2020 17:44:57 +1000 Subject: [PATCH] Collection (#787) Add concept of Collection to Fungus. Add Collection Demo, Physics Cast Demo. They are their own type, that are addressed in a generic way. Internally using object boxing and type comparisons. A number of refactorings and additions along with this to make it work more seamlessly. Variable operators defined by Variable itself Conditional and Looping commands refactored, to avoid more duplication in the new looping commands, such as ForEach AnyVariableData removes duplication from SetVariable and Condition logic, provides a clearer method of adding additional variable types that result in immediate support in those commands PlayMode Tests and Utils added Additional Variable Types, such as Quaternion, Matrix4x4 Physics casts Commands that use collections * Initial Fungus Collection work with support for int and IntegerVariable * While and Condition related changes to allow for new command Loop Range * Collection Get changes and ForEach rough * Added Collection Commands Reordered Elif logic in Condition * More collection types and commands * Variable reorg to allow for new types to be added more simply and centrally * Added more Fungus Vars for Common Unity types VariableList Adapter can delegate to the variable itself for custom drawing Variable IsArthithemticSupported queries for each op rather than all, more fine grain support for types like color and quaterion Event handlers, such as physics related, now have optional fungus variable to store the data they are given by unity in fungus variable for use in the block VariableInfo consolidates more info into the typeActionLookup table, updates to support new fungus var types * Many basic collection operations added Common Collection types Physics Overlap command * Custom variable drawing moved to VariableInfo.cs rather than child variable itself Added Physics cast and overlap commands * Move all Editor scripts into Editor AsmDef folder * LoopRange also registers as command name For * Condition base class commenting improved and refactored repeated looping style child class elements into base * More descriptive CollectionBase Command class names * Fungus Collection interface and comments refined * Rename ICollection to IFungusCollection Cleanup formatting * Collection example scene * Added Collection Tests * Format collection and test files Added CopyFrom to IFungusCollection * Added FungusCollection initial summaries * Added CollectionRandom commands -added simple use to CollectionLoop demo scene * Added Unique to FungusCollection -Updated tests to include unique Added Collection Physics demo, shows use of returned array of all cast intersecting GameObjects * CollectionPhysics tracks mousepos with visual Added Fungus Command to get mouse position * Variable custom draw moved to its own editor class, no longer part of typeinfo Variable generation run * Add playmode test for variable type sets Add playmode test for flow control * Update doco and formatting for Collection classes Refactor parts of Conditional classes and AnyVariable Move Property commands into Category 'Property' * Update Collection comments, formatting and Update internal to public * Add License header to added variable types --- .../Fungus/Scripts/Commands/AssertCommand.cs | 70 + .../Scripts/Commands/AssertCommand.cs.meta | 11 + Assets/Fungus/Scripts/Commands/Break.cs | 50 +- .../{Transform.meta => Collection.meta} | 5 +- .../Collection/CollectionBaseCommand.cs | 35 + .../Collection/CollectionBaseCommand.cs.meta | 11 + .../Collection/CollectionBaseIntCommand.cs | 42 + .../CollectionBaseIntCommand.cs.meta | 11 + .../CollectionBaseTwoCollectionCommand.cs | 50 + ...CollectionBaseTwoCollectionCommand.cs.meta | 11 + .../CollectionBaseVarAndIntCommand.cs | 47 + .../CollectionBaseVarAndIntCommand.cs.meta | 11 + .../Collection/CollectionBaseVarCommand.cs | 54 + .../CollectionBaseVarCommand.cs.meta | 11 + .../Collection/CollectionCommandAdd.cs | 39 + .../Collection/CollectionCommandAdd.cs.meta | 11 + .../Collection/CollectionCommandAddAll.cs | 39 + .../CollectionCommandAddAll.cs.meta | 11 + .../Collection/CollectionCommandClear.cs | 27 + .../Collection/CollectionCommandClear.cs.meta | 11 + .../Collection/CollectionCommandContains.cs | 37 + .../CollectionCommandContains.cs.meta | 11 + .../CollectionCommandContainsAll.cs | 53 + .../CollectionCommandContainsAll.cs.meta | 11 + .../CollectionCommandContainsAny.cs | 37 + .../CollectionCommandContainsAny.cs.meta | 11 + .../Collection/CollectionCommandCopy.cs | 22 + .../Collection/CollectionCommandCopy.cs.meta | 11 + .../Collection/CollectionCommandCount.cs | 25 + .../Collection/CollectionCommandCount.cs.meta | 11 + .../Collection/CollectionCommandElement.cs | 53 + .../CollectionCommandElement.cs.meta | 11 + .../Collection/CollectionCommandExclusive.cs | 24 + .../CollectionCommandExclusive.cs.meta | 11 + .../Collection/CollectionCommandFind.cs | 41 + .../Collection/CollectionCommandFind.cs.meta | 11 + .../Collection/CollectionCommandInsert.cs | 22 + .../CollectionCommandInsert.cs.meta | 11 + .../CollectionCommandIntersection.cs | 22 + .../CollectionCommandIntersection.cs.meta | 11 + .../CollectionCommandOccurrences.cs | 22 + .../CollectionCommandOccurrences.cs.meta | 11 + .../Collection/CollectionCommandRemove.cs | 39 + .../CollectionCommandRemove.cs.meta | 11 + .../CollectionCommandRemoveAllOf.cs | 22 + .../CollectionCommandRemoveAllOf.cs.meta | 11 + .../Collection/CollectionCommandRemoveAt.cs | 22 + .../CollectionCommandRemoveAt.cs.meta | 11 + .../Collection/CollectionCommandReserve.cs | 22 + .../CollectionCommandReserve.cs.meta | 11 + .../Collection/CollectionCommandResize.cs | 22 + .../CollectionCommandResize.cs.meta | 11 + .../Collection/CollectionCommandReverse.cs | 27 + .../CollectionCommandReverse.cs.meta | 11 + .../Collection/CollectionCommandShuffle.cs | 27 + .../CollectionCommandShuffle.cs.meta | 11 + .../Collection/CollectionCommandSort.cs | 27 + .../Collection/CollectionCommandSort.cs.meta | 11 + .../Collection/CollectionCommandUnique.cs | 27 + .../CollectionCommandUnique.cs.meta | 11 + .../Commands/Collection/CollectionRandom.cs | 22 + .../Collection/CollectionRandom.cs.meta | 11 + .../Collection/CollectionRandomBag.cs | 80 + .../Collection/CollectionRandomBag.cs.meta | 11 + .../Scripts/Commands/Collection/ForEach.cs | 90 + .../Commands/Collection/ForEach.cs.meta | 11 + .../Commands/Collection/GameObjectFind.cs | 51 + .../Collection/GameObjectFind.cs.meta | 11 + .../Commands/Collection/Physics2DCast.cs | 162 + .../Commands/Collection/Physics2DCast.cs.meta | 11 + .../Commands/Collection/Physics2DOverlap.cs | 154 + .../Collection/Physics2DOverlap.cs.meta | 11 + .../Commands/Collection/PhysicsCast.cs | 147 + .../Commands/Collection/PhysicsCast.cs.meta | 11 + .../Commands/Collection/PhysicsOverlap.cs | 136 + .../Collection/PhysicsOverlap.cs.meta | 11 + Assets/Fungus/Scripts/Commands/Condition.cs | 247 +- Assets/Fungus/Scripts/Commands/Else.cs | 34 +- Assets/Fungus/Scripts/Commands/ElseIf.cs | 10 - Assets/Fungus/Scripts/Commands/End.cs | 21 +- Assets/Fungus/Scripts/Commands/If.cs | 8 - .../Commands/Input/GetMousePosition.cs | 89 + .../Commands/Input/GetMousePosition.cs.meta | 11 + Assets/Fungus/Scripts/Commands/LoopRange.cs | 84 + .../Fungus/Scripts/Commands/LoopRange.cs.meta | 11 + .../Fungus/Scripts/Commands/LuaCondition.cs | 13 +- Assets/Fungus/Scripts/Commands/LuaElseIf.cs | 10 - Assets/Fungus/Scripts/Commands/LuaIf.cs | 5 - .../Fungus/Scripts/Commands/PlayUsfxrSound.cs | 2 +- Assets/Fungus/Scripts/Commands/Property.meta | 8 + .../Commands/Property/AnimatorProperty.cs | 292 + .../Property/AnimatorProperty.cs.meta | 11 + .../Commands/Property/AudioSourceProperty.cs | 261 + .../Property/AudioSourceProperty.cs.meta | 11 + .../Commands/Property/CollectionProperty.cs | 125 + .../Property/CollectionProperty.cs.meta | 11 + .../Commands/Property/Collider2DProperty.cs | 153 + .../Property/Collider2DProperty.cs.meta | 13 + .../Commands/Property/ColliderProperty.cs | 123 + .../Property/ColliderProperty.cs.meta | 13 + .../Commands/Property/Collision2DProperty.cs | 143 + .../Property/Collision2DProperty.cs.meta | 13 + .../Commands/Property/CollisionProperty.cs | 127 + .../Property/CollisionProperty.cs.meta | 13 + .../Commands/Property/ColorProperty.cs | 137 + .../Commands/Property/ColorProperty.cs.meta | 11 + .../Property/ControllerColliderHitProperty.cs | 137 + .../ControllerColliderHitProperty.cs.meta | 11 + .../Commands/Property/GameObjectProperty.cs | 140 + .../Property/GameObjectProperty.cs.meta | 13 + .../Commands/Property/MaterialProperty.cs | 156 + .../Property/MaterialProperty.cs.meta | 11 + .../Commands/Property/Matrix4x4Property.cs | 234 + .../Matrix4x4Property.cs.meta} | 4 +- .../Commands/Property/QuaternionProperty.cs | 133 + .../Property/QuaternionProperty.cs.meta | 12 + .../Commands/Property/Rigidbody2DProperty.cs | 213 + .../Property/Rigidbody2DProperty.cs.meta | 13 + .../Commands/Property/RigidbodyProperty.cs | 239 + .../Property/RigidbodyProperty.cs.meta | 13 + .../Commands/Property/SpriteProperty.cs | 121 + .../Commands/Property/SpriteProperty.cs.meta | 11 + .../Commands/Property/TextureProperty.cs | 137 + .../Commands/Property/TextureProperty.cs.meta | 11 + .../Commands/Property/TransformProperty.cs | 220 + .../Property/TransformProperty.cs.meta | 11 + .../Commands/Property/Vector2Property.cs | 119 + .../Commands/Property/Vector2Property.cs.meta | 11 + .../Commands/Property/Vector3Property.cs | 126 + .../Commands/Property/Vector3Property.cs.meta | 11 + .../Commands/Property/Vector4Property.cs | 132 + .../Commands/Property/Vector4Property.cs.meta | 13 + Assets/Fungus/Scripts/Commands/SetVariable.cs | 446 +- .../Fungus/Scripts/Commands/ThrowException.cs | 59 + .../Scripts/Commands/ThrowException.cs.meta | 11 + .../Commands/Transform/TransformProperty.cs | 220 - .../Scripts/Commands/VariableCondition.cs | 370 +- Assets/Fungus/Scripts/Commands/While.cs | 45 +- Assets/Fungus/Scripts/Components/Block.cs | 13 + Assets/Fungus/Scripts/Components/Variable.cs | 128 +- .../Editor/AnyVariableAndDataPairDrawer.cs | 67 + .../AnyVariableAndDataPairDrawer.cs.meta | 11 + .../Editor/CustomVariableDrawerLookup.cs | 58 + .../Editor/CustomVariableDrawerLookup.cs.meta | 11 + .../Scripts/Editor/ExportReferenceDocs.cs | 4 +- .../Scripts/Editor/FungusEditorResources.cs | 16 +- .../Editor/FungusEditorResourcesGenerated.cs | 2 +- .../Scripts/Editor/GenerateVariableHelper.cs | 778 ++ .../Editor/GenerateVariableHelper.cs.meta | 11 + .../Scripts/Editor/GenerateVariableWindow.cs | 153 + .../Editor/GenerateVariableWindow.cs.meta | 11 + .../Scripts/Editor/SetVariableEditor.cs | 114 +- .../Scripts/Editor/VariableConditionEditor.cs | 105 +- .../Fungus/Scripts/Editor/VariableEditor.cs | 79 +- .../Scripts/Editor/VariableListAdaptor.cs | 37 +- .../Fungus/Scripts/Editor/VariableTypes.meta | 8 + .../VariableTypes/AnimatorVariableDrawer.cs | 13 + .../AnimatorVariableDrawer.cs.meta | 11 + .../AudioSourceVariableDrawer.cs | 13 + .../AudioSourceVariableDrawer.cs.meta | 11 + .../VariableTypes/CollectionVariableDrawer.cs | 13 + .../CollectionVariableDrawer.cs.meta | 11 + .../VariableTypes/Collider2DVariableDrawer.cs | 13 + .../Collider2DVariableDrawer.cs.meta | 11 + .../VariableTypes/ColliderVariableDrawer.cs | 13 + .../ColliderVariableDrawer.cs.meta | 11 + .../VariableTypes/ColorVariableDrawer.cs | 13 + .../VariableTypes/ColorVariableDrawer.cs.meta | 11 + .../VariableTypes/GameObjectVariableDrawer.cs | 13 + .../GameObjectVariableDrawer.cs.meta | 11 + .../VariableTypes/MaterialVariableDrawer.cs | 13 + .../MaterialVariableDrawer.cs.meta | 11 + .../VariableTypes/Matrix4x4VariableDrawer.cs | 13 + .../Matrix4x4VariableDrawer.cs.meta | 11 + .../VariableTypes/QuaternionVariableDrawer.cs | 13 + .../QuaternionVariableDrawer.cs.meta | 11 + .../Rigidbody2DVariableDrawer.cs | 13 + .../Rigidbody2DVariableDrawer.cs.meta | 11 + .../VariableTypes/RigidbodyVariableDrawer.cs | 13 + .../RigidbodyVariableDrawer.cs.meta | 11 + .../VariableTypes/SpriteVariableDrawer.cs | 13 + .../SpriteVariableDrawer.cs.meta | 11 + .../VariableTypes/TextureVariableDrawer.cs | 13 + .../TextureVariableDrawer.cs.meta | 11 + .../VariableTypes/TransformVariableDrawer.cs | 13 + .../TransformVariableDrawer.cs.meta | 11 + .../VariableTypes/Vector2VariableDrawer.cs | 13 + .../Vector2VariableDrawer.cs.meta | 11 + .../VariableTypes/Vector3VariableDrawer.cs | 13 + .../Vector3VariableDrawer.cs.meta | 11 + .../VariableTypes/Vector4VariableDrawer.cs | 13 + .../Vector4VariableDrawer.cs.meta | 11 + .../MonoBehaviour/BasePhysicsEventHandler.cs | 12 +- .../CharacterControllerCollide.cs | 15 +- .../EventHandlers/MonoBehaviour/Collision.cs | 24 +- .../MonoBehaviour/Collision2D.cs | 24 +- .../EventHandlers/MonoBehaviour/Particle.cs | 14 +- .../MonoBehaviour/TagFilteredEventHandler.cs | 16 +- .../EventHandlers/MonoBehaviour/Trigger.cs | 25 +- .../EventHandlers/MonoBehaviour/Trigger2D.cs | 34 +- .../EventHandlers/MonoBehaviour/UpdateTick.cs | 10 +- .../Interfaces/ICollectionCompatible.cs | 14 + .../Interfaces/ICollectionCompatible.cs.meta | 11 + .../Scripts/Interfaces/IFungusCollection.cs | 72 + .../Interfaces/IFungusCollection.cs.meta | 11 + .../Fungus/Scripts/Utils/AllVariableTypes.cs | 311 + .../Scripts/Utils/AllVariableTypes.cs.meta | 11 + Assets/Fungus/Scripts/Utils/VariableUtil.cs | 76 + .../Fungus/Scripts/Utils/VariableUtil.cs.meta | 11 + .../Scripts/VariableTypes/AnimatorVariable.cs | 37 +- .../VariableTypes/AudioSourceVariable.cs | 37 +- .../VariableTypes/BaseVariableProperty.cs | 19 + .../BaseVariableProperty.cs.meta | 12 + .../Scripts/VariableTypes/BooleanVariable.cs | 44 +- .../Scripts/VariableTypes/Collection.meta | 8 + .../VariableTypes/Collection/Collection.cs | 100 + .../Collection/Collection.cs.meta | 11 + .../Collection/Collider2DCollection.cs | 9 + .../Collection/Collider2DCollection.cs.meta | 11 + .../Collection/ColliderCollection.cs | 9 + .../Collection/ColliderCollection.cs.meta | 11 + .../Collection/FloatCollection.cs | 9 + .../Collection/FloatCollection.cs.meta | 11 + .../Collection/GameObjectCollection.cs | 9 + .../Collection/GameObjectCollection.cs.meta | 11 + .../Collection/GenericCollection.cs | 452 + .../Collection/GenericCollection.cs.meta | 11 + .../VariableTypes/Collection/IntCollection.cs | 9 + .../Collection/IntCollection.cs.meta | 11 + .../Collection/IntVarCollection.cs | 9 + .../Collection/IntVarCollection.cs.meta | 11 + .../Collection/StringCollection.cs | 9 + .../Collection/StringCollection.cs.meta | 11 + .../Collection/TransformCollection.cs | 9 + .../Collection/TransformCollection.cs.meta | 11 + .../VariableTypes/CollectionVariable.cs | 61 + .../VariableTypes/CollectionVariable.cs.meta | 11 + .../VariableTypes/Collider2DVariable.cs | 61 + .../VariableTypes/Collider2DVariable.cs.meta | 13 + .../Scripts/VariableTypes/ColliderVariable.cs | 61 + .../VariableTypes/ColliderVariable.cs.meta | 13 + .../VariableTypes/Collision2DVariable.cs | 18 + .../VariableTypes/Collision2DVariable.cs.meta | 13 + .../VariableTypes/CollisionVariable.cs | 18 + .../VariableTypes/CollisionVariable.cs.meta | 13 + .../Scripts/VariableTypes/ColorVariable.cs | 61 +- .../ControllerColliderHitVariable.cs | 18 + .../ControllerColliderHitVariable.cs.meta | 11 + .../Scripts/VariableTypes/FloatVariable.cs | 118 +- .../VariableTypes/GameObjectVariable.cs | 40 +- .../Scripts/VariableTypes/IntegerVariable.cs | 116 +- .../Scripts/VariableTypes/MaterialVariable.cs | 37 +- .../VariableTypes/Matrix4x4Variable.cs | 94 + .../VariableTypes/Matrix4x4Variable.cs.meta | 12 + .../Scripts/VariableTypes/ObjectVariable.cs | 37 +- .../VariableTypes/QuaternionVariable.cs | 94 + .../VariableTypes/QuaternionVariable.cs.meta | 12 + .../VariableTypes/Rigidbody2DVariable.cs | 37 +- .../VariableTypes/RigidbodyVariable.cs | 61 + .../VariableTypes/RigidbodyVariable.cs.meta | 13 + .../Scripts/VariableTypes/SpriteVariable.cs | 37 +- .../Scripts/VariableTypes/StringVariable.cs | 42 +- .../Scripts/VariableTypes/TextureVariable.cs | 37 +- .../VariableTypes/TransformVariable.cs | 37 +- .../Scripts/VariableTypes/Vector2Variable.cs | 52 +- .../Scripts/VariableTypes/Vector3Variable.cs | 56 +- .../Scripts/VariableTypes/Vector4Variable.cs | 100 + .../VariableTypes/Vector4Variable.cs.meta | 13 + .../Scripts/Editor/DropDownControl.cs | 2 +- Assets/FungusExamples/Collection.meta | 8 + .../Collection/CollectionLoop.unity | 1910 ++++ .../Collection/CollectionLoop.unity.meta | 7 + .../Collection/CollectionPhysics.unity | 7766 +++++++++++++++++ .../Collection/CollectionPhysics.unity.meta | 7 + .../FungusExamples/Collection/UnlitSphere.mat | 77 + .../Collection/UnlitSphere.mat.meta | 8 + .../FungusExamples/Variables/tempvarcol.unity | 1571 ++++ .../Variables/tempvarcol.unity.meta | 7 + Assets/Tests/Editor/FungusCollectionTests.cs | 373 + .../Editor/FungusCollectionTests.cs.meta | 11 + Assets/Tests/Editor/FungusEditorTests.asmdef | 23 + .../Editor/FungusEditorTests.asmdef.meta | 7 + .../Tests/Editor/FungusPrioritySignalsTest.cs | 165 +- .../FungusTextVariationSelectionTests.cs | 207 +- Assets/Tests/Editor/Resources.meta | 8 + Assets/Tests/Editor/Resources/FlowTest.prefab | 1387 +++ .../Editor/Resources/FlowTest.prefab.meta | 7 + Assets/Tests/Editor/Resources/LoopTest.prefab | 1320 +++ .../Editor/Resources/LoopTest.prefab.meta | 7 + .../Tests/Editor/Resources/VarSetTest.prefab | 5053 +++++++++++ .../Editor/Resources/VarSetTest.prefab.meta | 7 + Assets/Tests/Editor/TestUtils.cs | 62 + Assets/Tests/Editor/TestUtils.cs.meta | 11 + Assets/Tests/Editor/TextTagParserTests.cs | 418 +- Assets/Tests/PlayMode.meta | 8 + Assets/Tests/PlayMode/FungusPlayModeTest.cs | 31 + .../Tests/PlayMode/FungusPlayModeTest.cs.meta | 11 + .../Tests/PlayMode/FungusPlayModeTests.asmdef | 37 + .../PlayMode/FungusPlayModeTests.asmdef.meta | 7 + ProjectSettings/TagManager.asset | 3 +- 300 files changed, 30913 insertions(+), 2363 deletions(-) create mode 100644 Assets/Fungus/Scripts/Commands/AssertCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/AssertCommand.cs.meta rename Assets/Fungus/Scripts/Commands/{Transform.meta => Collection.meta} (57%) create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/ForEach.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/ForEach.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs create mode 100644 Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs create mode 100644 Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/LoopRange.cs create mode 100644 Assets/Fungus/Scripts/Commands/LoopRange.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs rename Assets/Fungus/Scripts/Commands/{Transform/TransformProperty.cs.meta => Property/Matrix4x4Property.cs.meta} (76%) create mode 100644 Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs create mode 100644 Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs.meta create mode 100644 Assets/Fungus/Scripts/Commands/ThrowException.cs create mode 100644 Assets/Fungus/Scripts/Commands/ThrowException.cs.meta delete mode 100644 Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs create mode 100644 Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs create mode 100644 Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs create mode 100644 Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs create mode 100644 Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs create mode 100644 Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs.meta create mode 100644 Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs create mode 100644 Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs.meta create mode 100644 Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs create mode 100644 Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/Utils/AllVariableTypes.cs create mode 100644 Assets/Fungus/Scripts/Utils/AllVariableTypes.cs.meta create mode 100644 Assets/Fungus/Scripts/Utils/VariableUtil.cs create mode 100644 Assets/Fungus/Scripts/Utils/VariableUtil.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs.meta create mode 100644 Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs create mode 100644 Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs.meta create mode 100644 Assets/FungusExamples/Collection.meta create mode 100644 Assets/FungusExamples/Collection/CollectionLoop.unity create mode 100644 Assets/FungusExamples/Collection/CollectionLoop.unity.meta create mode 100644 Assets/FungusExamples/Collection/CollectionPhysics.unity create mode 100644 Assets/FungusExamples/Collection/CollectionPhysics.unity.meta create mode 100644 Assets/FungusExamples/Collection/UnlitSphere.mat create mode 100644 Assets/FungusExamples/Collection/UnlitSphere.mat.meta create mode 100644 Assets/FungusExamples/Variables/tempvarcol.unity create mode 100644 Assets/FungusExamples/Variables/tempvarcol.unity.meta create mode 100644 Assets/Tests/Editor/FungusCollectionTests.cs create mode 100644 Assets/Tests/Editor/FungusCollectionTests.cs.meta create mode 100644 Assets/Tests/Editor/FungusEditorTests.asmdef create mode 100644 Assets/Tests/Editor/FungusEditorTests.asmdef.meta create mode 100644 Assets/Tests/Editor/Resources.meta create mode 100644 Assets/Tests/Editor/Resources/FlowTest.prefab create mode 100644 Assets/Tests/Editor/Resources/FlowTest.prefab.meta create mode 100644 Assets/Tests/Editor/Resources/LoopTest.prefab create mode 100644 Assets/Tests/Editor/Resources/LoopTest.prefab.meta create mode 100644 Assets/Tests/Editor/Resources/VarSetTest.prefab create mode 100644 Assets/Tests/Editor/Resources/VarSetTest.prefab.meta create mode 100644 Assets/Tests/Editor/TestUtils.cs create mode 100644 Assets/Tests/Editor/TestUtils.cs.meta create mode 100644 Assets/Tests/PlayMode.meta create mode 100644 Assets/Tests/PlayMode/FungusPlayModeTest.cs create mode 100644 Assets/Tests/PlayMode/FungusPlayModeTest.cs.meta create mode 100644 Assets/Tests/PlayMode/FungusPlayModeTests.asmdef create mode 100644 Assets/Tests/PlayMode/FungusPlayModeTests.asmdef.meta diff --git a/Assets/Fungus/Scripts/Commands/AssertCommand.cs b/Assets/Fungus/Scripts/Commands/AssertCommand.cs new file mode 100644 index 00000000..229c3db6 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/AssertCommand.cs @@ -0,0 +1,70 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; +using UnityEngine.Assertions; + +namespace Fungus +{ + /// + /// Assert on 2 Fungus variable values. + /// + [CommandInfo("Scripting", + "Assert", + "Assert based on compared values.")] + [AddComponentMenu("")] + public class AssertCommand : Command + { + [SerializeField] + protected StringData message; + + [SerializeField] + [VariableProperty(AllVariableTypes.VariableAny.Any)] + protected Variable a, b; + + public enum Method + { + AreEqual, + AreNotEqual, + } + + [SerializeField] + protected Method method; + + public override void OnEnter() + { + switch (method) + { + case Method.AreEqual: + Assert.AreEqual(a.GetValue(), b.GetValue()); + break; + + case Method.AreNotEqual: + Assert.AreNotEqual(a.GetValue(), b.GetValue()); + break; + + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (a == null) + return "Error: No A variable"; + if (b == null) + return "Error: No B variable"; + + return a.Key + " " + method.ToString() + " " + b.Key; + } + + public override bool HasReference(Variable variable) + { + return variable == message.stringRef || + variable == a || variable == b || + base.HasReference(variable); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/AssertCommand.cs.meta b/Assets/Fungus/Scripts/Commands/AssertCommand.cs.meta new file mode 100644 index 00000000..a16fc062 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/AssertCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c40b126bd148ae743b56bc8c00162589 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Break.cs b/Assets/Fungus/Scripts/Commands/Break.cs index 9e4ca271..b1f36030 100644 --- a/Assets/Fungus/Scripts/Commands/Break.cs +++ b/Assets/Fungus/Scripts/Commands/Break.cs @@ -8,61 +8,39 @@ namespace Fungus /// /// Force a loop to terminate immediately. /// - [CommandInfo("Flow", - "Break", + [CommandInfo("Flow", + "Break", "Force a loop to terminate immediately.")] [AddComponentMenu("")] public class Break : Command { #region Public members + //located the containing loop and tell it to end public override void OnEnter() { - // Find index of previous while command - int whileIndex = -1; - int whileIndentLevel = -1; - for (int i = CommandIndex - 1; i >=0; --i) + Condition loopingCond = null; + // Find index of previous looping command + for (int i = CommandIndex - 1; i >= 0; --i) { - While whileCommand = ParentBlock.CommandList[i] as While; - if (whileCommand != null) + Condition cond = ParentBlock.CommandList[i] as Condition; + if (cond != null && cond.IsLooping) { - whileIndex = i; - whileIndentLevel = whileCommand.IndentLevel; + loopingCond = cond; break; } } - if (whileIndex == -1) + if (loopingCond == null) { - // No enclosing While command found, just continue + // No enclosing loop command found, just continue + Debug.LogError("Break called but found no enclosing looping construct." + GetLocationIdentifier()); Continue(); - return; } - - // Find matching End statement at same indent level as While - for (int i = whileIndex + 1; i < ParentBlock.CommandList.Count; ++i) + else { - End endCommand = ParentBlock.CommandList[i] as End; - - if (endCommand != null && - endCommand.IndentLevel == whileIndentLevel) - { - // Sanity check that break command is actually between the While and End commands - if (CommandIndex > whileIndex && CommandIndex < endCommand.CommandIndex) - { - // Continue at next command after End - Continue (endCommand.CommandIndex + 1); - return; - } - else - { - break; - } - } + loopingCond.MoveToEnd(); } - - // No matching End command found so just continue - Continue(); } public override Color GetButtonColor() diff --git a/Assets/Fungus/Scripts/Commands/Transform.meta b/Assets/Fungus/Scripts/Commands/Collection.meta similarity index 57% rename from Assets/Fungus/Scripts/Commands/Transform.meta rename to Assets/Fungus/Scripts/Commands/Collection.meta index 7eb641ce..ee30b8f3 100644 --- a/Assets/Fungus/Scripts/Commands/Transform.meta +++ b/Assets/Fungus/Scripts/Commands/Collection.meta @@ -1,9 +1,8 @@ fileFormatVersion: 2 -guid: f7ddb80a0487d1342b36129da32ad1f6 +guid: 7d7820abad934b747ae1797c3aa82197 folderAsset: yes -timeCreated: 1503815490 -licenseType: Free DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs new file mode 100644 index 00000000..49322556 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs @@ -0,0 +1,35 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Base class for all FungusCollection commands + /// + [AddComponentMenu("")] + public abstract class CollectionBaseCommand : Command + { + [SerializeField] + protected CollectionData collection; + + public override Color GetButtonColor() + { + return new Color32(191, 217, 235, 255); + } + + public override bool HasReference(Variable variable) + { + return variable == collection.collectionRef; + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + return collection.Value.name; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs.meta new file mode 100644 index 00000000..68f6899a --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dab2b4efcfae62841b5070c4cfec8c4a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs new file mode 100644 index 00000000..b5f790a4 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs @@ -0,0 +1,42 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Base class for all FungusCollection commands that use an intvar + /// + [AddComponentMenu("")] + public abstract class CollectionBaseIntCommand : CollectionBaseCommand + { + [SerializeField] + protected IntegerData integer; + + public override void OnEnter() + { + if (collection.Value != null) + { + OnEnterInner(); + } + + Continue(); + } + + protected abstract void OnEnterInner(); + + public override bool HasReference(Variable variable) + { + return variable == integer.integerRef || base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + return integer.Value.ToString() + " on " + collection.Value.name; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs.meta new file mode 100644 index 00000000..f9e38838 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseIntCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 328b7e125f24d5349be4fe583267ba1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs new file mode 100644 index 00000000..0183a54d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs @@ -0,0 +1,50 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Base class for all FungusCollection commands that require a second collection of the same type + /// + [AddComponentMenu("")] + public abstract class CollectionBaseTwoCollectionCommand : CollectionBaseCommand + { + [SerializeField] + protected CollectionData rhsCollection; + + public override void OnEnter() + { + if (collection.Value != null && rhsCollection.Value != null) + { + OnEnterInner(); + } + + Continue(); + } + + protected abstract void OnEnterInner(); + + public override bool HasReference(Variable variable) + { + return variable == rhsCollection.collectionRef || base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + if (rhsCollection.Value == null) + return "Error: no variable selected"; + + if (collection.Value.ContainedType() != rhsCollection.Value.ContainedType()) + { + return "Error: Collection types do not match. " + collection.Value.ContainedType().Name + " != " + rhsCollection.Value.ContainedType().Name; + } + + return collection.Value.name + " , " + rhsCollection.Value.name; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs.meta new file mode 100644 index 00000000..593556c3 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseTwoCollectionCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4010b5577069fc4cb9480f87ed3f73e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs new file mode 100644 index 00000000..6744aaad --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs @@ -0,0 +1,47 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Base class for all FungusCollection commands that require a compatible variable and an integer + /// + [AddComponentMenu("")] + public abstract class CollectionBaseVarAndIntCommand : CollectionBaseVarCommand + { + [SerializeField] + [VariableProperty(typeof(IntegerVariable))] + protected IntegerVariable integer; + + public override void OnEnter() + { + if (collection.Value != null && variableToUse != null && integer != null) + { + OnEnterInner(); + } + + Continue(); + } + + public override bool HasReference(Variable variable) + { + return variable == integer || base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + if (variableToUse == null) + return "Error: no variable selected"; + + if (integer == null) + return "Error: no integer selected"; + + return integer.Key + " on " + variableToUse.Key + " in " + collection.Value.name; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs.meta new file mode 100644 index 00000000..2cb1e4c0 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarAndIntCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 561b53abc515d704d8845caa3b3ee26f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs new file mode 100644 index 00000000..249e2d2c --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs @@ -0,0 +1,54 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Base class for all FungusCollection commands that require a compatible variable type + /// + [AddComponentMenu("")] + public abstract class CollectionBaseVarCommand : CollectionBaseCommand, ICollectionCompatible + { + [SerializeField] + [VariableProperty(compatibleVariableName = "collection")] + protected Variable variableToUse; + + public override void OnEnter() + { + if (collection.Value != null && variableToUse != null) + { + OnEnterInner(); + } + + Continue(); + } + + protected abstract void OnEnterInner(); + + public override bool HasReference(Variable variable) + { + return variable == variableToUse || base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + if (variableToUse == null) + return "Error: no variable selected"; + + return variableToUse.Key + " to " + collection.Value.name; + } + + bool ICollectionCompatible.IsVarCompatibleWithCollection(Variable variable, string compatibleWith) + { + if (compatibleWith == "collection") + return collection.Value == null ? false : collection.Value.IsElementCompatible(variable); + else + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs.meta new file mode 100644 index 00000000..ee8dd1b5 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionBaseVarCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe12b6eb87e59984cb4122f978f11e45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs new file mode 100644 index 00000000..82c3b1cd --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs @@ -0,0 +1,39 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Add an item to a collection + /// + [CommandInfo("Collection", + "Add", + "Add an item to a collection")] + [AddComponentMenu("")] + public class CollectionCommandAdd : CollectionBaseVarCommand + { + [Tooltip("Only add if the item does not already exist in the collection")] + [SerializeField] + protected BooleanData onlyIfUnique = new BooleanData(false); + + protected override void OnEnterInner() + { + if (onlyIfUnique.Value) + collection.Value.AddUnique(variableToUse); + else + collection.Value.Add(variableToUse); + } + + public override bool HasReference(Variable variable) + { + return onlyIfUnique.booleanRef == variable || base.HasReference(variable); + } + + public override string GetSummary() + { + return base.GetSummary() + (onlyIfUnique.Value ? " Unique" : ""); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs.meta new file mode 100644 index 00000000..9b6b0353 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAdd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a30a3b6902ecde54ea81d503f6a2b27e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs new file mode 100644 index 00000000..e31ae989 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs @@ -0,0 +1,39 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Add all items in given rhs collection to target collection + /// + [CommandInfo("Collection", + "Add All", + "Add all items in given rhs collection to target collection")] + [AddComponentMenu("")] + public class CollectionCommandAddAll : CollectionBaseTwoCollectionCommand + { + [Tooltip("Only add if the item does not already exist in the collection")] + [SerializeField] + protected BooleanData onlyIfUnique = new BooleanData(false); + + protected override void OnEnterInner() + { + if (onlyIfUnique.Value) + collection.Value.AddUnique(rhsCollection); + else + collection.Value.Add(rhsCollection); + } + + public override bool HasReference(Variable variable) + { + return onlyIfUnique.booleanRef == variable || base.HasReference(variable); + } + + public override string GetSummary() + { + return base.GetSummary() + (onlyIfUnique.Value ? " Unique" : ""); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs.meta new file mode 100644 index 00000000..7f10b77f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandAddAll.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5688faa1580d8d147b59e18fcdd888ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs new file mode 100644 index 00000000..19450f9f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs @@ -0,0 +1,27 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Clears a target collection + /// + [CommandInfo("Collection", + "Clear", + "Clears a target collection")] + [AddComponentMenu("")] + public class CollectionCommandClear : CollectionBaseCommand + { + public override void OnEnter() + { + if (collection.Value != null) + { + collection.Value.Clear(); + } + + Continue(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs.meta new file mode 100644 index 00000000..70c94b54 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandClear.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b071472a9dcdc7469059042e2e6e50d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs new file mode 100644 index 00000000..30e6fd80 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs @@ -0,0 +1,37 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Does the collection contain the given variable + /// + [CommandInfo("Collection", + "Contains", + "Does the collection contain the given variable")] + [AddComponentMenu("")] + public class CollectionCommandContains : CollectionBaseVarCommand + { + [VariableProperty(typeof(BooleanVariable))] + protected BooleanVariable result; + + protected override void OnEnterInner() + { + if (result == null) + { + Debug.LogWarning("No result var set"); + } + else + { + result.Value = collection.Value.Contains(variableToUse); + } + } + + public override bool HasReference(Variable variable) + { + return result == variable || base.HasReference(variable); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs.meta new file mode 100644 index 00000000..16c6438d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContains.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bd67ee6ac8134b4e9aea26299040034 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs new file mode 100644 index 00000000..8794e9f7 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs @@ -0,0 +1,53 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Does target collection, contain all rhs collection items + /// + [CommandInfo("Collection", + "Contains All Of", + "Does target collection, contain all rhs collection items")] + [AddComponentMenu("")] + public class CollectionCommandContainsAll : CollectionBaseTwoCollectionCommand + { + [Tooltip("Do they have to be in the same order?")] + [SerializeField] + protected BooleanData inSameOrder = new BooleanData(false); + + [VariableProperty(typeof(BooleanVariable))] + protected BooleanVariable result; + + protected override void OnEnterInner() + { + if (result == null) + { + Debug.LogWarning("No result var set"); + } + else + { + if (inSameOrder.Value) + { + result.Value = collection.Value.ContainsAllOfOrdered(rhsCollection.Value); + } + else + { + result.Value = collection.Value.ContainsAllOf(rhsCollection.Value); + } + } + } + + public override bool HasReference(Variable variable) + { + return result == variable || inSameOrder.booleanRef == variable || base.HasReference(variable); + } + + public override string GetSummary() + { + return base.GetSummary() + (inSameOrder.Value ? " Ordered" : ""); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs.meta new file mode 100644 index 00000000..31913dea --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAll.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1df2de5cf986f9d419a124bb9d834b11 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs new file mode 100644 index 00000000..26ef61da --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs @@ -0,0 +1,37 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Does target collection, contain any of the items in the rhs collection items + /// + [CommandInfo("Collection", + "Contains Any Of", + "Does target collection, contain any of the items in the rhs collection items")] + [AddComponentMenu("")] + public class CollectionCommandContainsAny : CollectionBaseTwoCollectionCommand + { + [VariableProperty(typeof(BooleanVariable))] + protected BooleanVariable result; + + protected override void OnEnterInner() + { + if (result == null) + { + Debug.LogWarning("No result var set"); + } + else + { + result.Value = collection.Value.ContainsAnyOf(rhsCollection.Value); + } + } + + public override bool HasReference(Variable variable) + { + return result == variable || base.HasReference(variable); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs.meta new file mode 100644 index 00000000..9522c299 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandContainsAny.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4e05f36271510b41a7d7889025e180e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs new file mode 100644 index 00000000..09663e32 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Clears target and then adds all of rhs to target. + /// + [CommandInfo("Collection", + "Copy", + "Clears target and then adds all of rhs to target.")] + [AddComponentMenu("")] + public class CollectionCommandCopy : CollectionBaseTwoCollectionCommand + { + protected override void OnEnterInner() + { + collection.Value.CopyFrom(rhsCollection.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs.meta new file mode 100644 index 00000000..e0a122e8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCopy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 820324be5b6a927469519df54a9bbad0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs new file mode 100644 index 00000000..81a4d221 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs @@ -0,0 +1,25 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Number of items in the collection + /// + [CommandInfo("Collection", + "Count", + "Number of items in the collection")] + [CommandInfo("Collection", + "Length", + "Number of items in the collection")] + [AddComponentMenu("")] + public class CollectionCommandCount : CollectionBaseIntCommand + { + protected override void OnEnterInner() + { + integer.Value = collection.Value.Count; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs.meta new file mode 100644 index 00000000..d264f4a0 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandCount.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31765259d3ac50e4993fd654cd7ea78b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs new file mode 100644 index 00000000..81831411 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs @@ -0,0 +1,53 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Get or Set, an element in a collection + /// + [CommandInfo("Collection", + "Element", + "Get or Set, an element in a collection")] + [AddComponentMenu("")] + public class CollectionCommandElement : CollectionBaseVarCommand + { + public enum GetSet + { + Get, + Set, + } + + [SerializeField] + protected IntegerData index; + + [SerializeField] + protected GetSet getset = GetSet.Get; + + protected override void OnEnterInner() + { + if (index.Value >= 0 && index.Value < collection.Value.Count) + { + if (getset == GetSet.Get) + { + collection.Value.Get(index.Value, ref variableToUse); + } + else + { + collection.Value.Set(index.Value, variableToUse); + } + } + else + { + throw new System.ArgumentOutOfRangeException(); + } + } + + public override string GetSummary() + { + return base.GetSummary() + " " + getset.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs.meta new file mode 100644 index 00000000..d2b11379 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandElement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf40659a274400d40856f146223798ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs new file mode 100644 index 00000000..dcc396b8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs @@ -0,0 +1,24 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Remove all items from collection that are also in RHS and add all the items in RHS that are not already + /// in target. Similar to a xor + /// + [CommandInfo("Collection", + "Exclusive", + "Remove all items from collection that are also in RHS and add all the items in RHS that are not already in target. " + + "Similar to a xor")] + [AddComponentMenu("")] + public class CollectionCommandExclusive : CollectionBaseTwoCollectionCommand + { + protected override void OnEnterInner() + { + collection.Value.Exclusive(rhsCollection.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs.meta new file mode 100644 index 00000000..e4730cf8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandExclusive.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 824e24d12ca84774ea135507417e94a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs new file mode 100644 index 00000000..b4927e6b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs @@ -0,0 +1,41 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Find an item in a collection + /// + [CommandInfo("Collection", + "Find", + "Find an item in a collection")] + [CommandInfo("Collection", + "IndexOf", + "Find an item in a collection")] + [AddComponentMenu("")] + public class CollectionCommandFind : CollectionBaseVarAndIntCommand + { + [Tooltip("If true, will find the last occurance rather than first occurance.")] + [SerializeField] + protected BooleanData lastInsteadOfFirst = new BooleanData(false); + + protected override void OnEnterInner() + { + integer.Value = !lastInsteadOfFirst.Value ? + collection.Value.IndexOf(variableToUse) + : collection.Value.LastIndexOf(variableToUse); + } + + public override bool HasReference(Variable variable) + { + return lastInsteadOfFirst.booleanRef == variable || base.HasReference(variable); + } + + public override string GetSummary() + { + return base.GetSummary() + (lastInsteadOfFirst.Value ? " Last" : ""); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs.meta new file mode 100644 index 00000000..cc1ad6b8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandFind.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 59afe81b26e37ea4ea10dd91dfeee937 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs new file mode 100644 index 00000000..9a4fe83b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Add at a specific location in the collection + /// + [CommandInfo("Collection", + "Insert", + "Add at a specific location in the collection")] + [AddComponentMenu("")] + public class CollectionCommandInsert : CollectionBaseVarAndIntCommand + { + protected override void OnEnterInner() + { + collection.Value.Insert(integer.Value, variableToUse); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs.meta new file mode 100644 index 00000000..6623d389 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandInsert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd126ef47d8264a4d8a6aac5b4f3fb12 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs new file mode 100644 index 00000000..433560e9 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Remove all items from collection that aren't also in RHS, similar to an overlap. + /// + [CommandInfo("Collection", + "Intersection", + "Remove all items from collection that aren't also in RHS, similar to an overlap.")] + [AddComponentMenu("")] + public class CollectionCommandIntersection : CollectionBaseTwoCollectionCommand + { + protected override void OnEnterInner() + { + collection.Value.Intersection(rhsCollection.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs.meta new file mode 100644 index 00000000..6fefadb5 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandIntersection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 586c189d813b1b045ba358c612f4a6eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs new file mode 100644 index 00000000..da2034bd --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// How many occurrences of a given variable exist in a target collection + /// + [CommandInfo("Collection", + "Occurrences", + "How many occurrences of a given variable exist in a target collection")] + [AddComponentMenu("")] + public class CollectionCommandOccurrences : CollectionBaseVarAndIntCommand + { + protected override void OnEnterInner() + { + integer.Value = collection.Value.Occurrences(variableToUse); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs.meta new file mode 100644 index 00000000..b1b5323f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandOccurrences.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75a3711bc9cd44e429e15e10f6029fae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs new file mode 100644 index 00000000..48506878 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs @@ -0,0 +1,39 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Remove an item to a collection + /// + [CommandInfo("Collection", + "Remove", + "Remove an item to a collection")] + [AddComponentMenu("")] + public class CollectionCommandRemove : CollectionBaseVarCommand + { + [Tooltip("Should it remove ALL occurances of variable")] + [SerializeField] + protected BooleanData allOccurances = new BooleanData(false); + + protected override void OnEnterInner() + { + if (allOccurances.Value) + collection.Value.RemoveAll(variableToUse); + else + collection.Value.Remove(variableToUse); + } + + public override bool HasReference(Variable variable) + { + return allOccurances.booleanRef == variable || base.HasReference(variable); + } + + public override string GetSummary() + { + return base.GetSummary() + (allOccurances.Value ? " ALL" : ""); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs.meta new file mode 100644 index 00000000..6eb78967 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemove.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e2313a05ce56ea49bbf1922b58d793a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs new file mode 100644 index 00000000..729f8eec --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Remove all items in given rhs collection to target collection + /// + [CommandInfo("Collection", + "Remove All Of", + "Remove all items in given rhs collection to target collection")] + [AddComponentMenu("")] + public class CollectionCommandRemoveAllOf : CollectionBaseTwoCollectionCommand + { + protected override void OnEnterInner() + { + collection.Value.RemoveAll(rhsCollection); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs.meta new file mode 100644 index 00000000..ea63a58b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAllOf.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2bb49f43c99a0af4db604a1770b31e83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs new file mode 100644 index 00000000..2464277c --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Remove item at given index + /// + [CommandInfo("Collection", + "Remove At", + "Remove item at given index")] + [AddComponentMenu("")] + public class CollectionCommandRemoveAt : CollectionBaseIntCommand + { + protected override void OnEnterInner() + { + collection.Value.RemoveAt(integer.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs.meta new file mode 100644 index 00000000..d2f4ff50 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandRemoveAt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8ee8f64433f29a4f82b03a8e6550ae2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs new file mode 100644 index 00000000..71c287d9 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Reserve space for given number of items in the collection + /// + [CommandInfo("Collection", + "Reserve", + "Reserve space for given number of items in the collection")] + [AddComponentMenu("")] + public class CollectionCommandReserve : CollectionBaseIntCommand + { + protected override void OnEnterInner() + { + collection.Value.Reserve(integer.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs.meta new file mode 100644 index 00000000..8c443131 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReserve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4672406760fa8f340aabac4528f04c1c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs new file mode 100644 index 00000000..108b37fd --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Resize will grow the collection to be the given size, will not remove items to shrink + /// + [CommandInfo("Collection", + "Resize", + "Resize will grow the collection to be the given size, will not remove items to shrink")] + [AddComponentMenu("")] + public class CollectionCommandResize : CollectionBaseIntCommand + { + protected override void OnEnterInner() + { + collection.Value.Resize(integer.Value); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs.meta new file mode 100644 index 00000000..413f91fe --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandResize.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ce11d7cce59a3340937a8d112cd4ad5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs new file mode 100644 index 00000000..6a0623db --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs @@ -0,0 +1,27 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Reverse the current order of a target collection + /// + [CommandInfo("Collection", + "Reverse", + "Reverse the current order of a target collection")] + [AddComponentMenu("")] + public class CollectionCommandReverse : CollectionBaseCommand + { + public override void OnEnter() + { + if (collection.Value != null) + { + collection.Value.Reverse(); + } + + Continue(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs.meta new file mode 100644 index 00000000..20b9f67b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandReverse.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7359fcb744d14a41acae4b3a2e34b73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs new file mode 100644 index 00000000..28749926 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs @@ -0,0 +1,27 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Randomly reorders all elements of a target collection + /// + [CommandInfo("Collection", + "Shuffle", + "Randomly reorders all elements of a target collection")] + [AddComponentMenu("")] + public class CollectionCommandShuffle : CollectionBaseCommand + { + public override void OnEnter() + { + if (collection.Value != null) + { + collection.Value.Shuffle(); + } + + Continue(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs.meta new file mode 100644 index 00000000..253917e4 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandShuffle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a15d511e013edfe45a0a4726bda90c8f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs new file mode 100644 index 00000000..a03926bb --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs @@ -0,0 +1,27 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Sort a target collection + /// + [CommandInfo("Collection", + "Sort", + "Sort a target collection")] + [AddComponentMenu("")] + public class CollectionCommandSort : CollectionBaseCommand + { + public override void OnEnter() + { + if (collection.Value != null) + { + collection.Value.Sort(); + } + + Continue(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs.meta new file mode 100644 index 00000000..69fe1e7a --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandSort.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00093f39e8583954ba5935bca806f0f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs new file mode 100644 index 00000000..40ab2605 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs @@ -0,0 +1,27 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Removes all duplicates. + /// + [CommandInfo("Collection", + "Unique", + "Removes all duplicates.")] + [AddComponentMenu("")] + public class CollectionCommandUnique : CollectionBaseCommand + { + public override void OnEnter() + { + if (collection.Value != null) + { + collection.Value.Unique(); + } + + Continue(); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs.meta new file mode 100644 index 00000000..a8c45c32 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionCommandUnique.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 59ae026a39db9cf4d8453309fa6192db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs new file mode 100644 index 00000000..2a149cde --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs @@ -0,0 +1,22 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Use the collection as a source of random selection. Picking a random item each run. + /// + [CommandInfo("Collection", + "RandomItem", + "Use the collection as a source of random selection. Picking a random item each run.")] + [AddComponentMenu("")] + public class CollectionRandom : CollectionBaseVarCommand + { + protected override void OnEnterInner() + { + collection.Value.Get(Random.Range(0, collection.Value.Count - 1), ref variableToUse); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs.meta new file mode 100644 index 00000000..0b589499 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d58ddca8952c1a149a39835e2eeac9a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs new file mode 100644 index 00000000..3a95c85a --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs @@ -0,0 +1,80 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Use the collection as a source of random items and turn it into a random bag. Drawing the + /// next random item until out of items and then reshuffling them. + /// + [CommandInfo("Collection", + "RandomBag", + "Use the collection as a source of random items and turn it into a random bag. " + + "Drawing the next random item until out of items and then reshuffling them.")] + [AddComponentMenu("")] + public class CollectionRandomBag : CollectionBaseVarCommand + { + [SerializeField] + [Tooltip("Will add this many copies to the bag. If you want 5 of everything, you want 4 copies.")] + protected IntegerData duplicatesToPutInBag = new IntegerData(0); + + [SerializeField] + protected IntegerData currentIndex = new IntegerData(int.MaxValue); + + protected bool isInit = false; + + protected override void OnEnterInner() + { + if (!isInit) + { + Init(); + } + + currentIndex.Value++; + + if (currentIndex.Value >= collection.Value.Count) + { + Reshuffle(); + } + + collection.Value.Get(currentIndex.Value, ref variableToUse); + } + + protected void Init() + { + var startingCount = collection.Value.Count; + for (int i = 0; i < duplicatesToPutInBag.Value; i++) + { + for (int j = 0; j < startingCount; j++) + { + collection.Value.Add(collection.Value.Get(j)); + } + } + + //force invalid index + currentIndex.Value = collection.Value.Count; + + isInit = true; + } + + protected void Reshuffle() + { + currentIndex.Value = 0; + collection.Value.Shuffle(); + } + + public override bool HasReference(Variable variable) + { + return base.HasReference(variable) || duplicatesToPutInBag.integerRef == variable || currentIndex.integerRef; + } + + public override string GetSummary() + { + return base.GetSummary() + + (duplicatesToPutInBag.integerRef != null ? " " + duplicatesToPutInBag.integerRef.Key : "") + + (currentIndex.integerRef != null ? " " + currentIndex.integerRef.Key : ""); ; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs.meta new file mode 100644 index 00000000..2b992196 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/CollectionRandomBag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 56176eef6b396a442b08b88220304436 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs b/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs new file mode 100644 index 00000000..f3f27ce6 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs @@ -0,0 +1,90 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Loop over each element in the given collection. + /// + [CommandInfo("Collection", + "For Each", + "Loop over each element in the given collection, similar to a foreach but internally uses indicies")] + [AddComponentMenu("")] + public class ForEach : Condition, ICollectionCompatible + { + [SerializeField] + protected CollectionData collection; + + [SerializeField] + [VariableProperty(compatibleVariableName = "collection")] + protected Variable item; + + [SerializeField] + [Tooltip("Optional")] + protected IntegerData curIndex; + + #region Public members + + public override bool IsLooping { get { return true; } } + + protected override void PreEvaluate() + { + //if we came from the end then we are already looping, if not this is first loop so prep + if (ParentBlock.PreviousActiveCommandIndex != endCommand.CommandIndex) + { + curIndex.Value = -1; + } + } + + protected override bool EvaluateCondition() + { + var col = collection.Value; + curIndex.Value++; + if (curIndex < col.Count) + { + col.Get(curIndex, ref item); + return true; + } + + return false; + } + + protected override void OnFalse() + { + MoveToEnd(); + } + + protected override bool HasNeededProperties() + { + return collection.Value != null && item != null; + } + + public override bool HasReference(Variable variable) + { + return collection.collectionRef == variable || item == variable || + base.HasReference(variable); + } + + bool ICollectionCompatible.IsVarCompatibleWithCollection(Variable variable, string compatibleWith) + { + if (compatibleWith == "collection") + return collection.Value == null ? false : collection.Value.IsElementCompatible(variable); + else + return true; + } + + public override string GetSummary() + { + if (item == null) + return "Error: No item var"; + if (collection.Value == null) + return "Error: No collection"; + + return item.Key + " in " + collection.Value.name; + } + + #endregion Public members + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs.meta new file mode 100644 index 00000000..2c7276c4 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/ForEach.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1ce547d5384ce3a41b7142cab8ab41dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs b/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs new file mode 100644 index 00000000..7236defd --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs @@ -0,0 +1,51 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [CommandInfo("GameObject", + "FindAll", + "Find all gameobjects by tag and store in a collection")] + [AddComponentMenu("")] + public class GameObjectFind : CollectionBaseCommand + { + [Tooltip("Find all gameobjects of tag")] + [SerializeField] + protected StringData tagString; + + public override void OnEnter() + { + var col = collection.Value; + + if (col != null) + { + var res = GameObject.FindGameObjectsWithTag(tagString.Value); + + for (int i = 0; i < res.Length; i++) + { + col.Add(res[i]); + } + } + + Continue(); + } + + public override bool HasReference(Variable variable) + { + return variable == tagString.stringRef || base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + if (!(collection.Value is GameObjectCollection)) + return "Error: collection is not GameObjectCollection"; + + return tagString.Value + " GOs, store in " + collection.Value.name; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs.meta new file mode 100644 index 00000000..7a5bb5c4 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/GameObjectFind.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8509f58e038dd8c46b98cab78d34e06a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs b/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs new file mode 100644 index 00000000..84e753d4 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs @@ -0,0 +1,162 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [CommandInfo("Physics2D", + "Cast2D", + "Find all gameobjects hit by given physics shape overlap")] + [AddComponentMenu("")] + public class Physics2DCast : CollectionBaseCommand + { + public enum CastType + { + Box, + Capsule, + Circle, + Line, + Ray, + } + + [Tooltip("")] + [SerializeField] + protected CastType castType = CastType.Ray; + + [Tooltip("Starting point or centre of shape")] + [SerializeField] + protected Vector3Data position1; + + [Tooltip("")] + [SerializeField] + protected Vector3Data direction; + + [Tooltip("")] + [SerializeField] + protected FloatData maxDistance = new FloatData(float.PositiveInfinity); + + [Tooltip("CAPSULE & Circle ONLY")] + [SerializeField] + protected FloatData radius = new FloatData(0.5f); + + [Tooltip("BOX & CAPSULE ONLY")] + [SerializeField] + protected Vector3Data shapeSize = new Vector3Data(Vector3.one * 0.5f); + + [Tooltip("BOX & CAPSULE ONLY")] + [SerializeField] + protected FloatData shapeAngle; + + [Tooltip("LINE ONLY")] + [SerializeField] + protected Vector3Data lineEnd; + + [Tooltip("")] + [SerializeField] + protected LayerMask layerMask = ~0; + + [Tooltip("")] + [SerializeField] + protected FloatData minDepth = new FloatData(float.NegativeInfinity), maxDepth = new FloatData(float.PositiveInfinity); + + [SerializeField] + protected CapsuleDirection2D capsuleDirection; + + public override void OnEnter() + { + var col = collection.Value; + + if (col != null) + { + RaycastHit2D[] resHits = null; + + switch (castType) + { + case CastType.Box: + resHits = Physics2D.BoxCastAll(position1.Value, shapeSize.Value, shapeAngle.Value, direction.Value, maxDistance.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case CastType.Capsule: + resHits = Physics2D.CapsuleCastAll(position1.Value, shapeSize.Value, capsuleDirection, shapeAngle.Value, direction.Value, maxDistance.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case CastType.Circle: + resHits = Physics2D.CircleCastAll(position1.Value, radius.Value, direction.Value, maxDistance.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case CastType.Line: + resHits = Physics2D.LinecastAll(position1.Value, lineEnd.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case CastType.Ray: + resHits = Physics2D.RaycastAll(position1.Value, direction.Value, maxDistance.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + default: + break; + } + + PutCollidersIntoGameObjectCollection(resHits); + } + + Continue(); + } + + protected void PutCollidersIntoGameObjectCollection(RaycastHit2D[] resColliders) + { + if (resColliders != null) + { + var col = collection.Value; + for (int i = 0; i < resColliders.Length; i++) + { + col.Add(resColliders[i].collider.gameObject); + } + } + } + + public override bool HasReference(Variable variable) + { + return variable == position1.vector3Ref || + variable == radius.floatRef || + variable == shapeSize.vector3Ref || + variable == shapeAngle.floatRef || + variable == minDepth.floatRef || + variable == maxDepth.floatRef || + variable == direction.vector3Ref || + variable == maxDistance.floatRef || + variable == lineEnd.vector3Ref || + base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + //TODO we could support more than just GOs + if (!(collection.Value is GameObjectCollection)) + return "Error: collection is not GameObjectCollection"; + + return castType.ToString() + ", store in " + collection.Value.name; + } + + public override bool IsPropertyVisible(string propertyName) + { + if (castType == CastType.Capsule && propertyName == "capsulePosition2") + return true; + + if (castType == CastType.Line && propertyName == "lineEnd") + return true; + + if ((castType == CastType.Capsule || castType == CastType.Circle) && propertyName == "radius") + return true; + + if ((castType == CastType.Capsule || castType == CastType.Box) && + (propertyName == "shapeAngle" || propertyName == "shapeSize")) + return true; + + return base.IsPropertyVisible(propertyName); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs.meta new file mode 100644 index 00000000..994c591e --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/Physics2DCast.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da8de59f5960f5c4b9d61002cc912b37 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs b/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs new file mode 100644 index 00000000..24da6545 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs @@ -0,0 +1,154 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [CommandInfo("Physics2D", + "Overlap2D", + "Find all gameobjects hit by given physics shape overlap")] + [AddComponentMenu("")] + public class Physics2DOverlap : CollectionBaseCommand + { + public enum Shape + { + Point, + Area, + Box, + Circle, + Capsule, + } + + [Tooltip("")] + [SerializeField] + protected Shape shape = Shape.Box; + + [Tooltip("Starting point or centre of shape")] + [SerializeField] + protected Vector3Data position1; + + [Tooltip("AREA ONLY")] + [SerializeField] + protected Vector3Data areaEndPosition; + + [Tooltip("CAPSULE & Circle ONLY")] + [SerializeField] + protected FloatData radius = new FloatData(0.5f); + + [Tooltip("BOX & CAPSULE ONLY")] + [SerializeField] + protected Vector3Data shapeSize = new Vector3Data(Vector3.one * 0.5f); + + [Tooltip("BOX & CAPSULE ONLY")] + [SerializeField] + protected FloatData shapeAngle; + + [Tooltip("")] + [SerializeField] + protected LayerMask layerMask = ~0; + + [Tooltip("")] + [SerializeField] + protected FloatData minDepth = new FloatData(float.NegativeInfinity), maxDepth = new FloatData(float.PositiveInfinity); + + [SerializeField] + protected CapsuleDirection2D capsuleDirection; + + public override void OnEnter() + { + var col = collection.Value; + + if (col != null) + { + Collider2D[] resColliders = null; + + switch (shape) + { + case Shape.Area: + resColliders = Physics2D.OverlapAreaAll(position1.Value, areaEndPosition.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case Shape.Box: + resColliders = Physics2D.OverlapBoxAll(position1.Value, shapeSize.Value, shapeAngle.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case Shape.Circle: + resColliders = Physics2D.OverlapCircleAll(position1.Value, radius.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case Shape.Capsule: + resColliders = Physics2D.OverlapCapsuleAll(position1.Value, shapeSize.Value, capsuleDirection, shapeAngle.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + case Shape.Point: + resColliders = Physics2D.OverlapPointAll(position1.Value, layerMask.value, minDepth.Value, maxDepth.Value); + break; + + default: + break; + } + + PutCollidersIntoGameObjectCollection(resColliders); + } + + Continue(); + } + + protected void PutCollidersIntoGameObjectCollection(Collider2D[] resColliders) + { + if (resColliders != null) + { + var col = collection.Value; + for (int i = 0; i < resColliders.Length; i++) + { + col.Add(resColliders[i].gameObject); + } + } + } + + public override bool HasReference(Variable variable) + { + return variable == position1.vector3Ref || + variable == areaEndPosition.vector3Ref || + variable == radius.floatRef || + variable == shapeSize.vector3Ref || + variable == shapeAngle.floatRef || + variable == minDepth.floatRef || + variable == maxDepth.floatRef || + base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + //TODO we could support more than just GOs + if (!(collection.Value is GameObjectCollection)) + return "Error: collection is not GameObjectCollection"; + + return shape.ToString() + ", store in " + collection.Value.name; + } + + public override bool IsPropertyVisible(string propertyName) + { + if (shape == Shape.Capsule && propertyName == "capsulePosition2") + return true; + + if (shape == Shape.Area && propertyName == "areaEndPosition") + return true; + + if ((shape == Shape.Capsule || shape == Shape.Circle) && propertyName == "radius") + return true; + + if ((shape == Shape.Capsule || shape == Shape.Box) && propertyName == "shapeAngle") + return true; + + if (shape == Shape.Box && (propertyName == "boxHalfExtends" || propertyName == "boxOrientation")) + return true; + + return base.IsPropertyVisible(propertyName); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs.meta new file mode 100644 index 00000000..2369aac0 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/Physics2DOverlap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c27aec18d802f45429190093660305e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs b/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs new file mode 100644 index 00000000..f5b145e7 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs @@ -0,0 +1,147 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [CommandInfo("Physics", + "Cast", + "Find all gameobjects hit by given physics shape cast")] + [AddComponentMenu("")] + public class PhysicsCast : CollectionBaseCommand + { + public enum CastType + { + Box, + Capsule, + Ray, + Sphere, + } + + [SerializeField] + protected CastType castType = CastType.Ray; + + [Tooltip("Starting point/origin or centre of shape")] + [SerializeField] + protected Vector3Data position1; + + [Tooltip("")] + [SerializeField] + protected Vector3Data direction; + + [Tooltip("")] + [SerializeField] + protected FloatData maxDistance = new FloatData(float.PositiveInfinity); + + [Tooltip("CAPSULE ONLY; end point of the capsule")] + [SerializeField] + protected Vector3Data capsulePosition2; + + [Tooltip("CAPSULE & SPHERE ONLY")] + [SerializeField] + protected FloatData radius = new FloatData(0.5f); + + [Tooltip("BOX ONLY")] + [SerializeField] + protected Vector3Data boxHalfExtends = new Vector3Data(Vector3.one * 0.5f); + + [Tooltip("BOX ONLY")] + [SerializeField] + protected QuaternionData boxOrientation = new QuaternionData(Quaternion.identity); + + [Tooltip("")] + [SerializeField] + protected LayerMask layerMask = ~0; + + [Tooltip("")] + [SerializeField] + protected QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal; + + public override void OnEnter() + { + var col = collection.Value; + + if (col != null) + { + RaycastHit[] resHits = null; + + switch (castType) + { + case CastType.Ray: + resHits = Physics.RaycastAll(position1.Value, direction.Value, maxDistance.Value, layerMask.value, queryTriggerInteraction); + break; + + case CastType.Sphere: + resHits = Physics.SphereCastAll(position1.Value, radius.Value, direction.Value, maxDistance.Value, layerMask.value, queryTriggerInteraction); + break; + + case CastType.Box: + resHits = Physics.BoxCastAll(position1.Value, boxHalfExtends.Value, direction.Value, boxOrientation.Value, maxDistance.Value, layerMask.value, queryTriggerInteraction); + break; + + case CastType.Capsule: + resHits = Physics.CapsuleCastAll(position1.Value, capsulePosition2.Value, radius.Value, direction.Value, maxDistance.Value, layerMask.value, queryTriggerInteraction); + break; + + default: + break; + } + + PutCollidersIntoGameObjectCollection(resHits); + } + + Continue(); + } + + protected void PutCollidersIntoGameObjectCollection(RaycastHit[] resHits) + { + if (resHits != null) + { + var col = collection.Value; + for (int i = 0; i < resHits.Length; i++) + { + col.Add(resHits[i].collider.gameObject); + } + } + } + + public override bool HasReference(Variable variable) + { + return variable == direction.vector3Ref || + variable == maxDistance.floatRef || + variable == position1.vector3Ref || + variable == capsulePosition2.vector3Ref || + variable == radius.floatRef || + variable == boxHalfExtends.vector3Ref || + variable == boxOrientation.quaternionRef || + base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + //TODO we could support more than just GOs + if (!(collection.Value is GameObjectCollection)) + return "Error: collection is not GameObjectCollection"; + + return castType.ToString() + ", store in " + collection.Value.name; + } + + public override bool IsPropertyVisible(string propertyName) + { + if (castType == CastType.Capsule && propertyName == "capsulePosition2") + return true; + + if ((castType == CastType.Capsule || castType == CastType.Sphere) && propertyName == "radius") + return true; + + if (castType == CastType.Box && (propertyName == "boxHalfExtends" || propertyName == "boxOrientation")) + return true; + + return base.IsPropertyVisible(propertyName); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs.meta new file mode 100644 index 00000000..272dbd8d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/PhysicsCast.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44a4b238cb3af004bbae4a6145089ea2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs b/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs new file mode 100644 index 00000000..1cb6e79e --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs @@ -0,0 +1,136 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// + /// + [CommandInfo("Physics", + "Overlap", + "Find all gameobjects hit by given physics shape overlap")] + [AddComponentMenu("")] + public class PhysicsOverlap : CollectionBaseCommand + { + public enum Shape + { + Box, + Capsule, + Sphere, + } + + [Tooltip("")] + [SerializeField] + protected Shape shape = Shape.Box; + + [Tooltip("Starting point or centre of shape")] + [SerializeField] + protected Vector3Data position1; + + [Tooltip("CAPSULE ONLY; end point of the capsule")] + [SerializeField] + protected Vector3Data capsulePosition2; + + [Tooltip("CAPSULE & SPHERE ONLY")] + [SerializeField] + protected FloatData radius = new FloatData(0.5f); + + [Tooltip("BOX ONLY")] + [SerializeField] + protected Vector3Data boxHalfExtends = new Vector3Data(Vector3.one * 0.5f); + + [Tooltip("BOX ONLY")] + [SerializeField] + protected QuaternionData boxOrientation = new QuaternionData(Quaternion.identity); + + [Tooltip("")] + [SerializeField] + protected LayerMask layerMask = ~0; + + [Tooltip("")] + [SerializeField] + protected QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal; + + public override void OnEnter() + { + var col = collection.Value; + + if (col != null) + { + Collider[] resColliders = null; + + switch (shape) + { + case Shape.Box: + resColliders = Physics.OverlapBox(position1.Value, boxHalfExtends.Value, boxOrientation.Value, layerMask.value, queryTriggerInteraction); + break; + + case Shape.Sphere: + resColliders = Physics.OverlapSphere(position1.Value, radius.Value, layerMask.value, queryTriggerInteraction); + break; + + case Shape.Capsule: + resColliders = Physics.OverlapCapsule(position1.Value, capsulePosition2.Value, radius.Value, layerMask.value, queryTriggerInteraction); + break; + + default: + break; + } + + PutCollidersIntoGameObjectCollection(resColliders); + } + + Continue(); + } + + protected void PutCollidersIntoGameObjectCollection(Collider[] resColliders) + { + if (resColliders != null) + { + var col = collection.Value; + for (int i = 0; i < resColliders.Length; i++) + { + col.Add(resColliders[i].gameObject); + } + } + } + + public override bool HasReference(Variable variable) + { + return variable == position1.vector3Ref || + variable == capsulePosition2.vector3Ref || + variable == radius.floatRef || + variable == boxHalfExtends.vector3Ref || + variable == boxOrientation.quaternionRef || + base.HasReference(variable); + } + + public override string GetSummary() + { + if (collection.Value == null) + return "Error: no collection selected"; + + //TODO we could support more than just GOs + if (!(collection.Value is GameObjectCollection)) + return "Error: collection is not GameObjectCollection"; + + return shape.ToString() + ", store in " + collection.Value.name; + } + + public override bool IsPropertyVisible(string propertyName) + { + if (shape == Shape.Capsule && propertyName == "capsulePosition2") + return true; + + if ((shape == Shape.Capsule || shape == Shape.Sphere) && propertyName == "radius") + return true; + + if (shape == Shape.Box && (propertyName == "boxHalfExtends" || propertyName == "boxOrientation")) + return true; + + return base.IsPropertyVisible(propertyName); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs.meta b/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs.meta new file mode 100644 index 00000000..57665f64 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Collection/PhysicsOverlap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5996bc0e902a19f4fa257341b0691de3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Condition.cs b/Assets/Fungus/Scripts/Commands/Condition.cs index 74957eb3..0e20dcf8 100644 --- a/Assets/Fungus/Scripts/Commands/Condition.cs +++ b/Assets/Fungus/Scripts/Commands/Condition.cs @@ -5,114 +5,165 @@ using UnityEngine; namespace Fungus { + /// + /// Base for all Conditional based Commands, Ifs, Loops, and so on. + /// [AddComponentMenu("")] public abstract class Condition : Command { - public static string GetOperatorDescription(CompareOperator compareOperator) - { - string summary = ""; - switch (compareOperator) - { - case CompareOperator.Equals: - summary += "=="; - break; - case CompareOperator.NotEquals: - summary += "!="; - break; - case CompareOperator.LessThan: - summary += "<"; - break; - case CompareOperator.GreaterThan: - summary += ">"; - break; - case CompareOperator.LessThanOrEquals: - summary += "<="; - break; - case CompareOperator.GreaterThanOrEquals: - summary += ">="; - break; - } - - return summary; - } - + protected End endCommand; + #region Public members public override void OnEnter() { - if (ParentBlock == null) { return; } - if( !HasNeededProperties() ) + //if looping we need the end command in order to work + if(IsLooping && !EnsureRequiredEnd()) { + Debug.LogError(GetLocationIdentifier() + " is looping but has no matching End command"); Continue(); return; } - if( !this.IsElseIf ) + if ( !HasNeededProperties() ) + { + Debug.LogError(GetLocationIdentifier() + " cannot run due to missing required properties"); + Continue(); + return; + } + + //Ensuring we arrived at this elif honestly, not incorrectly due to fall through from a previous command + if (this.IsElseIf && !DoesPassElifSanityCheck()) + { + //elif is being asked to run but didn't come from a previously failing if or elif, this isn't allowed + MoveToEnd(); + return; + } + + EvaluateAndContinue(); + } + + public override bool OpenBlock() + { + return true; + } + + public override Color GetButtonColor() + { + return new Color32(253, 253, 150, 255); + } + + public virtual bool IsLooping { get { return false; } } + + + /// + /// Moves execution to the closing End of the current command, attempts to locate end if not + /// already known and if no closing End exists. + /// + public virtual void MoveToEnd() + { + if(endCommand == null) + { + endCommand = FindOurEndCommand(); + } + + if (endCommand != null) { - EvaluateAndContinue(); + // Continue at next command after End + // and make the end non looping incase it gets run via index etc. + endCommand.Loop = false; + Continue(endCommand.CommandIndex + 1); } else { - System.Type previousCommandType = ParentBlock.GetPreviousActiveCommandType(); - var prevCmdIndent = ParentBlock.GetPreviousActiveCommandIndent(); + //nowhere to go, so we assume the block wants to stop but is missing and end, this + // is also ensures back compat + Debug.LogWarning("Condition wants to move to end but no End command found, stopping block. " + GetLocationIdentifier()); + StopParentBlock(); + } + } - //handle our matching if or else if in the chain failing and moving to us, - // need to make sure it is the same indent level - if (prevCmdIndent == IndentLevel && previousCommandType.IsSubclassOf(typeof(Condition))) - { - // Else If behaves the same as an If command - EvaluateAndContinue(); - } - else - { - // Else If behaves mostly like an Else command, - // but will also jump to a following Else command. + #endregion + + protected End FindOurEndCommand() + { + return FindMatchingEndCommand(this); + } - // Stop if this is the last command in the list - if (CommandIndex >= ParentBlock.CommandList.Count - 1) - { - StopParentBlock(); - return; - } + /// + /// Helper to find the paired End Command for the given command. + /// + /// + /// Mathcing End Command or null if not found + public static End FindMatchingEndCommand(Command startCommand) + { + if (startCommand.ParentBlock == null) + return null; - // Find the next End command at the same indent level as this Else If command - int indent = indentLevel; - for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i) + int indent = startCommand.IndentLevel; + for (int i = startCommand.CommandIndex + 1; i < startCommand.ParentBlock.CommandList.Count; ++i) + { + var command = startCommand.ParentBlock.CommandList[i]; + + if (command.IndentLevel == indent) + { + if (command is End) { - var command = ParentBlock.CommandList[i]; - - if (command.IndentLevel == indent) - { - System.Type type = command.GetType(); - if (type == typeof(End)) - { - // Execute command immediately after the Else or End command - Continue(command.CommandIndex + 1); - return; - } - } + return command as End; } - - // No End command found - StopParentBlock(); + } + else if (command.IndentLevel < indent) + { + //managed to be less indent than the inner but not find and end, this shouldn't occur + // but may be user error or bad data, makes sense for completeness here + return null; } } + + return null; } - public override bool OpenBlock() + /// + /// Helper for child classes that require an End command to function. For IsLooping commands + /// this also configures the loopback within the End command. + /// + /// + protected virtual bool EnsureRequiredEnd() { + if (endCommand == null) + { + endCommand = FindOurEndCommand(); + + if (endCommand == null) + { + Debug.LogError( GetLocationIdentifier() + "', could not find closing End command and thus cannot loop."); + //StopParentBlock(); + return false; + } + } + + if (IsLooping) + { + // Tell the following end command to loop back + endCommand.Loop = true; + endCommand.LoopBackIndex = CommandIndex; + } return true; } - #endregion - + /// + /// Called by OnEnter when the condition is needed to evaluate and continue execution. + /// Means child classes do not have to deal with erronuous execution conditions, like fall through. + /// protected virtual void EvaluateAndContinue() { + PreEvaluate(); + if (EvaluateCondition()) { OnTrue(); @@ -123,17 +174,23 @@ namespace Fungus } } + /// + /// Called when the condition is run and EvaluateCondition returns true + /// protected virtual void OnTrue() { Continue(); } + /// + /// Called when the condition is run and EvaluateCondition returns false + /// protected virtual void OnFalse() { - // Last command in block - if (CommandIndex >= ParentBlock.CommandList.Count) + //looping constructs only care about the end + if(IsLooping) { - StopParentBlock(); + MoveToEnd(); return; } @@ -177,7 +234,6 @@ namespace Fungus { // Execute the Else If command Continue(i); - return; } } @@ -186,10 +242,47 @@ namespace Fungus StopParentBlock(); } + /// + /// Sits in the if within EvaluateAndContinue, if returns true, OnTrue will run, if false, OnFalse will run. + /// protected abstract bool EvaluateCondition(); - protected abstract bool HasNeededProperties(); + /// + /// Child classes are required to report if it is possible for them to be evaulated. + /// + protected virtual bool HasNeededProperties() { return true; } + /// + /// Declare if the child class is implementing an 'else if' command, which requires some special handling + /// protected virtual bool IsElseIf { get { return false; } } + + /// + /// Called before EvaluateCondition, allowing for child classes to gather required data + /// + protected virtual void PreEvaluate() { } + + /// + /// Ensure that this condition didn't come from a non matching if/elif. + /// + /// + protected virtual bool DoesPassElifSanityCheck() + { + System.Type previousCommandType = ParentBlock.GetPreviousActiveCommandType(); + var prevCmdIndent = ParentBlock.GetPreviousActiveCommandIndent(); + var prevCmd = ParentBlock.GetPreviousActiveCommand(); + + //handle our matching if or else if in the chain failing and moving to us, + // need to make sure it is the same indent level + if (prevCmd == null || + prevCmdIndent != IndentLevel || + !previousCommandType.IsSubclassOf(typeof(Condition)) || + (prevCmd as Condition).IsLooping) + { + return false; + } + + return true; + } } } \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Else.cs b/Assets/Fungus/Scripts/Commands/Else.cs index feb18e80..dd311268 100644 --- a/Assets/Fungus/Scripts/Commands/Else.cs +++ b/Assets/Fungus/Scripts/Commands/Else.cs @@ -18,38 +18,18 @@ namespace Fungus public override void OnEnter() { - if (ParentBlock == null) + // Find the next End command at the same indent level as this Else command + var matchingEnd = Condition.FindMatchingEndCommand(this); + if (matchingEnd != null) { - return; + // Execute command immediately after the EndIf command + Continue(matchingEnd.CommandIndex + 1); } - - // Stop if this is the last command in the list - if (CommandIndex >= ParentBlock.CommandList.Count - 1) + else { + // No End command found StopParentBlock(); - return; - } - - // Find the next End command at the same indent level as this Else command - int indent = indentLevel; - for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i) - { - var command = ParentBlock.CommandList[i]; - - if (command.IndentLevel == indent) - { - System.Type type = command.GetType(); - if (type == typeof(End)) - { - // Execute command immediately after the EndIf command - Continue(command.CommandIndex + 1); - return; - } - } } - - // No End command found - StopParentBlock(); } public override bool OpenBlock() diff --git a/Assets/Fungus/Scripts/Commands/ElseIf.cs b/Assets/Fungus/Scripts/Commands/ElseIf.cs index deb771f0..c5df382f 100644 --- a/Assets/Fungus/Scripts/Commands/ElseIf.cs +++ b/Assets/Fungus/Scripts/Commands/ElseIf.cs @@ -18,21 +18,11 @@ namespace Fungus #region Public members - public override bool OpenBlock() - { - return true; - } - public override bool CloseBlock() { return true; } - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } - #endregion } } \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/End.cs b/Assets/Fungus/Scripts/Commands/End.cs index d0edcf06..1258bacf 100644 --- a/Assets/Fungus/Scripts/Commands/End.cs +++ b/Assets/Fungus/Scripts/Commands/End.cs @@ -16,23 +16,22 @@ namespace Fungus { #region Public members + /// + /// Set to true by looping constructs to allow for loops to occur + /// public virtual bool Loop { get; set; } + /// + /// Set to the index of the owning looping construct + /// + public virtual int LoopBackIndex { get; set; } + public override void OnEnter() { if (Loop) { - for (int i = CommandIndex - 1; i >= 0; --i) - { - var command = ParentBlock.CommandList[i]; - - if (command.IndentLevel == IndentLevel && - command.GetType() == typeof(While)) - { - Continue(i); - return; - } - } + Continue(LoopBackIndex); + return; } Continue(); diff --git a/Assets/Fungus/Scripts/Commands/If.cs b/Assets/Fungus/Scripts/Commands/If.cs index dc22424d..efeb8507 100644 --- a/Assets/Fungus/Scripts/Commands/If.cs +++ b/Assets/Fungus/Scripts/Commands/If.cs @@ -14,13 +14,5 @@ namespace Fungus [AddComponentMenu("")] public class If : VariableCondition { - #region Public members - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } - - #endregion } } \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs b/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs new file mode 100644 index 00000000..d2325f34 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs @@ -0,0 +1,89 @@ +using UnityEngine; + +namespace Fungus +{ + // + /// Store Input.mousePosition and mouse screen conversions in a variable(s) + /// + [CommandInfo("Input", + "Get Mouse Position", + "Store various interpretations of Input.mousePosition")] + [AddComponentMenu("")] + public class GetMousePosition : Command + { + [VariableProperty(typeof(Vector2Variable))] + [SerializeField] + protected Vector2Variable screenPosition; + + [Tooltip("If null, Camera.main is used")] + protected Camera castCamera; + + [VariableProperty(typeof(Vector2Variable))] + [SerializeField] + protected Vector2Variable viewPosition; + + [VariableProperty(typeof(Vector3Variable))] + [SerializeField] + protected Vector3Variable worldPosition; + + [VariableProperty(typeof(Vector3Variable))] + [SerializeField] + protected Vector3Variable worldDirection; + + public override void OnEnter() + { + if (castCamera == null) + { + castCamera = Camera.main; + } + + if (screenPosition != null) + { + screenPosition.Value = Input.mousePosition; + } + + if (viewPosition != null) + { + viewPosition.Value = castCamera.ScreenToViewportPoint(Input.mousePosition); + } + + if (worldPosition != null) + { + var screenWithZ = Input.mousePosition; + screenWithZ.z = castCamera.nearClipPlane; + worldPosition.Value = castCamera.ScreenToWorldPoint(screenWithZ); + } + + if (worldDirection != null) + { + var screenWithZ = Input.mousePosition; + screenWithZ.z = castCamera.nearClipPlane; + worldDirection.Value = castCamera.ScreenPointToRay(screenWithZ).direction; + } + + Continue(); + } + + public override string GetSummary() + { + return (screenPosition != null ? screenPosition.Key + " " : "") + + (castCamera != null ? castCamera.name + " " : "MainCam") + + (viewPosition != null ? viewPosition.Key + " " : "") + + (worldPosition != null ? worldPosition.Key + " " : "") + + (worldDirection != null ? worldDirection.Key + " " : ""); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + return (screenPosition == variable || + viewPosition == variable || + worldPosition == variable || + worldDirection == variable); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs.meta b/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs.meta new file mode 100644 index 00000000..8ac89118 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Input/GetMousePosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fb32240870e5bf545a0dafba446d3990 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/LoopRange.cs b/Assets/Fungus/Scripts/Commands/LoopRange.cs new file mode 100644 index 00000000..645e11b9 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/LoopRange.cs @@ -0,0 +1,84 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) maintained by Chris Gregan (http://twitter.com/gofungus). +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + /// + /// Loop over a fixed integer range, similar to a common for loop. + /// + [CommandInfo("Flow", + "Loop Range", + "Loop over a fixed integer range, similar to a common for loop.")] + [CommandInfo("Flow", + "For", + "Loop over a fixed integer range, similar to a common for loop.")] + [AddComponentMenu("")] + public class LoopRange : Condition + { + [Tooltip("Starting value for the counter variable")] + [SerializeField] + protected IntegerData startingValue; + + [Tooltip("End value for the counter variable, exclusive")] + [SerializeField] + protected IntegerData endValue; + + [Tooltip("Optional int var to hold the current loop counter.")] + [SerializeField] + protected IntegerData counter; + + [Tooltip("Step size for the counter, how much does it go up by each loop. Default 1")] + [SerializeField] + protected IntegerData step = new IntegerData(1); + + #region Public members + + public override bool IsLooping { get { return true; } } + + protected override void PreEvaluate() + { + //if we came from the end then we are already looping, if not this is first loop so prep + if (ParentBlock.PreviousActiveCommandIndex != endCommand.CommandIndex) + { + counter.Value = startingValue.Value; + } + else + { + counter.Value += (startingValue.Value <= endValue.Value ? step.Value : -step.Value); + } + } + + protected override bool EvaluateCondition() + { + return (startingValue.Value <= endValue.Value ? + counter.Value < endValue.Value : + counter.Value > endValue.Value); + } + + protected override void OnFalse() + { + MoveToEnd(); + } + + public override void OnValidate() + { + // no infinite loops + if (step.Value == 0) + step.Value = 1; + + //no negative steps, we do that automatically + step.Value = Mathf.Abs(step.Value); + } + + public override bool HasReference(Variable variable) + { + return startingValue.integerRef == variable || endValue.integerRef == variable || + counter.integerRef == variable || step.integerRef == variable || + base.HasReference(variable); + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/LoopRange.cs.meta b/Assets/Fungus/Scripts/Commands/LoopRange.cs.meta new file mode 100644 index 00000000..ca43b9d8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/LoopRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b0eebb5bf2fc1e542a35e2e5332e60d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/LuaCondition.cs b/Assets/Fungus/Scripts/Commands/LuaCondition.cs index d38b243a..5495015f 100644 --- a/Assets/Fungus/Scripts/Commands/LuaCondition.cs +++ b/Assets/Fungus/Scripts/Commands/LuaCondition.cs @@ -63,7 +63,7 @@ namespace Fungus } // Cache a descriptive name to use in Lua error messages - friendlyName = gameObject.name + "." + ParentBlock.BlockName + "." + this.GetType().ToString() + " #" + CommandIndex.ToString(); + friendlyName = GetLocationIdentifier(); Flowchart flowchart = GetFlowchart(); @@ -113,17 +113,6 @@ namespace Fungus return luaCompareString; } - - public override bool OpenBlock() - { - return true; - } - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } - #endregion } } diff --git a/Assets/Fungus/Scripts/Commands/LuaElseIf.cs b/Assets/Fungus/Scripts/Commands/LuaElseIf.cs index 537b51a6..440c125e 100644 --- a/Assets/Fungus/Scripts/Commands/LuaElseIf.cs +++ b/Assets/Fungus/Scripts/Commands/LuaElseIf.cs @@ -18,21 +18,11 @@ namespace Fungus #region Public members - public override bool OpenBlock() - { - return true; - } - public override bool CloseBlock() { return true; } - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } - #endregion } } \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/LuaIf.cs b/Assets/Fungus/Scripts/Commands/LuaIf.cs index fdc37853..5787a9e2 100644 --- a/Assets/Fungus/Scripts/Commands/LuaIf.cs +++ b/Assets/Fungus/Scripts/Commands/LuaIf.cs @@ -15,11 +15,6 @@ namespace Fungus public class LuaIf : LuaCondition { #region Public members - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } #endregion } diff --git a/Assets/Fungus/Scripts/Commands/PlayUsfxrSound.cs b/Assets/Fungus/Scripts/Commands/PlayUsfxrSound.cs index ec774242..80ae7a0d 100644 --- a/Assets/Fungus/Scripts/Commands/PlayUsfxrSound.cs +++ b/Assets/Fungus/Scripts/Commands/PlayUsfxrSound.cs @@ -31,7 +31,7 @@ using UnityEngine.Serialization; //Call this if the settings have changed protected virtual void UpdateCache() { - if (_SettingsString.Value != null) + if (!string.IsNullOrEmpty(_SettingsString.Value)) { _synth.parameters.SetSettingsString(_SettingsString.Value); _synth.CacheSound(); diff --git a/Assets/Fungus/Scripts/Commands/Property.meta b/Assets/Fungus/Scripts/Commands/Property.meta new file mode 100644 index 00000000..7d2d156d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a1a00144f44775449d32d39b5a7185a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs b/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs new file mode 100644 index 00000000..6c7dfe4a --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs @@ -0,0 +1,292 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Animator component + /// + [CommandInfo("Property", + "Animator", + "Get or Set a property of a Animator component")] + [AddComponentMenu("")] + public class AnimatorProperty : BaseVariableProperty + { + //generated property + public enum Property + { + IsOptimizable, + IsHuman, + HasRootMotion, + HumanScale, + IsInitialized, + DeltaPosition, + DeltaRotation, + Velocity, + AngularVelocity, + RootPosition, + RootRotation, + ApplyRootMotion, + HasTransformHierarchy, + GravityWeight, + BodyPosition, + BodyRotation, + StabilizeFeet, + LayerCount, + ParameterCount, + FeetPivotActive, + PivotWeight, + PivotPosition, + IsMatchingTarget, + Speed, + TargetPosition, + TargetRotation, + PlaybackTime, + RecorderStartTime, + RecorderStopTime, + HasBoundPlayables, + LayersAffectMassCenter, + LeftFeetBottomHeight, + RightFeetBottomHeight, + LogWarnings, + FireEvents, + KeepAnimatorControllerStateOnDisable, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(AnimatorVariable))] + protected AnimatorVariable animatorVar; + + [SerializeField] + [VariableProperty(typeof(BooleanVariable), + typeof(FloatVariable), + typeof(Vector3Variable), + typeof(QuaternionVariable), + typeof(IntegerVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iob = inOutVar as BooleanVariable; + var iof = inOutVar as FloatVariable; + var iov = inOutVar as Vector3Variable; + var ioq = inOutVar as QuaternionVariable; + var ioi = inOutVar as IntegerVariable; + + + var target = animatorVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.IsOptimizable: + iob.Value = target.isOptimizable; + break; + case Property.IsHuman: + iob.Value = target.isHuman; + break; + case Property.HasRootMotion: + iob.Value = target.hasRootMotion; + break; + case Property.HumanScale: + iof.Value = target.humanScale; + break; + case Property.IsInitialized: + iob.Value = target.isInitialized; + break; + case Property.DeltaPosition: + iov.Value = target.deltaPosition; + break; + case Property.DeltaRotation: + ioq.Value = target.deltaRotation; + break; + case Property.Velocity: + iov.Value = target.velocity; + break; + case Property.AngularVelocity: + iov.Value = target.angularVelocity; + break; + case Property.RootPosition: + iov.Value = target.rootPosition; + break; + case Property.RootRotation: + ioq.Value = target.rootRotation; + break; + case Property.ApplyRootMotion: + iob.Value = target.applyRootMotion; + break; + case Property.HasTransformHierarchy: + iob.Value = target.hasTransformHierarchy; + break; + case Property.GravityWeight: + iof.Value = target.gravityWeight; + break; + case Property.BodyPosition: + iov.Value = target.bodyPosition; + break; + case Property.BodyRotation: + ioq.Value = target.bodyRotation; + break; + case Property.StabilizeFeet: + iob.Value = target.stabilizeFeet; + break; + case Property.LayerCount: + ioi.Value = target.layerCount; + break; + case Property.ParameterCount: + ioi.Value = target.parameterCount; + break; + case Property.FeetPivotActive: + iof.Value = target.feetPivotActive; + break; + case Property.PivotWeight: + iof.Value = target.pivotWeight; + break; + case Property.PivotPosition: + iov.Value = target.pivotPosition; + break; + case Property.IsMatchingTarget: + iob.Value = target.isMatchingTarget; + break; + case Property.Speed: + iof.Value = target.speed; + break; + case Property.TargetPosition: + iov.Value = target.targetPosition; + break; + case Property.TargetRotation: + ioq.Value = target.targetRotation; + break; + case Property.PlaybackTime: + iof.Value = target.playbackTime; + break; + case Property.RecorderStartTime: + iof.Value = target.recorderStartTime; + break; + case Property.RecorderStopTime: + iof.Value = target.recorderStopTime; + break; + case Property.HasBoundPlayables: + iob.Value = target.hasBoundPlayables; + break; + case Property.LayersAffectMassCenter: + iob.Value = target.layersAffectMassCenter; + break; + case Property.LeftFeetBottomHeight: + iof.Value = target.leftFeetBottomHeight; + break; + case Property.RightFeetBottomHeight: + iof.Value = target.rightFeetBottomHeight; + break; + case Property.LogWarnings: + iob.Value = target.logWarnings; + break; + case Property.FireEvents: + iob.Value = target.fireEvents; + break; + case Property.KeepAnimatorControllerStateOnDisable: + iob.Value = target.keepAnimatorControllerStateOnDisable; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.RootPosition: + target.rootPosition = iov.Value; + break; + case Property.RootRotation: + target.rootRotation = ioq.Value; + break; + case Property.ApplyRootMotion: + target.applyRootMotion = iob.Value; + break; + case Property.BodyPosition: + target.bodyPosition = iov.Value; + break; + case Property.BodyRotation: + target.bodyRotation = ioq.Value; + break; + case Property.StabilizeFeet: + target.stabilizeFeet = iob.Value; + break; + case Property.FeetPivotActive: + target.feetPivotActive = iof.Value; + break; + case Property.Speed: + target.speed = iof.Value; + break; + case Property.PlaybackTime: + target.playbackTime = iof.Value; + break; + case Property.RecorderStartTime: + target.recorderStartTime = iof.Value; + break; + case Property.RecorderStopTime: + target.recorderStopTime = iof.Value; + break; + case Property.LayersAffectMassCenter: + target.layersAffectMassCenter = iob.Value; + break; + case Property.LogWarnings: + target.logWarnings = iob.Value; + break; + case Property.FireEvents: + target.fireEvents = iob.Value; + break; + case Property.KeepAnimatorControllerStateOnDisable: + target.keepAnimatorControllerStateOnDisable = iob.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (animatorVar == null) + { + return "Error: no animatorVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (animatorVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs.meta new file mode 100644 index 00000000..ee1ea325 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/AnimatorProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4616a794b2245d46970401b3acc492f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs b/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs new file mode 100644 index 00000000..3cca2be8 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs @@ -0,0 +1,261 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a AudioSource component + /// + [CommandInfo("Property", + "AudioSource", + "Get or Set a property of a AudioSource component")] + [AddComponentMenu("")] + public class AudioSourceProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Volume, + Pitch, + Time, + TimeSamples, + IsPlaying, + IsVirtual, + Loop, + IgnoreListenerVolume, + PlayOnAwake, + IgnoreListenerPause, + PanStereo, + SpatialBlend, + Spatialize, + SpatializePostEffects, + ReverbZoneMix, + BypassEffects, + BypassListenerEffects, + BypassReverbZones, + DopplerLevel, + Spread, + Priority, + Mute, + MinDistance, + MaxDistance, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(AudioSourceVariable))] + protected AudioSourceVariable audioSourceVar; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(IntegerVariable), + typeof(BooleanVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + + + var target = audioSourceVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Volume: + iof.Value = target.volume; + break; + case Property.Pitch: + iof.Value = target.pitch; + break; + case Property.Time: + iof.Value = target.time; + break; + case Property.TimeSamples: + ioi.Value = target.timeSamples; + break; + case Property.IsPlaying: + iob.Value = target.isPlaying; + break; + case Property.IsVirtual: + iob.Value = target.isVirtual; + break; + case Property.Loop: + iob.Value = target.loop; + break; + case Property.IgnoreListenerVolume: + iob.Value = target.ignoreListenerVolume; + break; + case Property.PlayOnAwake: + iob.Value = target.playOnAwake; + break; + case Property.IgnoreListenerPause: + iob.Value = target.ignoreListenerPause; + break; + case Property.PanStereo: + iof.Value = target.panStereo; + break; + case Property.SpatialBlend: + iof.Value = target.spatialBlend; + break; + case Property.Spatialize: + iob.Value = target.spatialize; + break; + case Property.SpatializePostEffects: + iob.Value = target.spatializePostEffects; + break; + case Property.ReverbZoneMix: + iof.Value = target.reverbZoneMix; + break; + case Property.BypassEffects: + iob.Value = target.bypassEffects; + break; + case Property.BypassListenerEffects: + iob.Value = target.bypassListenerEffects; + break; + case Property.BypassReverbZones: + iob.Value = target.bypassReverbZones; + break; + case Property.DopplerLevel: + iof.Value = target.dopplerLevel; + break; + case Property.Spread: + iof.Value = target.spread; + break; + case Property.Priority: + ioi.Value = target.priority; + break; + case Property.Mute: + iob.Value = target.mute; + break; + case Property.MinDistance: + iof.Value = target.minDistance; + break; + case Property.MaxDistance: + iof.Value = target.maxDistance; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Volume: + target.volume = iof.Value; + break; + case Property.Pitch: + target.pitch = iof.Value; + break; + case Property.Time: + target.time = iof.Value; + break; + case Property.TimeSamples: + target.timeSamples = ioi.Value; + break; + case Property.Loop: + target.loop = iob.Value; + break; + case Property.IgnoreListenerVolume: + target.ignoreListenerVolume = iob.Value; + break; + case Property.PlayOnAwake: + target.playOnAwake = iob.Value; + break; + case Property.IgnoreListenerPause: + target.ignoreListenerPause = iob.Value; + break; + case Property.PanStereo: + target.panStereo = iof.Value; + break; + case Property.SpatialBlend: + target.spatialBlend = iof.Value; + break; + case Property.Spatialize: + target.spatialize = iob.Value; + break; + case Property.SpatializePostEffects: + target.spatializePostEffects = iob.Value; + break; + case Property.ReverbZoneMix: + target.reverbZoneMix = iof.Value; + break; + case Property.BypassEffects: + target.bypassEffects = iob.Value; + break; + case Property.BypassListenerEffects: + target.bypassListenerEffects = iob.Value; + break; + case Property.BypassReverbZones: + target.bypassReverbZones = iob.Value; + break; + case Property.DopplerLevel: + target.dopplerLevel = iof.Value; + break; + case Property.Spread: + target.spread = iof.Value; + break; + case Property.Priority: + target.priority = ioi.Value; + break; + case Property.Mute: + target.mute = iob.Value; + break; + case Property.MinDistance: + target.minDistance = iof.Value; + break; + case Property.MaxDistance: + target.maxDistance = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (audioSourceVar == null) + { + return "Error: no audioSourceVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (audioSourceVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs.meta new file mode 100644 index 00000000..533d3d7f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/AudioSourceProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2250cfac690a2b74f8f9dd9be91985c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs b/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs new file mode 100644 index 00000000..08792f4c --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs @@ -0,0 +1,125 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Collection component + /// + [CommandInfo("Property", + "Collection", + "Get or Set a property of a Collection component")] + [AddComponentMenu("")] + public class CollectionProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Capacity, + Count, + IsFixedSize, + IsReadOnly, + IsSynchronized, + Name, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected CollectionData collectionData; + + [SerializeField] + [VariableProperty(typeof(IntegerVariable), + typeof(BooleanVariable), + typeof(StringVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + var ios = inOutVar as StringVariable; + + + var target = collectionData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Capacity: + ioi.Value = target.Capacity; + break; + case Property.Count: + ioi.Value = target.Count; + break; + case Property.IsFixedSize: + iob.Value = target.IsFixedSize; + break; + case Property.IsReadOnly: + iob.Value = target.IsReadOnly; + break; + case Property.IsSynchronized: + iob.Value = target.IsSynchronized; + break; + case Property.Name: + ios.Value = target.Name; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Capacity: + target.Capacity = ioi.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (collectionData.Value == null) + { + return "Error: no collection set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (collectionData.collectionRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs.meta new file mode 100644 index 00000000..acc59187 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/CollectionProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f03dcf7e7a1d2e418e5588731888b5a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs b/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs new file mode 100644 index 00000000..4a8e4640 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs @@ -0,0 +1,153 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Collider2D component + /// + [CommandInfo("Property", + "Collider2D", + "Get or Set a property of a Collider2D component")] + [AddComponentMenu("")] + public class Collider2DProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Density, + IsTrigger, + UsedByEffector, + UsedByComposite, + Offset, + AttachedRigidbody, + ShapeCount, + Friction, + Bounciness, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected Collider2DData collider2DData; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(BooleanVariable), + typeof(Vector2Variable), + typeof(Rigidbody2DVariable), + typeof(IntegerVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iob = inOutVar as BooleanVariable; + var iov2 = inOutVar as Vector2Variable; + var iorb2d = inOutVar as Rigidbody2DVariable; + var ioi = inOutVar as IntegerVariable; + + + var target = collider2DData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Density: + iof.Value = target.density; + break; + case Property.IsTrigger: + iob.Value = target.isTrigger; + break; + case Property.UsedByEffector: + iob.Value = target.usedByEffector; + break; + case Property.UsedByComposite: + iob.Value = target.usedByComposite; + break; + case Property.Offset: + iov2.Value = target.offset; + break; + case Property.AttachedRigidbody: + iorb2d.Value = target.attachedRigidbody; + break; + case Property.ShapeCount: + ioi.Value = target.shapeCount; + break; + case Property.Friction: + iof.Value = target.friction; + break; + case Property.Bounciness: + iof.Value = target.bounciness; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Density: + target.density = iof.Value; + break; + case Property.IsTrigger: + target.isTrigger = iob.Value; + break; + case Property.UsedByEffector: + target.usedByEffector = iob.Value; + break; + case Property.UsedByComposite: + target.usedByComposite = iob.Value; + break; + case Property.Offset: + target.offset = iov2.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (collider2DData.Value == null) + { + return "Error: no collider2D set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (collider2DData.collider2DRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs.meta new file mode 100644 index 00000000..b4d91cc7 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Collider2DProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: c5d345b268622414c9bb53e05f4580ed +timeCreated: 1517559095 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs b/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs new file mode 100644 index 00000000..2272ea61 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs @@ -0,0 +1,123 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Collider component + /// + [CommandInfo("Property", + "Collider", + "Get or Set a property of a Collider component")] + [AddComponentMenu("")] + public class ColliderProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Enabled, + AttachedRigidbody, + IsTrigger, + ContactOffset, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected ColliderData colliderData; + + [SerializeField] + [VariableProperty(typeof(BooleanVariable), + typeof(RigidbodyVariable), + typeof(FloatVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iob = inOutVar as BooleanVariable; + var iorb = inOutVar as RigidbodyVariable; + var iof = inOutVar as FloatVariable; + + + var target = colliderData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Enabled: + iob.Value = target.enabled; + break; + case Property.AttachedRigidbody: + iorb.Value = target.attachedRigidbody; + break; + case Property.IsTrigger: + iob.Value = target.isTrigger; + break; + case Property.ContactOffset: + iof.Value = target.contactOffset; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Enabled: + target.enabled = iob.Value; + break; + case Property.IsTrigger: + target.isTrigger = iob.Value; + break; + case Property.ContactOffset: + target.contactOffset = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (colliderData.Value == null) + { + return "Error: no collider set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (colliderData.colliderRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs.meta new file mode 100644 index 00000000..b037186d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ColliderProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ca6e05b34c44a734988887ef775a1a1b +timeCreated: 1517559091 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs b/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs new file mode 100644 index 00000000..0999d406 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs @@ -0,0 +1,143 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Collision2D component + /// + [CommandInfo("Property", + "Collision2D", + "Get or Set a property of a Collision2D component")] + [AddComponentMenu("")] + public class Collision2DProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Rigidbody, + OtherRigidbody, + Transform, + GameObject, + RelativeVelocity, + Enabled, + Collider, + OtherCollider, + ContactCount, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(Collision2DVariable))] + protected Collision2DVariable collision2DVar; + + [SerializeField] + [VariableProperty(typeof(Collider2DVariable), + typeof(Rigidbody2DVariable), + typeof(TransformVariable), + typeof(GameObjectVariable), + typeof(Vector2Variable), + typeof(BooleanVariable), + typeof(IntegerVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var ioc2d = inOutVar as Collider2DVariable; + var iorb2d = inOutVar as Rigidbody2DVariable; + var iot = inOutVar as TransformVariable; + var iogo = inOutVar as GameObjectVariable; + var iov2 = inOutVar as Vector2Variable; + var iob = inOutVar as BooleanVariable; + var ioi = inOutVar as IntegerVariable; + + + var target = collision2DVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Collider: + ioc2d.Value = target.collider; + break; + case Property.OtherCollider: + ioc2d.Value = target.otherCollider; + break; + case Property.Rigidbody: + iorb2d.Value = target.rigidbody; + break; + case Property.OtherRigidbody: + iorb2d.Value = target.otherRigidbody; + break; + case Property.Transform: + iot.Value = target.transform; + break; + case Property.GameObject: + iogo.Value = target.gameObject; + break; + case Property.RelativeVelocity: + iov2.Value = target.relativeVelocity; + break; + case Property.Enabled: + iob.Value = target.enabled; + break; + case Property.ContactCount: + ioi.Value = target.contactCount; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (collision2DVar == null) + { + return "Error: no collision2DVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (collision2DVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs.meta new file mode 100644 index 00000000..e13e15dd --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Collision2DProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 8556e15e3a9145740815675ae531a7cd +timeCreated: 1517559039 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs b/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs new file mode 100644 index 00000000..6343654e --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs @@ -0,0 +1,127 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Collision component + /// + [CommandInfo("Property", + "Collision", + "Get or Set a property of a Collision component")] + [AddComponentMenu("")] + public class CollisionProperty : BaseVariableProperty + { + //generated property + public enum Property + { + RelativeVelocity, + Rigidbody, + Collider, + Transform, + GameObject, + Impulse, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(CollisionVariable))] + protected CollisionVariable collisionVar; + + [SerializeField] + [VariableProperty(typeof(Vector3Variable), + typeof(RigidbodyVariable), + typeof(ColliderVariable), + typeof(TransformVariable), + typeof(GameObjectVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iov = inOutVar as Vector3Variable; + var iorb = inOutVar as RigidbodyVariable; + var ioc = inOutVar as ColliderVariable; + var iot = inOutVar as TransformVariable; + var iogo = inOutVar as GameObjectVariable; + + + var target = collisionVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.RelativeVelocity: + iov.Value = target.relativeVelocity; + break; + case Property.Rigidbody: + iorb.Value = target.rigidbody; + break; + case Property.Collider: + ioc.Value = target.collider; + break; + case Property.Transform: + iot.Value = target.transform; + break; + case Property.GameObject: + iogo.Value = target.gameObject; + break; + case Property.Impulse: + iov.Value = target.impulse; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (collisionVar == null) + { + return "Error: no collisionVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (collisionVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs.meta new file mode 100644 index 00000000..9f3fc58f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/CollisionProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 5d7861de0e23aac439a4959cd06b3d09 +timeCreated: 1517559033 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs b/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs new file mode 100644 index 00000000..0046f028 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs @@ -0,0 +1,137 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Color component + /// + [CommandInfo("Property", + "Color", + "Get or Set a property of a Color component")] + [AddComponentMenu("")] + public class ColorProperty : BaseVariableProperty + { + //generated property + public enum Property + { + R, + G, + B, + A, + Grayscale, + Linear, + Gamma, + MaxColorComponent, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(ColorVariable))] + protected ColorVariable colorVar; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(ColorVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iocol = inOutVar as ColorVariable; + + + var target = colorVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.R: + iof.Value = target.r; + break; + case Property.G: + iof.Value = target.g; + break; + case Property.B: + iof.Value = target.b; + break; + case Property.A: + iof.Value = target.a; + break; + case Property.Grayscale: + iof.Value = target.grayscale; + break; + case Property.Linear: + iocol.Value = target.linear; + break; + case Property.Gamma: + iocol.Value = target.gamma; + break; + case Property.MaxColorComponent: + iof.Value = target.maxColorComponent; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.R: + target.r = iof.Value; + break; + case Property.G: + target.g = iof.Value; + break; + case Property.B: + target.b = iof.Value; + break; + case Property.A: + target.a = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (colorVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs.meta new file mode 100644 index 00000000..e74334c9 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ColorProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c9c405ac7b91be439696c5607bddb01 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs b/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs new file mode 100644 index 00000000..7be49bbe --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs @@ -0,0 +1,137 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a ControllerColliderHit component + /// + [CommandInfo("Property", + "ControllerColliderHit", + "Get or Set a property of a ControllerColliderHit component")] + [AddComponentMenu("")] + public class ControllerColliderHitProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Collider, + Rigidbody, + GameObject, + Transform, + Point, + Normal, + MoveDirection, + MoveLength, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(ControllerColliderHitVariable))] + protected ControllerColliderHitVariable controllerColliderHitVar; + + [SerializeField] + [VariableProperty(typeof(ColliderVariable), + typeof(RigidbodyVariable), + typeof(GameObjectVariable), + typeof(TransformVariable), + typeof(Vector3Variable), + typeof(FloatVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var ioc = inOutVar as ColliderVariable; + var iorb = inOutVar as RigidbodyVariable; + var iogo = inOutVar as GameObjectVariable; + var iot = inOutVar as TransformVariable; + var iov = inOutVar as Vector3Variable; + var iof = inOutVar as FloatVariable; + + + var target = controllerColliderHitVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Collider: + ioc.Value = target.collider; + break; + case Property.Rigidbody: + iorb.Value = target.rigidbody; + break; + case Property.GameObject: + iogo.Value = target.gameObject; + break; + case Property.Transform: + iot.Value = target.transform; + break; + case Property.Point: + iov.Value = target.point; + break; + case Property.Normal: + iov.Value = target.normal; + break; + case Property.MoveDirection: + iov.Value = target.moveDirection; + break; + case Property.MoveLength: + iof.Value = target.moveLength; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (controllerColliderHitVar == null) + { + return "Error: no controllerColliderHitVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (controllerColliderHitVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs.meta new file mode 100644 index 00000000..49532f48 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/ControllerColliderHitProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 706c416dcce1daf4188e35d5981ac45f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs b/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs new file mode 100644 index 00000000..6d669fc0 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs @@ -0,0 +1,140 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a GameObject component + /// + [CommandInfo("Property", + "GameObject", + "Get or Set a property of a GameObject component")] + [AddComponentMenu("")] + public class GameObjectProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Transform, + Layer, + ActiveSelf, + ActiveInHierarchy, + IsStatic, + Tag, + GameObject, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(GameObjectVariable))] + protected GameObjectVariable gameObjectVar; + + [SerializeField] + [VariableProperty(typeof(TransformVariable), + typeof(IntegerVariable), + typeof(BooleanVariable), + typeof(StringVariable), + typeof(GameObjectVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iot = inOutVar as TransformVariable; + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + var ios = inOutVar as StringVariable; + var iogo = inOutVar as GameObjectVariable; + + + var target = gameObjectVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Transform: + iot.Value = target.transform; + break; + case Property.Layer: + ioi.Value = target.layer; + break; + case Property.ActiveSelf: + iob.Value = target.activeSelf; + break; + case Property.ActiveInHierarchy: + iob.Value = target.activeInHierarchy; + break; + case Property.IsStatic: + iob.Value = target.isStatic; + break; + case Property.Tag: + ios.Value = target.tag; + break; + case Property.GameObject: + iogo.Value = target.gameObject; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Layer: + target.layer = ioi.Value; + break; + case Property.IsStatic: + target.isStatic = iob.Value; + break; + case Property.Tag: + target.tag = ios.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (gameObjectVar == null) + { + return "Error: no gameObjectVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (gameObjectVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs.meta new file mode 100644 index 00000000..94d39dae --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/GameObjectProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 121c2a4d38c149443adb81911f0fdd61 +timeCreated: 1517613000 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs b/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs new file mode 100644 index 00000000..be1a846c --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs @@ -0,0 +1,156 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Material component + /// + [CommandInfo("Property", + "Material", + "Get or Set a property of a Material component")] + [AddComponentMenu("")] + public class MaterialProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Color, + MainTexture, + MainTextureOffset, + MainTextureScale, + RenderQueue, + DoubleSidedGI, + EnableInstancing, + PassCount, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(MaterialVariable))] + protected MaterialVariable materialVar; + + [SerializeField] + [VariableProperty(typeof(ColorVariable), + typeof(TextureVariable), + typeof(Vector2Variable), + typeof(IntegerVariable), + typeof(BooleanVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iocol = inOutVar as ColorVariable; + var iotex = inOutVar as TextureVariable; + var iov2 = inOutVar as Vector2Variable; + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + + + var target = materialVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Color: + iocol.Value = target.color; + break; + case Property.MainTexture: + iotex.Value = target.mainTexture; + break; + case Property.MainTextureOffset: + iov2.Value = target.mainTextureOffset; + break; + case Property.MainTextureScale: + iov2.Value = target.mainTextureScale; + break; + case Property.RenderQueue: + ioi.Value = target.renderQueue; + break; + case Property.DoubleSidedGI: + iob.Value = target.doubleSidedGI; + break; + case Property.EnableInstancing: + iob.Value = target.enableInstancing; + break; + case Property.PassCount: + ioi.Value = target.passCount; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Color: + target.color = iocol.Value; + break; + case Property.MainTexture: + target.mainTexture = iotex.Value; + break; + case Property.MainTextureOffset: + target.mainTextureOffset = iov2.Value; + break; + case Property.MainTextureScale: + target.mainTextureScale = iov2.Value; + break; + case Property.RenderQueue: + target.renderQueue = ioi.Value; + break; + case Property.DoubleSidedGI: + target.doubleSidedGI = iob.Value; + break; + case Property.EnableInstancing: + target.enableInstancing = iob.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (materialVar == null) + { + return "Error: no materialVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (materialVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs.meta new file mode 100644 index 00000000..65888d7f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/MaterialProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 363b2ba6b0053774884b097fb9312a46 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs b/Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs new file mode 100644 index 00000000..78b7db07 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs @@ -0,0 +1,234 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Matrix4x4 component + /// + [CommandInfo("Property", + "Matrix4x4", + "Get or Set a property of a Matrix4x4 component")] + [AddComponentMenu("")] + public class Matrix4x4Property : BaseVariableProperty + { + //generated property + public enum Property + { + M00, + M10, + M20, + M30, + M01, + M11, + M21, + M31, + M02, + M12, + M22, + M32, + M03, + M13, + M23, + M33, + Inverse, + Transpose, + Rotation, + LossyScale, + IsIdentity, + Determinant, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected Matrix4x4Data matrix4x4Data; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(QuaternionVariable), + typeof(Vector3Variable), + typeof(BooleanVariable), + typeof(Matrix4x4Variable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var ioq = inOutVar as QuaternionVariable; + var iov = inOutVar as Vector3Variable; + var iob = inOutVar as BooleanVariable; + var iom4 = inOutVar as Matrix4x4Variable; + + + var target = matrix4x4Data.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.M00: + iof.Value = target.m00; + break; + case Property.M10: + iof.Value = target.m10; + break; + case Property.M20: + iof.Value = target.m20; + break; + case Property.M30: + iof.Value = target.m30; + break; + case Property.M01: + iof.Value = target.m01; + break; + case Property.M11: + iof.Value = target.m11; + break; + case Property.M21: + iof.Value = target.m21; + break; + case Property.M31: + iof.Value = target.m31; + break; + case Property.M02: + iof.Value = target.m02; + break; + case Property.M12: + iof.Value = target.m12; + break; + case Property.M22: + iof.Value = target.m22; + break; + case Property.M32: + iof.Value = target.m32; + break; + case Property.M03: + iof.Value = target.m03; + break; + case Property.M13: + iof.Value = target.m13; + break; + case Property.M23: + iof.Value = target.m23; + break; + case Property.M33: + iof.Value = target.m33; + break; + case Property.Rotation: + ioq.Value = target.rotation; + break; + case Property.LossyScale: + iov.Value = target.lossyScale; + break; + case Property.IsIdentity: + iob.Value = target.isIdentity; + break; + case Property.Determinant: + iof.Value = target.determinant; + break; + case Property.Inverse: + iom4.Value = target.inverse; + break; + case Property.Transpose: + iom4.Value = target.transpose; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.M00: + target.m00 = iof.Value; + break; + case Property.M10: + target.m10 = iof.Value; + break; + case Property.M20: + target.m20 = iof.Value; + break; + case Property.M30: + target.m30 = iof.Value; + break; + case Property.M01: + target.m01 = iof.Value; + break; + case Property.M11: + target.m11 = iof.Value; + break; + case Property.M21: + target.m21 = iof.Value; + break; + case Property.M31: + target.m31 = iof.Value; + break; + case Property.M02: + target.m02 = iof.Value; + break; + case Property.M12: + target.m12 = iof.Value; + break; + case Property.M22: + target.m22 = iof.Value; + break; + case Property.M32: + target.m32 = iof.Value; + break; + case Property.M03: + target.m03 = iof.Value; + break; + case Property.M13: + target.m13 = iof.Value; + break; + case Property.M23: + target.m23 = iof.Value; + break; + case Property.M33: + target.m33 = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (matrix4x4Data.matrix4x4Ref == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs.meta similarity index 76% rename from Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs.meta rename to Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs.meta index a3fd7b3c..cd528c70 100644 --- a/Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs.meta +++ b/Assets/Fungus/Scripts/Commands/Property/Matrix4x4Property.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 2fb064de1b711a449845627f19b7f7b1 -timeCreated: 1504942828 +guid: 37ada407c7c9fab46abba0d40c27fa96 +timeCreated: 1513287480 licenseType: Free MonoImporter: serializedVersion: 2 diff --git a/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs b/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs new file mode 100644 index 00000000..507b64ee --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs @@ -0,0 +1,133 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Quaternion component + /// + [CommandInfo("Property", + "Quaternion", + "Get or Set a property of a Quaternion component")] + [AddComponentMenu("")] + public class QuaternionProperty : BaseVariableProperty + { + //generated property + public enum Property + { + X, + Y, + Z, + W, + EulerAngles, + Normalized, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected QuaternionData quaternionData; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(Vector3Variable), + typeof(QuaternionVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iov = inOutVar as Vector3Variable; + var ioq = inOutVar as QuaternionVariable; + + + var target = quaternionData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.X: + iof.Value = target.x; + break; + case Property.Y: + iof.Value = target.y; + break; + case Property.Z: + iof.Value = target.z; + break; + case Property.W: + iof.Value = target.w; + break; + case Property.EulerAngles: + iov.Value = target.eulerAngles; + break; + case Property.Normalized: + ioq.Value = target.normalized; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.X: + target.x = iof.Value; + break; + case Property.Y: + target.y = iof.Value; + break; + case Property.Z: + target.z = iof.Value; + break; + case Property.W: + target.w = iof.Value; + break; + case Property.EulerAngles: + target.eulerAngles = iov.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (quaternionData.quaternionRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs.meta new file mode 100644 index 00000000..7fc4480f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/QuaternionProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1082e9a99a168824583a459d59a448a0 +timeCreated: 1513287464 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs b/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs new file mode 100644 index 00000000..fd52a104 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs @@ -0,0 +1,213 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Rigidbody2D component + /// + [CommandInfo("Property", + "Rigidbody2D", + "Get or Set a property of a Rigidbody2D component")] + [AddComponentMenu("")] + public class Rigidbody2DProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Position, + Rotation, + Velocity, + AngularVelocity, + UseAutoMass, + Mass, + CenterOfMass, + WorldCenterOfMass, + Inertia, + Drag, + AngularDrag, + GravityScale, + UseFullKinematicContacts, + IsKinematic, + FreezeRotation, + Simulated, + AttachedColliderCount, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected Rigidbody2DData rigidbody2DData; + + [SerializeField] + [VariableProperty(typeof(Vector2Variable), + typeof(FloatVariable), + typeof(BooleanVariable), + typeof(IntegerVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iov2 = inOutVar as Vector2Variable; + var iof = inOutVar as FloatVariable; + var iob = inOutVar as BooleanVariable; + var ioi = inOutVar as IntegerVariable; + + + var target = rigidbody2DData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Position: + iov2.Value = target.position; + break; + case Property.Rotation: + iof.Value = target.rotation; + break; + case Property.Velocity: + iov2.Value = target.velocity; + break; + case Property.AngularVelocity: + iof.Value = target.angularVelocity; + break; + case Property.UseAutoMass: + iob.Value = target.useAutoMass; + break; + case Property.Mass: + iof.Value = target.mass; + break; + case Property.CenterOfMass: + iov2.Value = target.centerOfMass; + break; + case Property.WorldCenterOfMass: + iov2.Value = target.worldCenterOfMass; + break; + case Property.Inertia: + iof.Value = target.inertia; + break; + case Property.Drag: + iof.Value = target.drag; + break; + case Property.AngularDrag: + iof.Value = target.angularDrag; + break; + case Property.GravityScale: + iof.Value = target.gravityScale; + break; + case Property.UseFullKinematicContacts: + iob.Value = target.useFullKinematicContacts; + break; + case Property.IsKinematic: + iob.Value = target.isKinematic; + break; + case Property.FreezeRotation: + iob.Value = target.freezeRotation; + break; + case Property.Simulated: + iob.Value = target.simulated; + break; + case Property.AttachedColliderCount: + ioi.Value = target.attachedColliderCount; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Position: + target.position = iov2.Value; + break; + case Property.Rotation: + target.rotation = iof.Value; + break; + case Property.Velocity: + target.velocity = iov2.Value; + break; + case Property.AngularVelocity: + target.angularVelocity = iof.Value; + break; + case Property.UseAutoMass: + target.useAutoMass = iob.Value; + break; + case Property.Mass: + target.mass = iof.Value; + break; + case Property.CenterOfMass: + target.centerOfMass = iov2.Value; + break; + case Property.Inertia: + target.inertia = iof.Value; + break; + case Property.Drag: + target.drag = iof.Value; + break; + case Property.AngularDrag: + target.angularDrag = iof.Value; + break; + case Property.GravityScale: + target.gravityScale = iof.Value; + break; + case Property.UseFullKinematicContacts: + target.useFullKinematicContacts = iob.Value; + break; + case Property.IsKinematic: + target.isKinematic = iob.Value; + break; + case Property.FreezeRotation: + target.freezeRotation = iob.Value; + break; + case Property.Simulated: + target.simulated = iob.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (rigidbody2DData.Value == null) + { + return "Error: no rigidbody2D set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (rigidbody2DData.rigidbody2DRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs.meta new file mode 100644 index 00000000..2cda84a5 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Rigidbody2DProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 3e16d7fb8c3b00d4c969c48110fc69c2 +timeCreated: 1517559027 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs b/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs new file mode 100644 index 00000000..1506cb40 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs @@ -0,0 +1,239 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Rigidbody component + /// + [CommandInfo("Property", + "Rigidbody", + "Get or Set a property of a Rigidbody component")] + [AddComponentMenu("")] + public class RigidbodyProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Velocity, + AngularVelocity, + Drag, + AngularDrag, + Mass, + UseGravity, + MaxDepenetrationVelocity, + IsKinematic, + FreezeRotation, + CenterOfMass, + WorldCenterOfMass, + InertiaTensorRotation, + InertiaTensor, + DetectCollisions, + Position, + Rotation, + SolverIterations, + SolverVelocityIterations, + SleepThreshold, + MaxAngularVelocity, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected RigidbodyData rigidbodyData; + + [SerializeField] + [VariableProperty(typeof(Vector3Variable), + typeof(FloatVariable), + typeof(BooleanVariable), + typeof(QuaternionVariable), + typeof(IntegerVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iov = inOutVar as Vector3Variable; + var iof = inOutVar as FloatVariable; + var iob = inOutVar as BooleanVariable; + var ioq = inOutVar as QuaternionVariable; + var ioi = inOutVar as IntegerVariable; + + + var target = rigidbodyData.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Velocity: + iov.Value = target.velocity; + break; + case Property.AngularVelocity: + iov.Value = target.angularVelocity; + break; + case Property.Drag: + iof.Value = target.drag; + break; + case Property.AngularDrag: + iof.Value = target.angularDrag; + break; + case Property.Mass: + iof.Value = target.mass; + break; + case Property.UseGravity: + iob.Value = target.useGravity; + break; + case Property.MaxDepenetrationVelocity: + iof.Value = target.maxDepenetrationVelocity; + break; + case Property.IsKinematic: + iob.Value = target.isKinematic; + break; + case Property.FreezeRotation: + iob.Value = target.freezeRotation; + break; + case Property.CenterOfMass: + iov.Value = target.centerOfMass; + break; + case Property.WorldCenterOfMass: + iov.Value = target.worldCenterOfMass; + break; + case Property.InertiaTensorRotation: + ioq.Value = target.inertiaTensorRotation; + break; + case Property.InertiaTensor: + iov.Value = target.inertiaTensor; + break; + case Property.DetectCollisions: + iob.Value = target.detectCollisions; + break; + case Property.Position: + iov.Value = target.position; + break; + case Property.Rotation: + ioq.Value = target.rotation; + break; + case Property.SolverIterations: + ioi.Value = target.solverIterations; + break; + case Property.SleepThreshold: + iof.Value = target.sleepThreshold; + break; + case Property.MaxAngularVelocity: + iof.Value = target.maxAngularVelocity; + break; + case Property.SolverVelocityIterations: + ioi.Value = target.solverVelocityIterations; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Velocity: + target.velocity = iov.Value; + break; + case Property.AngularVelocity: + target.angularVelocity = iov.Value; + break; + case Property.Drag: + target.drag = iof.Value; + break; + case Property.AngularDrag: + target.angularDrag = iof.Value; + break; + case Property.Mass: + target.mass = iof.Value; + break; + case Property.UseGravity: + target.useGravity = iob.Value; + break; + case Property.MaxDepenetrationVelocity: + target.maxDepenetrationVelocity = iof.Value; + break; + case Property.IsKinematic: + target.isKinematic = iob.Value; + break; + case Property.FreezeRotation: + target.freezeRotation = iob.Value; + break; + case Property.CenterOfMass: + target.centerOfMass = iov.Value; + break; + case Property.InertiaTensorRotation: + target.inertiaTensorRotation = ioq.Value; + break; + case Property.InertiaTensor: + target.inertiaTensor = iov.Value; + break; + case Property.DetectCollisions: + target.detectCollisions = iob.Value; + break; + case Property.Position: + target.position = iov.Value; + break; + case Property.Rotation: + target.rotation = ioq.Value; + break; + case Property.SolverIterations: + target.solverIterations = ioi.Value; + break; + case Property.SleepThreshold: + target.sleepThreshold = iof.Value; + break; + case Property.MaxAngularVelocity: + target.maxAngularVelocity = iof.Value; + break; + case Property.SolverVelocityIterations: + target.solverVelocityIterations = ioi.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (rigidbodyData.Value == null) + { + return "Error: no rigidbody set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (rigidbodyData.rigidbodyRef == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs.meta new file mode 100644 index 00000000..c554411e --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/RigidbodyProperty.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: cdf9b24957fec22439bac2223dd88461 +timeCreated: 1517558732 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs b/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs new file mode 100644 index 00000000..f9f62689 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs @@ -0,0 +1,121 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Sprite component + /// + [CommandInfo("Property", + "Sprite", + "Get or Set a property of a Sprite component")] + [AddComponentMenu("")] + public class SpriteProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Border, + PixelsPerUnit, + Pivot, + Packed, + TextureRectOffset, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(SpriteVariable))] + protected SpriteVariable spriteVar; + + [SerializeField] + [VariableProperty(typeof(Vector4Variable), + typeof(FloatVariable), + typeof(Vector2Variable), + typeof(BooleanVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iov4 = inOutVar as Vector4Variable; + var iof = inOutVar as FloatVariable; + var iov2 = inOutVar as Vector2Variable; + var iob = inOutVar as BooleanVariable; + + + var target = spriteVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Border: + iov4.Value = target.border; + break; + case Property.PixelsPerUnit: + iof.Value = target.pixelsPerUnit; + break; + case Property.Pivot: + iov2.Value = target.pivot; + break; + case Property.Packed: + iob.Value = target.packed; + break; + case Property.TextureRectOffset: + iov2.Value = target.textureRectOffset; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (spriteVar == null) + { + return "Error: no spriteVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (spriteVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs.meta new file mode 100644 index 00000000..6702eb7f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/SpriteProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c95150ec5d3a0374ba617655d4603934 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs b/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs new file mode 100644 index 00000000..7a14c249 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs @@ -0,0 +1,137 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Texture component + /// + [CommandInfo("Property", + "Texture", + "Get or Set a property of a Texture component")] + [AddComponentMenu("")] + public class TextureProperty : BaseVariableProperty + { + //generated property + public enum Property + { + Width, + Height, + IsReadable, + AnisoLevel, + MipMapBias, + TexelSize, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(TextureVariable))] + protected TextureVariable textureVar; + + [SerializeField] + [VariableProperty(typeof(IntegerVariable), + typeof(BooleanVariable), + typeof(FloatVariable), + typeof(Vector2Variable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + var iof = inOutVar as FloatVariable; + var iov2 = inOutVar as Vector2Variable; + + + var target = textureVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Width: + ioi.Value = target.width; + break; + case Property.Height: + ioi.Value = target.height; + break; + case Property.IsReadable: + iob.Value = target.isReadable; + break; + case Property.AnisoLevel: + ioi.Value = target.anisoLevel; + break; + case Property.MipMapBias: + iof.Value = target.mipMapBias; + break; + case Property.TexelSize: + iov2.Value = target.texelSize; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Width: + target.width = ioi.Value; + break; + case Property.Height: + target.height = ioi.Value; + break; + case Property.AnisoLevel: + target.anisoLevel = ioi.Value; + break; + case Property.MipMapBias: + target.mipMapBias = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (textureVar == null) + { + return "Error: no textureVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (textureVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs.meta new file mode 100644 index 00000000..3da4179b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/TextureProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31b49af150726234597bd728285c18f9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs b/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs new file mode 100644 index 00000000..e95d911c --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs @@ -0,0 +1,220 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Transform component + /// + [CommandInfo("Property", + "Transform", + "Get or Set a property of a Transform component")] + [AddComponentMenu("")] + public class TransformProperty : BaseVariableProperty + { + //generated property + public enum Property + { + ChildCount, + EulerAngles, + Forward, + HasChanged, + HierarchyCapacity, + HierarchyCount, + LocalEulerAngles, + LocalPosition, + LocalScale, + LossyScale, + Parent, + Position, + Right, + Root, + Up, + Rotation, + LocalRotation, + WorldToLocalMatrix, + LocalToWorldMatrix, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(TransformVariable))] + protected TransformVariable transformVar; + + [SerializeField] + [VariableProperty(typeof(Vector3Variable), + typeof(QuaternionVariable), + typeof(TransformVariable), + typeof(Matrix4x4Variable), + typeof(IntegerVariable), + typeof(BooleanVariable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iov = inOutVar as Vector3Variable; + var ioq = inOutVar as QuaternionVariable; + var iot = inOutVar as TransformVariable; + var iom4 = inOutVar as Matrix4x4Variable; + var ioi = inOutVar as IntegerVariable; + var iob = inOutVar as BooleanVariable; + + + var target = transformVar.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.Position: + iov.Value = target.position; + break; + case Property.LocalPosition: + iov.Value = target.localPosition; + break; + case Property.EulerAngles: + iov.Value = target.eulerAngles; + break; + case Property.LocalEulerAngles: + iov.Value = target.localEulerAngles; + break; + case Property.Right: + iov.Value = target.right; + break; + case Property.Up: + iov.Value = target.up; + break; + case Property.Forward: + iov.Value = target.forward; + break; + case Property.Rotation: + ioq.Value = target.rotation; + break; + case Property.LocalRotation: + ioq.Value = target.localRotation; + break; + case Property.LocalScale: + iov.Value = target.localScale; + break; + case Property.Parent: + iot.Value = target.parent; + break; + case Property.WorldToLocalMatrix: + iom4.Value = target.worldToLocalMatrix; + break; + case Property.LocalToWorldMatrix: + iom4.Value = target.localToWorldMatrix; + break; + case Property.Root: + iot.Value = target.root; + break; + case Property.ChildCount: + ioi.Value = target.childCount; + break; + case Property.LossyScale: + iov.Value = target.lossyScale; + break; + case Property.HasChanged: + iob.Value = target.hasChanged; + break; + case Property.HierarchyCapacity: + ioi.Value = target.hierarchyCapacity; + break; + case Property.HierarchyCount: + ioi.Value = target.hierarchyCount; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.Position: + target.position = iov.Value; + break; + case Property.LocalPosition: + target.localPosition = iov.Value; + break; + case Property.EulerAngles: + target.eulerAngles = iov.Value; + break; + case Property.LocalEulerAngles: + target.localEulerAngles = iov.Value; + break; + case Property.Right: + target.right = iov.Value; + break; + case Property.Up: + target.up = iov.Value; + break; + case Property.Forward: + target.forward = iov.Value; + break; + case Property.Rotation: + target.rotation = ioq.Value; + break; + case Property.LocalRotation: + target.localRotation = ioq.Value; + break; + case Property.LocalScale: + target.localScale = iov.Value; + break; + case Property.Parent: + target.parent = iot.Value; + break; + case Property.HasChanged: + target.hasChanged = iob.Value; + break; + case Property.HierarchyCapacity: + target.hierarchyCapacity = ioi.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (transformVar == null) + { + return "Error: no transformVar set"; + } + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (transformVar == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs.meta b/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs.meta new file mode 100644 index 00000000..2dc40f0d --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/TransformProperty.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9c3eb9160fdceb448b5e55362ac1ee4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs b/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs new file mode 100644 index 00000000..2d2c4573 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs @@ -0,0 +1,119 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Vector2 component + /// + [CommandInfo("Property", + "Vector2", + "Get or Set a property of a Vector2 component")] + [AddComponentMenu("")] + public class Vector2Property : BaseVariableProperty + { + //generated property + public enum Property + { + X, + Y, + Normalized, + Magnitude, + SqrMagnitude, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(Vector2Variable))] + protected Vector2Variable vector2Var; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(Vector2Variable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iov2 = inOutVar as Vector2Variable; + + + var target = vector2Var.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.X: + iof.Value = target.x; + break; + case Property.Y: + iof.Value = target.y; + break; + case Property.Normalized: + iov2.Value = target.normalized; + break; + case Property.Magnitude: + iof.Value = target.magnitude; + break; + case Property.SqrMagnitude: + iof.Value = target.sqrMagnitude; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.X: + target.x = iof.Value; + break; + case Property.Y: + target.y = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (vector2Var == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs.meta new file mode 100644 index 00000000..3f9cb9c6 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector2Property.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a7015dec6a71cdd4ba95bb85217200b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs b/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs new file mode 100644 index 00000000..bfd3bd0b --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs @@ -0,0 +1,126 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Vector3 component + /// + [CommandInfo("Property", + "Vector3", + "Get or Set a property of a Vector3 component")] + [AddComponentMenu("")] + public class Vector3Property : BaseVariableProperty + { + //generated property + public enum Property + { + X, + Y, + Z, + Normalized, + Magnitude, + SqrMagnitude, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof(Vector3Variable))] + protected Vector3Variable vector3Var; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(Vector3Variable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iov = inOutVar as Vector3Variable; + + + var target = vector3Var.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.X: + iof.Value = target.x; + break; + case Property.Y: + iof.Value = target.y; + break; + case Property.Z: + iof.Value = target.z; + break; + case Property.Normalized: + iov.Value = target.normalized; + break; + case Property.Magnitude: + iof.Value = target.magnitude; + break; + case Property.SqrMagnitude: + iof.Value = target.sqrMagnitude; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.X: + target.x = iof.Value; + break; + case Property.Y: + target.y = iof.Value; + break; + case Property.Z: + target.z = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (vector3Var == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs.meta new file mode 100644 index 00000000..79e8c09a --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector3Property.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c9d421d283ce7de459ab56214f315618 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs b/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs new file mode 100644 index 00000000..edfa07aa --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs @@ -0,0 +1,132 @@ +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + + +namespace Fungus +{ + // + /// Get or Set a property of a Vector4 component + /// + [CommandInfo("Property", + "Vector4", + "Get or Set a property of a Vector4 component")] + [AddComponentMenu("")] + public class Vector4Property : BaseVariableProperty + { + //generated property + public enum Property + { + X, + Y, + Z, + W, + Magnitude, + SqrMagnitude, + Normalized, + } + + + [SerializeField] + protected Property property; + + [SerializeField] + protected Vector4Data vector4Data; + + [SerializeField] + [VariableProperty(typeof(FloatVariable), + typeof(Vector4Variable))] + protected Variable inOutVar; + + public override void OnEnter() + { + var iof = inOutVar as FloatVariable; + var iov4 = inOutVar as Vector4Variable; + + + var target = vector4Data.Value; + + switch (getOrSet) + { + case GetSet.Get: + switch (property) + { + case Property.X: + iof.Value = target.x; + break; + case Property.Y: + iof.Value = target.y; + break; + case Property.Z: + iof.Value = target.z; + break; + case Property.W: + iof.Value = target.w; + break; + case Property.Normalized: + iov4.Value = target.normalized; + break; + case Property.Magnitude: + iof.Value = target.magnitude; + break; + case Property.SqrMagnitude: + iof.Value = target.sqrMagnitude; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + case GetSet.Set: + switch (property) + { + case Property.X: + target.x = iof.Value; + break; + case Property.Y: + target.y = iof.Value; + break; + case Property.Z: + target.z = iof.Value; + break; + case Property.W: + target.w = iof.Value; + break; + default: + Debug.Log("Unsupported get or set attempted"); + break; + } + + break; + default: + break; + } + + Continue(); + } + + public override string GetSummary() + { + if (inOutVar == null) + { + return "Error: no variable set to push or pull data to or from"; + } + + return getOrSet.ToString() + " " + property.ToString(); + } + + public override Color GetButtonColor() + { + return new Color32(235, 191, 217, 255); + } + + public override bool HasReference(Variable variable) + { + if (vector4Data.vector4Ref == variable || inOutVar == variable) + return true; + + return false; + } + + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs.meta b/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs.meta new file mode 100644 index 00000000..a60ca09f --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/Property/Vector4Property.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 218837ae2b5d9ad4cb51c47575ce1ffc +timeCreated: 1517559329 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/SetVariable.cs b/Assets/Fungus/Scripts/Commands/SetVariable.cs index a58ff205..f9e7cfe5 100644 --- a/Assets/Fungus/Scripts/Commands/SetVariable.cs +++ b/Assets/Fungus/Scripts/Commands/SetVariable.cs @@ -13,399 +13,219 @@ namespace Fungus "Set Variable", "Sets a Boolean, Integer, Float or String variable to a new value using a simple arithmetic operation. The value can be a constant or reference another variable of the same type.")] [AddComponentMenu("")] - public class SetVariable : Command + public class SetVariable : Command, ISerializationCallbackReceiver { - [Tooltip("The variable whos value will be set")] - [VariableProperty(typeof(BooleanVariable), - typeof(IntegerVariable), - typeof(FloatVariable), - typeof(StringVariable), - typeof(AnimatorVariable), - typeof(AudioSourceVariable), - typeof(ColorVariable), - typeof(GameObjectVariable), - typeof(MaterialVariable), - typeof(ObjectVariable), - typeof(Rigidbody2DVariable), - typeof(SpriteVariable), - typeof(TextureVariable), - typeof(TransformVariable), - typeof(Vector2Variable), - typeof(Vector3Variable))] - [SerializeField] protected Variable variable; - + [SerializeField] protected AnyVariableAndDataPair anyVar = new AnyVariableAndDataPair(); + [Tooltip("The type of math operation to be performed")] [SerializeField] protected SetOperator setOperator; + + protected virtual void DoSetOperation() + { + if (anyVar.variable == null) + { + return; + } + + anyVar.SetOp(setOperator); + } + + #region Public members - [Tooltip("Boolean value to set with")] + /// + /// The type of math operation to be performed. + /// + public virtual SetOperator _SetOperator { get { return setOperator; } } + + public override void OnEnter() + { + DoSetOperation(); + + Continue(); + } + + public override string GetSummary() + { + if (anyVar.variable == null) + { + return "Error: Variable not selected"; + } + + string description = anyVar.variable.Key; + description += " " + VariableUtil.GetSetOperatorDescription(setOperator) + " "; + description += anyVar.GetDataDescription(); + + + return description; + } + + public override bool HasReference(Variable variable) + { + return anyVar.HasReference(variable); + } + + public override Color GetButtonColor() + { + return new Color32(253, 253, 150, 255); + } + + #endregion + + #region backwards compat + + + [Tooltip("Variable to use in expression")] + [VariableProperty(AllVariableTypes.VariableAny.Any)] + [SerializeField] protected Variable variable; + + [Tooltip("Boolean value to compare against")] [SerializeField] protected BooleanData booleanData; - [Tooltip("Integer value to set with")] + [Tooltip("Integer value to compare against")] [SerializeField] protected IntegerData integerData; - [Tooltip("Float value to set with")] + [Tooltip("Float value to compare against")] [SerializeField] protected FloatData floatData; - [Tooltip("String value to set with")] + [Tooltip("String value to compare against")] [SerializeField] protected StringDataMulti stringData; - [Tooltip("Animator value to set with")] + [Tooltip("Animator value to compare against")] [SerializeField] protected AnimatorData animatorData; - [Tooltip("AudioSource value to set with")] + [Tooltip("AudioSource value to compare against")] [SerializeField] protected AudioSourceData audioSourceData; - [Tooltip("Color value to set with")] + [Tooltip("Color value to compare against")] [SerializeField] protected ColorData colorData; - [Tooltip("GameObject value to set with")] + [Tooltip("GameObject value to compare against")] [SerializeField] protected GameObjectData gameObjectData; - [Tooltip("Material value to set with")] + [Tooltip("Material value to compare against")] [SerializeField] protected MaterialData materialData; - [Tooltip("Object value to set with")] + [Tooltip("Object value to compare against")] [SerializeField] protected ObjectData objectData; - [Tooltip("Rigidbody2D value to set with")] + [Tooltip("Rigidbody2D value to compare against")] [SerializeField] protected Rigidbody2DData rigidbody2DData; - [Tooltip("Sprite value to set with")] + [Tooltip("Sprite value to compare against")] [SerializeField] protected SpriteData spriteData; - [Tooltip("Texture value to set with")] + [Tooltip("Texture value to compare against")] [SerializeField] protected TextureData textureData; - [Tooltip("Transform value to set with")] + [Tooltip("Transform value to compare against")] [SerializeField] protected TransformData transformData; - [Tooltip("Vector2 value to set with")] + [Tooltip("Vector2 value to compare against")] [SerializeField] protected Vector2Data vector2Data; - [Tooltip("Vector3 value to set with")] + [Tooltip("Vector3 value to compare against")] [SerializeField] protected Vector3Data vector3Data; - protected virtual void DoSetOperation() + public void OnBeforeSerialize() { - if (variable == null) - { - return; - } - - - var t = variable.GetType(); - - if (t == typeof(BooleanVariable)) - { - BooleanVariable booleanVariable = (variable as BooleanVariable); - booleanVariable.Apply(setOperator, booleanData.Value); - } - else if (t == typeof(IntegerVariable)) - { - IntegerVariable integerVariable = (variable as IntegerVariable); - integerVariable.Apply(setOperator, integerData.Value); - } - else if (t == typeof(FloatVariable)) - { - FloatVariable floatVariable = (variable as FloatVariable); - floatVariable.Apply(setOperator, floatData.Value); - } - else if (t == typeof(StringVariable)) - { - StringVariable stringVariable = (variable as StringVariable); - var flowchart = GetFlowchart(); - stringVariable.Apply(setOperator, flowchart.SubstituteVariables(stringData.Value)); - } - else if (t == typeof(AnimatorVariable)) - { - AnimatorVariable animatorVariable = (variable as AnimatorVariable); - animatorVariable.Apply(setOperator, animatorData.Value); - } - else if (t == typeof(AudioSourceVariable)) - { - AudioSourceVariable audioSourceVariable = (variable as AudioSourceVariable); - audioSourceVariable.Apply(setOperator, audioSourceData.Value); - } - else if (t == typeof(ColorVariable)) - { - ColorVariable colorVariable = (variable as ColorVariable); - colorVariable.Apply(setOperator, colorData.Value); - } - else if (t == typeof(GameObjectVariable)) - { - GameObjectVariable gameObjectVariable = (variable as GameObjectVariable); - gameObjectVariable.Apply(setOperator, gameObjectData.Value); - } - else if (t == typeof(MaterialVariable)) - { - MaterialVariable materialVariable = (variable as MaterialVariable); - materialVariable.Apply(setOperator, materialData.Value); - } - else if (t == typeof(ObjectVariable)) - { - ObjectVariable objectVariable = (variable as ObjectVariable); - objectVariable.Apply(setOperator, objectData.Value); - } - else if (t == typeof(Rigidbody2DVariable)) - { - Rigidbody2DVariable rigidbody2DVariable = (variable as Rigidbody2DVariable); - rigidbody2DVariable.Apply(setOperator, rigidbody2DData.Value); - } - else if (t == typeof(SpriteVariable)) - { - SpriteVariable spriteVariable = (variable as SpriteVariable); - spriteVariable.Apply(setOperator, spriteData.Value); - } - else if (t == typeof(TextureVariable)) - { - TextureVariable textureVariable = (variable as TextureVariable); - textureVariable.Apply(setOperator, textureData.Value); - } - else if (t == typeof(TransformVariable)) - { - TransformVariable transformVariable = (variable as TransformVariable); - transformVariable.Apply(setOperator, transformData.Value); - } - else if (t == typeof(Vector2Variable)) - { - Vector2Variable vector2Variable = (variable as Vector2Variable); - vector2Variable.Apply(setOperator, vector2Data.Value); - } - else if (t == typeof(Vector3Variable)) - { - Vector3Variable vector3Variable = (variable as Vector3Variable); - vector3Variable.Apply(setOperator, vector3Data.Value); - } - } - - #region Public members - - public static readonly Dictionary operatorsByVariableType = new Dictionary() { - { typeof(BooleanVariable), BooleanVariable.setOperators }, - { typeof(IntegerVariable), IntegerVariable.setOperators }, - { typeof(FloatVariable), FloatVariable.setOperators }, - { typeof(StringVariable), StringVariable.setOperators }, - { typeof(AnimatorVariable), AnimatorVariable.setOperators }, - { typeof(AudioSourceVariable), AudioSourceVariable.setOperators }, - { typeof(ColorVariable), ColorVariable.setOperators }, - { typeof(GameObjectVariable), GameObjectVariable.setOperators }, - { typeof(MaterialVariable), MaterialVariable.setOperators }, - { typeof(ObjectVariable), ObjectVariable.setOperators }, - { typeof(Rigidbody2DVariable), Rigidbody2DVariable.setOperators }, - { typeof(SpriteVariable), SpriteVariable.setOperators }, - { typeof(TextureVariable), TextureVariable.setOperators }, - { typeof(TransformVariable), TransformVariable.setOperators }, - { typeof(Vector2Variable), Vector2Variable.setOperators }, - { typeof(Vector3Variable), Vector3Variable.setOperators } - }; - - /// - /// The type of math operation to be performed. - /// - public virtual SetOperator _SetOperator { get { return setOperator; } } - - public override void OnEnter() - { - DoSetOperation(); - - Continue(); } - public override string GetSummary() + void ISerializationCallbackReceiver.OnAfterDeserialize() { if (variable == null) { - return "Error: Variable not selected"; - } - - string description = variable.Key; - - switch (setOperator) - { - default: - case SetOperator.Assign: - description += " = "; - break; - case SetOperator.Negate: - description += " =! "; - break; - case SetOperator.Add: - description += " += "; - break; - case SetOperator.Subtract: - description += " -= "; - break; - case SetOperator.Multiply: - description += " *= "; - break; - case SetOperator.Divide: - description += " /= "; - break; - } - - var t = variable.GetType(); - - if (t == typeof(BooleanVariable)) - { - description += booleanData.GetDescription(); - } - else if (t == typeof(IntegerVariable)) - { - description += integerData.GetDescription(); - } - else if (t == typeof(FloatVariable)) - { - description += floatData.GetDescription(); - } - else if (t == typeof(StringVariable)) - { - description += stringData.GetDescription(); - } - else if (t == typeof(AnimatorVariable)) - { - description += animatorData.GetDescription(); - } - else if (t == typeof(AudioSourceVariable)) - { - description += audioSourceData.GetDescription(); - } - else if (t == typeof(ColorVariable)) - { - description += colorData.GetDescription(); - } - else if (t == typeof(GameObjectVariable)) - { - description += gameObjectData.GetDescription(); - } - else if (t == typeof(MaterialVariable)) - { - description += materialData.GetDescription(); - } - else if (t == typeof(ObjectVariable)) - { - description += objectData.GetDescription(); - } - else if (t == typeof(Rigidbody2DVariable)) - { - description += rigidbody2DData.GetDescription(); - } - else if (t == typeof(SpriteVariable)) - { - description += spriteData.GetDescription(); - } - else if (t == typeof(TextureVariable)) - { - description += textureData.GetDescription(); - } - else if (t == typeof(TransformVariable)) - { - description += transformData.GetDescription(); - } - else if (t == typeof(Vector2Variable)) - { - description += vector2Data.GetDescription(); + return; } - else if (t == typeof(Vector3Variable)) + else { - description += vector3Data.GetDescription(); + anyVar.variable = variable; } - return description; - } - - public override bool HasReference(Variable variable) - { - bool retval = (variable == this.variable) || base.HasReference(variable); - - var t = variable.GetType(); - - //this is a nightmare - if (t == typeof(BooleanVariable)) + if (variable.GetType() == typeof(BooleanVariable) && !booleanData.Equals(new BooleanData())) { - retval |= booleanData.booleanRef == variable; + anyVar.data.booleanData = booleanData; + booleanData = new BooleanData(); } - else if (t == typeof(IntegerVariable)) + else if (variable.GetType() == typeof(IntegerVariable) && !integerData.Equals(new IntegerData())) { - retval |= integerData.integerRef == variable; + anyVar.data.integerData = integerData; + integerData = new IntegerData(); } - else if (t == typeof(FloatVariable)) + else if (variable.GetType() == typeof(FloatVariable) && !floatData.Equals(new FloatData())) { - retval |= floatData.floatRef == variable; + anyVar.data.floatData = floatData; + floatData = new FloatData(); } - else if (t == typeof(StringVariable)) + else if (variable.GetType() == typeof(StringVariable) && !stringData.Equals(new StringDataMulti())) { - retval |= stringData.stringRef == variable; + anyVar.data.stringData.stringRef = stringData.stringRef; + anyVar.data.stringData.stringVal = stringData.stringVal; + stringData = new StringDataMulti(); } - else if (t == typeof(AnimatorVariable)) + else if (variable.GetType() == typeof(AnimatorVariable) && !animatorData.Equals(new AnimatorData())) { - retval |= animatorData.animatorRef == variable; + anyVar.data.animatorData = animatorData; + animatorData = new AnimatorData(); } - else if (t == typeof(AudioSourceVariable)) + else if (variable.GetType() == typeof(AudioSourceVariable) && !audioSourceData.Equals(new AudioSourceData())) { - retval |= audioSourceData.audioSourceRef == variable; + anyVar.data.audioSourceData = audioSourceData; + audioSourceData = new AudioSourceData(); } - else if (t == typeof(ColorVariable)) + else if (variable.GetType() == typeof(ColorVariable) && !colorData.Equals(new ColorData())) { - retval |= colorData.colorRef == variable; + anyVar.data.colorData = colorData; + colorData = new ColorData(); } - else if (t == typeof(GameObjectVariable)) + else if (variable.GetType() == typeof(GameObjectVariable) && !gameObjectData.Equals(new GameObjectData())) { - retval |= gameObjectData.gameObjectRef == variable; + anyVar.data.gameObjectData = gameObjectData; + gameObjectData = new GameObjectData(); } - else if (t == typeof(MaterialVariable)) + else if (variable.GetType() == typeof(MaterialVariable) && !materialData.Equals(new MaterialData())) { - retval |= materialData.materialRef == variable; + anyVar.data.materialData = materialData; + materialData = new MaterialData(); } - else if (t == typeof(ObjectVariable)) + else if (variable.GetType() == typeof(ObjectVariable) && !objectData.Equals(new ObjectData())) { - retval |= objectData.objectRef == variable; + anyVar.data.objectData = objectData; + objectData = new ObjectData(); } - else if (t == typeof(Rigidbody2DVariable)) + else if (variable.GetType() == typeof(Rigidbody2DVariable) && !rigidbody2DData.Equals(new Rigidbody2DData())) { - retval |= rigidbody2DData.rigidbody2DRef == variable; + anyVar.data.rigidbody2DData = rigidbody2DData; + rigidbody2DData = new Rigidbody2DData(); } - else if (t == typeof(SpriteVariable)) + else if (variable.GetType() == typeof(SpriteVariable) && !spriteData.Equals(new SpriteData())) { - retval |= spriteData.spriteRef == variable; + anyVar.data.spriteData = spriteData; + spriteData = new SpriteData(); } - else if (t == typeof(TextureVariable)) + else if (variable.GetType() == typeof(TextureVariable) && !textureData.Equals(new TextureData())) { - retval |= textureData.textureRef == variable; + anyVar.data.textureData = textureData; + textureData = new TextureData(); } - else if (t == typeof(TransformVariable)) + else if (variable.GetType() == typeof(TransformVariable) && !transformData.Equals(new TransformData())) { - retval |= transformData.transformRef == variable; + anyVar.data.transformData = transformData; + transformData = new TransformData(); } - else if (t == typeof(Vector2Variable)) + else if (variable.GetType() == typeof(Vector2Variable) && !vector2Data.Equals(new Vector2Data())) { - retval |= vector2Data.vector2Ref == variable; + anyVar.data.vector2Data = vector2Data; + vector2Data = new Vector2Data(); } - else if (t == typeof(Vector3Variable)) + else if (variable.GetType() == typeof(Vector3Variable) && !vector3Data.Equals(new Vector3Data())) { - retval |= vector3Data.vector3Ref == variable; + anyVar.data.vector3Data = vector3Data; + vector3Data = new Vector3Data(); } - return retval; - } - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); + //now converted to new AnyVar storage, remove the legacy. + variable = null; } - #endregion - - #region Editor caches -#if UNITY_EDITOR - protected override void RefreshVariableCache() - { - base.RefreshVariableCache(); - - var f = GetFlowchart(); - - f.DetermineSubstituteVariables(stringData.Value, referencedVariables); - } -#endif - #endregion Editor caches } } diff --git a/Assets/Fungus/Scripts/Commands/ThrowException.cs b/Assets/Fungus/Scripts/Commands/ThrowException.cs new file mode 100644 index 00000000..6d78b8e1 --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/ThrowException.cs @@ -0,0 +1,59 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [System.Serializable] + public class FungusException : System.Exception + { + public FungusException() + { + } + + public FungusException(string message) : base(message) + { + } + + public FungusException(string message, System.Exception inner) : base(message, inner) + { + } + + protected FungusException( + System.Runtime.Serialization.SerializationInfo info, + System.Runtime.Serialization.StreamingContext context) : base(info, context) { } + } + + /// + /// Throw a Fungus.Exception + /// + [CommandInfo("Scripting", + "Throw Exception", + "Throw a fungus exception")] + [AddComponentMenu("")] + public class ThrowException : Command + { + [SerializeField] + protected StringData message; + + public override void OnEnter() + { + throw new FungusException(GetLocationIdentifier() + " " + message.Value); + +#pragma warning disable CS0162 // Unreachable code detected + Continue(); +#pragma warning restore CS0162 // Unreachable code detected + } + + public override string GetSummary() + { + return message.Value; + } + + public override bool HasReference(Variable variable) + { + return variable == message.stringRef || base.HasReference(variable); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/ThrowException.cs.meta b/Assets/Fungus/Scripts/Commands/ThrowException.cs.meta new file mode 100644 index 00000000..4fc1e5af --- /dev/null +++ b/Assets/Fungus/Scripts/Commands/ThrowException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d1a861c2b31cf8488fd9d576d533474 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs b/Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs deleted file mode 100644 index af4734c3..00000000 --- a/Assets/Fungus/Scripts/Commands/Transform/TransformProperty.cs +++ /dev/null @@ -1,220 +0,0 @@ -// This code is part of the Fungus library (https://github.com/snozbot/fungus) -// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) - -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Fungus -{ - // - /// Get or Set a property of a transform component - /// - [CommandInfo("Transform", - "Property", - "Get or Set a property of a transform component")] - [AddComponentMenu("")] - public class TransformProperty : Command - { - public enum GetSet - { - Get, - Set, - } - public GetSet getOrSet = GetSet.Get; - - public enum Property - { - ChildCount, - EulerAngles, - Forward, - HasChanged, - HierarchyCapacity, - HierarchyCount, - LocalEulerAngles, - LocalPosition, - LocalScale, - LossyScale, - Parent, - Position, - Right, - Root, - Up, - //no quat or mat4 yet - //LocalRotation, - //Rotation, - //LocalToWorldMatrix, - //WorldToLocalMatrix - } - [SerializeField] - protected Property property = Property.Position; - - [SerializeField] - protected TransformData transformData; - - [SerializeField] - [VariableProperty(typeof(BooleanVariable), - typeof(IntegerVariable), - typeof(Vector3Variable), - typeof(TransformVariable))] - protected Variable inOutVar; - - public override void OnEnter() - { - var iob = inOutVar as BooleanVariable; - var ioi = inOutVar as IntegerVariable; - var iov = inOutVar as Vector3Variable; - var iot = inOutVar as TransformVariable; - - var t = transformData.Value; - - switch (getOrSet) - { - case GetSet.Get: - switch (property) - { - case Property.ChildCount: - ioi.Value = t.childCount; - break; - case Property.EulerAngles: - iov.Value = t.eulerAngles; - break; - case Property.Forward: - iov.Value = t.forward; - break; - case Property.HasChanged: - iob.Value = t.hasChanged; - break; - case Property.HierarchyCapacity: - ioi.Value = t.hierarchyCapacity; - break; - case Property.HierarchyCount: - ioi.Value = t.hierarchyCount; - break; - case Property.LocalEulerAngles: - iov.Value = t.localEulerAngles; - break; - case Property.LocalPosition: - iov.Value = t.localPosition; - break; - case Property.LocalScale: - iov.Value = t.localScale; - break; - case Property.LossyScale: - iov.Value = t.lossyScale; - break; - case Property.Parent: - iot.Value = t.parent; - break; - case Property.Position: - iov.Value = t.position; - break; - case Property.Right: - iov.Value = t.right; - break; - case Property.Root: - iot.Value = t.parent; - break; - case Property.Up: - iov.Value = t.up; - break; - default: - break; - } - break; - case GetSet.Set: - switch (property) - { - case Property.ChildCount: - Debug.LogWarning("Cannot Set childCount, it is read only"); - break; - case Property.EulerAngles: - t.eulerAngles = iov.Value; - break; - case Property.Forward: - t.forward = iov.Value; - break; - case Property.HasChanged: - t.hasChanged = iob.Value; - break; - case Property.HierarchyCapacity: - t.hierarchyCapacity = ioi.Value; - break; - case Property.HierarchyCount: - Debug.LogWarning("Cannot Set HierarchyCount, it is read only"); - break; - case Property.LocalEulerAngles: - t.localEulerAngles = iov.Value; - break; - case Property.LocalPosition: - t.localPosition = iov.Value; - break; - case Property.LocalScale: - t.localScale = iov.Value; - break; - case Property.LossyScale: - Debug.LogWarning("Cannot Set LossyScale, it is read only"); - break; - case Property.Parent: - t.parent = iot.Value; - break; - case Property.Position: - t.position = iov.Value; - break; - case Property.Right: - t.right = iov.Value; - break; - case Property.Root: - Debug.LogWarning("Cannot Set Root, it is read only"); - break; - case Property.Up: - t.up = iov.Value; - break; - default: - break; - } - break; - default: - break; - } - - Continue(); - } - - public override string GetSummary() - { - if (transformData.Value == null) - { - return "Error: no transform set"; - } - - var iob = inOutVar as BooleanVariable; - var ioi = inOutVar as IntegerVariable; - var iov = inOutVar as Vector3Variable; - var iot = inOutVar as TransformVariable; - - if (iob == null && ioi == null && iov == null && iot == null) - { - return "Error: no variable set to push or pull data to or from"; - } - - //We could do further checks here, eg, you have selected childcount but set a vec3variable - - return getOrSet.ToString() + " " + property.ToString(); - } - - public override Color GetButtonColor() - { - return new Color32(235, 191, 217, 255); - } - - public override bool HasReference(Variable variable) - { - if (transformData.transformRef == variable || inOutVar == variable) - return true; - - return false; - } - - } -} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Commands/VariableCondition.cs b/Assets/Fungus/Scripts/Commands/VariableCondition.cs index cb9f481e..f99d784a 100644 --- a/Assets/Fungus/Scripts/Commands/VariableCondition.cs +++ b/Assets/Fungus/Scripts/Commands/VariableCondition.cs @@ -6,28 +6,64 @@ using System.Collections.Generic; namespace Fungus { - public abstract class VariableCondition : Condition + public abstract class VariableCondition : Condition, ISerializationCallbackReceiver { [Tooltip("The type of comparison to be performed")] [SerializeField] protected CompareOperator compareOperator; + [SerializeField] protected AnyVariableAndDataPair anyVar = new AnyVariableAndDataPair(); + + protected override bool EvaluateCondition() + { + if (anyVar.variable == null) + { + return false; + } + + bool condition = false; + anyVar.Compare(compareOperator, ref condition); + + return condition; + } + + protected override bool HasNeededProperties() + { + return (anyVar.variable != null); + } + + #region Public members + + /// + /// The type of comparison operation to be performed. + /// + public virtual CompareOperator CompareOperator { get { return compareOperator; } } + + public override string GetSummary() + { + if (anyVar.variable == null) + { + return "Error: No variable selected"; + } + + string summary = anyVar.variable.Key + " "; + summary += VariableUtil.GetCompareOperatorDescription(compareOperator) + " "; + summary += anyVar.GetDataDescription(); + + return summary; + } + + public override bool HasReference(Variable variable) + { + return anyVar.HasReference(variable); + } + + #endregion + + #region backwards compat + + [Tooltip("Variable to use in expression")] - [VariableProperty(typeof(BooleanVariable), - typeof(IntegerVariable), - typeof(FloatVariable), - typeof(StringVariable), - typeof(AnimatorVariable), - typeof(AudioSourceVariable), - typeof(ColorVariable), - typeof(GameObjectVariable), - typeof(MaterialVariable), - typeof(ObjectVariable), - typeof(Rigidbody2DVariable), - typeof(SpriteVariable), - typeof(TextureVariable), - typeof(TransformVariable), - typeof(Vector2Variable), - typeof(Vector3Variable))] + [VariableProperty(AllVariableTypes.VariableAny.Any)] [SerializeField] protected Variable variable; [Tooltip("Boolean value to compare against")] @@ -77,293 +113,107 @@ namespace Fungus [Tooltip("Vector3 value to compare against")] [SerializeField] protected Vector3Data vector3Data; - - protected override bool EvaluateCondition() - { - if (variable == null) - { - return false; - } - - bool condition = false; - - var t = variable.GetType(); - - if (t == typeof(BooleanVariable)) - { - BooleanVariable booleanVariable = (variable as BooleanVariable); - condition = booleanVariable.Evaluate(compareOperator, booleanData.Value); - } - else if (t == typeof(IntegerVariable)) - { - IntegerVariable integerVariable = (variable as IntegerVariable); - condition = integerVariable.Evaluate(compareOperator, integerData.Value); - } - else if (t == typeof(FloatVariable)) - { - FloatVariable floatVariable = (variable as FloatVariable); - condition = floatVariable.Evaluate(compareOperator, floatData.Value); - } - else if (t == typeof(StringVariable)) - { - StringVariable stringVariable = (variable as StringVariable); - condition = stringVariable.Evaluate(compareOperator, stringData.Value); - } - else if (t == typeof(AnimatorVariable)) - { - AnimatorVariable animatorVariable = (variable as AnimatorVariable); - condition = animatorVariable.Evaluate(compareOperator, animatorData.Value); - } - else if (t == typeof(AudioSourceVariable)) - { - AudioSourceVariable audioSourceVariable = (variable as AudioSourceVariable); - condition = audioSourceVariable.Evaluate(compareOperator, audioSourceData.Value); - } - else if (t == typeof(ColorVariable)) - { - ColorVariable colorVariable = (variable as ColorVariable); - condition = colorVariable.Evaluate(compareOperator, colorData.Value); - } - else if (t == typeof(GameObjectVariable)) - { - GameObjectVariable gameObjectVariable = (variable as GameObjectVariable); - condition = gameObjectVariable.Evaluate(compareOperator, gameObjectData.Value); - } - else if (t == typeof(MaterialVariable)) - { - MaterialVariable materialVariable = (variable as MaterialVariable); - condition = materialVariable.Evaluate(compareOperator, materialData.Value); - } - else if (t == typeof(ObjectVariable)) - { - ObjectVariable objectVariable = (variable as ObjectVariable); - condition = objectVariable.Evaluate(compareOperator, objectData.Value); - } - else if (t == typeof(Rigidbody2DVariable)) - { - Rigidbody2DVariable rigidbody2DVariable = (variable as Rigidbody2DVariable); - condition = rigidbody2DVariable.Evaluate(compareOperator, rigidbody2DData.Value); - } - else if (t == typeof(SpriteVariable)) - { - SpriteVariable spriteVariable = (variable as SpriteVariable); - condition = spriteVariable.Evaluate(compareOperator, spriteData.Value); - } - else if (t == typeof(TextureVariable)) - { - TextureVariable textureVariable = (variable as TextureVariable); - condition = textureVariable.Evaluate(compareOperator, textureData.Value); - } - else if (t == typeof(TransformVariable)) - { - TransformVariable transformVariable = (variable as TransformVariable); - condition = transformVariable.Evaluate(compareOperator, transformData.Value); - } - else if (t == typeof(Vector2Variable)) - { - Vector2Variable vector2Variable = (variable as Vector2Variable); - condition = vector2Variable.Evaluate(compareOperator, vector2Data.Value); - } - else if (t == typeof(Vector3Variable)) - { - Vector3Variable vector3Variable = (variable as Vector3Variable); - condition = vector3Variable.Evaluate(compareOperator, vector3Data.Value); - } - - return condition; - } - - protected override bool HasNeededProperties() + + void ISerializationCallbackReceiver.OnBeforeSerialize() { - return (variable != null); } - #region Public members - - public static readonly Dictionary operatorsByVariableType = new Dictionary() { - { typeof(BooleanVariable), BooleanVariable.compareOperators }, - { typeof(IntegerVariable), IntegerVariable.compareOperators }, - { typeof(FloatVariable), FloatVariable.compareOperators }, - { typeof(StringVariable), StringVariable.compareOperators }, - { typeof(AnimatorVariable), AnimatorVariable.compareOperators }, - { typeof(AudioSourceVariable), AudioSourceVariable.compareOperators }, - { typeof(ColorVariable), ColorVariable.compareOperators }, - { typeof(GameObjectVariable), GameObjectVariable.compareOperators }, - { typeof(MaterialVariable), MaterialVariable.compareOperators }, - { typeof(ObjectVariable), ObjectVariable.compareOperators }, - { typeof(Rigidbody2DVariable), Rigidbody2DVariable.compareOperators }, - { typeof(SpriteVariable), SpriteVariable.compareOperators }, - { typeof(TextureVariable), TextureVariable.compareOperators }, - { typeof(TransformVariable), TransformVariable.compareOperators }, - { typeof(Vector2Variable), Vector2Variable.compareOperators }, - { typeof(Vector3Variable), Vector3Variable.compareOperators } - }; - - /// - /// The type of comparison operation to be performed. - /// - public virtual CompareOperator _CompareOperator { get { return compareOperator; } } - - public override string GetSummary() + void ISerializationCallbackReceiver.OnAfterDeserialize() { if (variable == null) { - return "Error: No variable selected"; - } - - var t = variable.GetType(); - - string summary = variable.Key + " "; - summary += Condition.GetOperatorDescription(compareOperator) + " "; - - if (t == typeof(BooleanVariable)) - { - summary += booleanData.GetDescription(); - } - else if (t == typeof(IntegerVariable)) - { - summary += integerData.GetDescription(); - } - else if (t == typeof(FloatVariable)) - { - summary += floatData.GetDescription(); + return; } - else if (t == typeof(StringVariable)) + else { - summary += stringData.GetDescription(); + anyVar.variable = variable; } - else if (t == typeof(AnimatorVariable)) - { - summary += animatorData.GetDescription(); - } - else if (t == typeof(AudioSourceVariable)) - { - summary += audioSourceData.GetDescription(); - } - else if (t == typeof(ColorVariable)) - { - summary += colorData.GetDescription(); - } - else if (t == typeof(GameObjectVariable)) - { - summary += gameObjectData.GetDescription(); - } - else if (t == typeof(MaterialVariable)) - { - summary += materialData.GetDescription(); - } - else if (t == typeof(ObjectVariable)) - { - summary += objectData.GetDescription(); - } - else if (t == typeof(Rigidbody2DVariable)) - { - summary += rigidbody2DData.GetDescription(); - } - else if (t == typeof(SpriteVariable)) - { - summary += spriteData.GetDescription(); - } - else if (t == typeof(TextureVariable)) - { - summary += textureData.GetDescription(); - } - else if (t == typeof(TransformVariable)) - { - summary += transformData.GetDescription(); - } - else if (t == typeof(Vector2Variable)) - { - summary += vector2Data.GetDescription(); - } - else if (t == typeof(Vector3Variable)) - { - summary += vector3Data.GetDescription(); - } - - return summary; - } - public override bool HasReference(Variable variable) - { - bool retval = (variable == this.variable) || base.HasReference(variable); - - var t = variable.GetType(); - - //this is a nightmare - if (t == typeof(BooleanVariable)) + if (variable.GetType() == typeof(BooleanVariable) && !booleanData.Equals(new BooleanData())) { - retval |= booleanData.booleanRef == variable; + anyVar.data.booleanData = booleanData; + booleanData = new BooleanData(); } - else if (t == typeof(IntegerVariable)) + else if (variable.GetType() == typeof(IntegerVariable) && !integerData.Equals(new IntegerData())) { - retval |= integerData.integerRef == variable; + anyVar.data.integerData = integerData; + integerData = new IntegerData(); } - else if (t == typeof(FloatVariable)) + else if (variable.GetType() == typeof(FloatVariable) && !floatData.Equals(new FloatData())) { - retval |= floatData.floatRef == variable; + anyVar.data.floatData = floatData; + floatData = new FloatData(); } - else if (t == typeof(StringVariable)) + else if (variable.GetType() == typeof(StringVariable) && !stringData.Equals(new StringDataMulti())) { - retval |= stringData.stringRef == variable; + anyVar.data.stringData.stringRef = stringData.stringRef; + anyVar.data.stringData.stringVal = stringData.stringVal; + stringData = new StringDataMulti(); } - else if (t == typeof(AnimatorVariable)) + else if (variable.GetType() == typeof(AnimatorVariable) && !animatorData.Equals(new AnimatorData())) { - retval |= animatorData.animatorRef == variable; + anyVar.data.animatorData = animatorData; + animatorData = new AnimatorData(); } - else if (t == typeof(AudioSourceVariable)) + else if (variable.GetType() == typeof(AudioSourceVariable) && !audioSourceData.Equals(new AudioSourceData())) { - retval |= audioSourceData.audioSourceRef == variable; + anyVar.data.audioSourceData = audioSourceData; + audioSourceData = new AudioSourceData(); } - else if (t == typeof(ColorVariable)) + else if (variable.GetType() == typeof(ColorVariable) && !colorData.Equals(new ColorData())) { - retval |= colorData.colorRef == variable; + anyVar.data.colorData = colorData; + colorData = new ColorData(); } - else if (t == typeof(GameObjectVariable)) + else if (variable.GetType() == typeof(GameObjectVariable) && !gameObjectData.Equals(new GameObjectData())) { - retval |= gameObjectData.gameObjectRef == variable; + anyVar.data.gameObjectData = gameObjectData; + gameObjectData = new GameObjectData(); } - else if (t == typeof(MaterialVariable)) + else if (variable.GetType() == typeof(MaterialVariable) && !materialData.Equals(new MaterialData())) { - retval |= materialData.materialRef == variable; + anyVar.data.materialData = materialData; + materialData = new MaterialData(); } - else if (t == typeof(ObjectVariable)) + else if (variable.GetType() == typeof(ObjectVariable) && !objectData.Equals(new ObjectData())) { - retval |= objectData.objectRef == variable; + anyVar.data.objectData = objectData; + objectData = new ObjectData(); } - else if (t == typeof(Rigidbody2DVariable)) + else if (variable.GetType() == typeof(Rigidbody2DVariable) && !rigidbody2DData.Equals(new Rigidbody2DData())) { - retval |= rigidbody2DData.rigidbody2DRef == variable; + anyVar.data.rigidbody2DData = rigidbody2DData; + rigidbody2DData = new Rigidbody2DData(); } - else if (t == typeof(SpriteVariable)) + else if (variable.GetType() == typeof(SpriteVariable) && !spriteData.Equals(new SpriteData())) { - retval |= spriteData.spriteRef == variable; + anyVar.data.spriteData = spriteData; + spriteData = new SpriteData(); } - else if (t == typeof(TextureVariable)) + else if (variable.GetType() == typeof(TextureVariable) && !textureData.Equals(new TextureData())) { - retval |= textureData.textureRef == variable; + anyVar.data.textureData = textureData; + textureData = new TextureData(); } - else if (t == typeof(TransformVariable)) + else if (variable.GetType() == typeof(TransformVariable) && !transformData.Equals(new TransformData())) { - retval |= transformData.transformRef == variable; + anyVar.data.transformData = transformData; + transformData = new TransformData(); } - else if (t == typeof(Vector2Variable)) + else if (variable.GetType() == typeof(Vector2Variable) && !vector2Data.Equals(new Vector2Data())) { - retval |= vector2Data.vector2Ref == variable; + anyVar.data.vector2Data = vector2Data; + vector2Data = new Vector2Data(); } - else if (t == typeof(Vector3Variable)) + else if (variable.GetType() == typeof(Vector3Variable) && !vector3Data.Equals(new Vector3Data())) { - retval |= vector3Data.vector3Ref == variable; + anyVar.data.vector3Data = vector3Data; + vector3Data = new Vector3Data(); } - return retval; + //moved to new anyvar storage, clear legacy. + variable = null; } - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } - #endregion } } diff --git a/Assets/Fungus/Scripts/Commands/While.cs b/Assets/Fungus/Scripts/Commands/While.cs index e771c1cd..6f9c6130 100644 --- a/Assets/Fungus/Scripts/Commands/While.cs +++ b/Assets/Fungus/Scripts/Commands/While.cs @@ -16,50 +16,7 @@ namespace Fungus { #region Public members - public override void OnEnter() - { - bool execute = true; - if (variable != null) - { - execute = EvaluateCondition(); - } - - // Find next End statement at same indent level - End endCommand = null; - for (int i = CommandIndex + 1; i < ParentBlock.CommandList.Count; ++i) - { - End command = ParentBlock.CommandList[i] as End; - - if (command != null && - command.IndentLevel == indentLevel) - { - endCommand = command; - break; - } - } - - if (execute) - { - // Tell the following end command to loop back - endCommand.Loop = true; - Continue(); - } - else - { - // Continue at next command after End - Continue (endCommand.CommandIndex + 1); - } - } - - public override bool OpenBlock() - { - return true; - } - - public override Color GetButtonColor() - { - return new Color32(253, 253, 150, 255); - } + public override bool IsLooping { get { return true; } } #endregion } diff --git a/Assets/Fungus/Scripts/Components/Block.cs b/Assets/Fungus/Scripts/Components/Block.cs index 7ebaf94c..d38aa89a 100644 --- a/Assets/Fungus/Scripts/Components/Block.cs +++ b/Assets/Fungus/Scripts/Components/Block.cs @@ -55,6 +55,8 @@ namespace Fungus /// protected int previousActiveCommandIndex = -1; + public int PreviousActiveCommandIndex { get { return previousActiveCommandIndex; } } + protected int jumpToCommandIndex = -1; protected int executionCount; @@ -410,6 +412,17 @@ namespace Fungus return -1; } + public virtual Command GetPreviousActiveCommand() + { + if (previousActiveCommandIndex >= 0 && + previousActiveCommandIndex < commandList.Count) + { + return commandList[previousActiveCommandIndex]; + } + + return null; + } + /// /// Recalculate the indent levels for all commands in the list. /// diff --git a/Assets/Fungus/Scripts/Components/Variable.cs b/Assets/Fungus/Scripts/Components/Variable.cs index 98a3a60d..ce4ef763 100644 --- a/Assets/Fungus/Scripts/Components/Variable.cs +++ b/Assets/Fungus/Scripts/Components/Variable.cs @@ -2,7 +2,6 @@ // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) using UnityEngine; -using System; namespace Fungus { @@ -60,45 +59,55 @@ namespace Fungus /// /// Attribute class for variables. /// - public class VariableInfoAttribute : Attribute + public sealed class VariableInfoAttribute : System.Attribute { - public VariableInfoAttribute(string category, string variableType, int order = 0) + //Note do not use "isPreviewedOnly:true", it causes the script to fail to load without errors shown + public VariableInfoAttribute(string category, string variableType, int order = 0, bool isPreviewedOnly = false) { this.Category = category; this.VariableType = variableType; this.Order = order; + this.IsPreviewedOnly = isPreviewedOnly; } public string Category { get; set; } public string VariableType { get; set; } public int Order { get; set; } + public bool IsPreviewedOnly { get; set; } } /// /// Attribute class for variable properties. /// - public class VariablePropertyAttribute : PropertyAttribute + public sealed class VariablePropertyAttribute : PropertyAttribute { public VariablePropertyAttribute (params System.Type[] variableTypes) { this.VariableTypes = variableTypes; } + public VariablePropertyAttribute(AllVariableTypes.VariableAny any) + { + VariableTypes = AllVariableTypes.AllFungusVarTypes; + } + public VariablePropertyAttribute (string defaultText, params System.Type[] variableTypes) { this.defaultText = defaultText; this.VariableTypes = variableTypes; } - public String defaultText = ""; + public string defaultText = ""; + public string compatibleVariableName = string.Empty; - public Type[] VariableTypes { get; set; } + public System.Type[] VariableTypes { get; set; } } /// /// Abstract base class for variables. /// [RequireComponent(typeof(Flowchart))] + [System.Serializable] public abstract class Variable : MonoBehaviour { [SerializeField] protected VariableScope scope; @@ -122,12 +131,36 @@ namespace Fungus /// public abstract void OnReset(); + /// + /// Used by SetVariable, child classes required to declare and implement operators. + /// + /// + /// + public abstract void Apply(SetOperator setOperator, object value); + + /// + /// Used by Ifs, While, and the like. Child classes required to declare and implement comparisons. + /// + /// + /// + /// + public abstract bool Evaluate(CompareOperator compareOperator, object value); + + /// + /// Does the underlying type provide support for +-*/ + /// + public virtual bool IsArithmeticSupported(SetOperator setOperator) { return false; } + + /// + /// Does the underlying type provide support for < <= > >= + /// + public virtual bool IsComparisonSupported() { return false; } + /// /// Boxed or referenced value of type defined within inherited types. /// Not recommended for direct use, primarily intended for use in editor code. /// public abstract object GetValue(); - #endregion } @@ -198,7 +231,10 @@ namespace Fungus public override string ToString() { - return Value.ToString(); + if (Value != null) + return Value.ToString(); + else + return string.Empty; } protected virtual void Start() @@ -207,8 +243,80 @@ namespace Fungus startValue = Value; } - public virtual void Apply(SetOperator setOperator, T value) { - Debug.LogError("Variable doesn't have any operators."); + //Apply to get from base system.object to T + public override void Apply(SetOperator op, object value) + { + if(value is T) + { + Apply(op, (T)value); + } + else if(value is VariableBase) + { + var vbg = value as VariableBase; + Apply(op, vbg.Value); + } + else + { + Debug.LogError("Cannot do Apply on variable, as object type: " + value.GetType().Name + " is incompatible with " + typeof(T).Name); + } + } + + public virtual void Apply(SetOperator setOperator, T value) + { + switch (setOperator) + { + case SetOperator.Assign: + Value = value; + break; + default: + Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); + break; + } + } + + //Apply to get from base system.object to T + public override bool Evaluate(CompareOperator op, object value) + { + if (value is T) + { + return Evaluate(op, (T)value); + } + else if (value is VariableBase) + { + var vbg = value as VariableBase; + return Evaluate(op, vbg.Value); + } + else + { + Debug.LogError("Cannot do Evaluate on variable, as object type: " + value.GetType().Name + " is incompatible with " + typeof(T).Name); + } + + return false; + } + + public virtual bool Evaluate(CompareOperator compareOperator, T value) + { + bool condition = false; + + switch (compareOperator) + { + case CompareOperator.Equals: + condition = Value.Equals(value); + break; + case CompareOperator.NotEquals: + condition = !Value.Equals(value); + break; + default: + Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); + break; + } + + return condition; + } + + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return setOperator == SetOperator.Assign || base.IsArithmeticSupported(setOperator); } } } diff --git a/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs b/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs new file mode 100644 index 00000000..d1cc7591 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs @@ -0,0 +1,67 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEditor; +using UnityEngine; + +namespace Fungus.EditorUtils +{ + /// + /// Custom drawer for the AnyVaraibleAndDataPair, shows only the matching data for the targeted variable + /// scripts. + /// + [CustomPropertyDrawer(typeof(Fungus.AnyVariableAndDataPair))] + public class AnyVariableAndDataPairDrawer : PropertyDrawer + { + public Fungus.Flowchart lastFlowchart; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + position.height = EditorGUIUtility.singleLineHeight; + + var varProp = property.FindPropertyRelative("variable"); + + EditorGUI.PropertyField(position, varProp, label); + + position.y += EditorGUIUtility.singleLineHeight; + + if (varProp.objectReferenceValue != null) + { + var varPropType = varProp.objectReferenceValue.GetType(); + + var typeActionsRes = AnyVariableAndDataPair.typeActionLookup[varPropType]; + + if (typeActionsRes != null) + { + var targetName = "data." + typeActionsRes.DataPropName; + var dataProp = property.FindPropertyRelative(targetName); + if (dataProp != null) + { + EditorGUI.PropertyField(position, dataProp, new GUIContent("Data", "Data to use in pair with the above variable.")); + } + else + { + EditorGUI.LabelField(position, "Cound not find property in AnyVariableData of name " + targetName); + } + } + else + { + //no matching data type, oops + EditorGUI.LabelField(position, "Cound not find property in AnyVariableData of type " + varPropType.Name); + } + } + else + { + //no var selected + EditorGUI.LabelField(position, "Must select a variable before setting data."); + } + + property.serializedObject.ApplyModifiedProperties(); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return EditorGUIUtility.singleLineHeight * 2; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs.meta new file mode 100644 index 00000000..9cd14666 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/AnyVariableAndDataPairDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a3b2252ee10d3b45ad82e7e7dde5ccd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs b/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs new file mode 100644 index 00000000..91327dda --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs @@ -0,0 +1,58 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Fungus.EditorUtils +{ + /// + /// Fungus Variables are drawn via EditorGUI.Property by default, however, some types may require a custom replacement. + /// The most common example is a Quaternion, Unity does not show you a quaternion as 4 floats, it shows you + /// the euler angles, we also want to do that here + /// + /// This class is delegated to by editors to draw the actual variable property line. + /// + public static class CustomVariableDrawerLookup + { + //If you create new types that require custom singleline drawers, add them here + public static Dictionary> typeToDrawer = + new Dictionary>() + { + { + typeof(QuaternionVariable), + (rect, valueProp) => {valueProp.quaternionValue = UnityEngine.Quaternion.Euler(UnityEditor.EditorGUI.Vector3Field(rect, new UnityEngine.GUIContent(""), valueProp.quaternionValue.eulerAngles)); } + }, + { + typeof(Vector4Variable), + (rect, valueProp) => {valueProp.vector4Value = UnityEditor.EditorGUI.Vector4Field(rect, new UnityEngine.GUIContent(""), valueProp.vector4Value); } + }, + }; + + public static bool GetDrawer(System.Type type, out System.Action drawer) + { + return typeToDrawer.TryGetValue(type, out drawer); + } + + /// + /// Called by editors that want a single line variable property drawn + /// + /// + /// + /// + public static void DrawCustomOrPropertyField(System.Type type, Rect rect, SerializedProperty prop) + { + //delegate actual drawing to the variableInfo + var foundDrawer = typeToDrawer.TryGetValue(type, out System.Action drawer); + if (foundDrawer) + { + drawer(rect, prop); + } + else + { + EditorGUI.PropertyField(rect, prop, new GUIContent("")); + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs.meta b/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs.meta new file mode 100644 index 00000000..ad272a5d --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/CustomVariableDrawerLookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce09adfbce8ccde4db2fa5371897b2b0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/ExportReferenceDocs.cs b/Assets/Fungus/Scripts/Editor/ExportReferenceDocs.cs index 0e4eefc1..a7349be8 100644 --- a/Assets/Fungus/Scripts/Editor/ExportReferenceDocs.cs +++ b/Assets/Fungus/Scripts/Editor/ExportReferenceDocs.cs @@ -21,7 +21,7 @@ namespace Fungus.EditorUtils private const string BaseDocPath = "./Docs/"; [MenuItem("Tools/Fungus/Utilities/Export Reference Docs")] - internal static void Export() + public static void Export() { ExportCommandInfo(); ExportEventHandlerInfo(); @@ -178,7 +178,7 @@ This is the reference documentation for all Fungus event handlers. } [MenuItem("Tools/Fungus/Utilities/Convert Docs to GitHub MD")] - internal static void ConvertAllToGHMD() + public static void ConvertAllToGHMD() { var files = Directory.GetFiles(BaseDocPath, "*.md", SearchOption.AllDirectories); foreach (var file in files) diff --git a/Assets/Fungus/Scripts/Editor/FungusEditorResources.cs b/Assets/Fungus/Scripts/Editor/FungusEditorResources.cs index aeac8b4c..123c3853 100644 --- a/Assets/Fungus/Scripts/Editor/FungusEditorResources.cs +++ b/Assets/Fungus/Scripts/Editor/FungusEditorResources.cs @@ -15,7 +15,7 @@ using System.Reflection; namespace Fungus.EditorUtils { [CustomEditor(typeof(FungusEditorResources))] - internal class FungusEditorResourcesInspector : Editor + public class FungusEditorResourcesInspector : Editor { public override void OnInspectorGUI() { @@ -36,7 +36,7 @@ namespace Fungus.EditorUtils } // Handle reimporting all assets - internal class EditorResourcesPostProcessor : AssetPostprocessor + public class EditorResourcesPostProcessor : AssetPostprocessor { private static void OnPostprocessAllAssets(string[] importedAssets, string[] _, string[] __, string[] ___) { @@ -56,10 +56,10 @@ namespace Fungus.EditorUtils } } - internal partial class FungusEditorResources : ScriptableObject + public partial class FungusEditorResources : ScriptableObject { [Serializable] - internal class EditorTexture + public class EditorTexture { [SerializeField] private Texture2D free; [SerializeField] private Texture2D pro; @@ -81,7 +81,7 @@ namespace Fungus.EditorUtils private static readonly string PartialEditorResourcesPath = System.IO.Path.Combine("Fungus", "EditorResources"); [SerializeField] [HideInInspector] private bool updateOnReloadScripts = false; - internal static FungusEditorResources Instance + public static FungusEditorResources Instance { get { @@ -125,7 +125,7 @@ namespace Fungus.EditorUtils return string.Empty; } - internal static void GenerateResourcesScript() + public static void GenerateResourcesScript() { // Get all unique filenames var textureNames = new HashSet(); @@ -152,7 +152,7 @@ namespace Fungus.EditorUtils writer.WriteLine(""); writer.WriteLine("namespace Fungus.EditorUtils"); writer.WriteLine("{"); - writer.WriteLine(" internal partial class FungusEditorResources : ScriptableObject"); + writer.WriteLine(" public partial class FungusEditorResources : ScriptableObject"); writer.WriteLine(" {"); foreach (var name in textureNames) @@ -187,7 +187,7 @@ namespace Fungus.EditorUtils } } - internal static void UpdateTextureReferences(FungusEditorResources instance) + public static void UpdateTextureReferences(FungusEditorResources instance) { // Iterate through all fields in instance and set texture references var serializedObject = new SerializedObject(instance); diff --git a/Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs b/Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs index 6d1a60fd..6a45b22a 100644 --- a/Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs +++ b/Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs @@ -7,7 +7,7 @@ using UnityEngine; namespace Fungus.EditorUtils { - internal partial class FungusEditorResources : ScriptableObject + public partial class FungusEditorResources : ScriptableObject { [SerializeField] private EditorTexture add; [SerializeField] private EditorTexture add_small; diff --git a/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs b/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs new file mode 100644 index 00000000..28e4f521 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs @@ -0,0 +1,778 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEditor; +using UnityEngine; + +namespace Fungus.EditorUtils +{ + /// + /// Helper script that auto generates the required script for FungusVariables that wrap existing classes. + /// + /// Intended to speed up the creation of fungus wrappers of unity builtin types and custom user types. + /// + public class VariableScriptGenerator + { + public string NamespaceUsingDeclare { get; set; } + + public bool PreviewOnly { get; set; } + private string _category = "Other"; + public string Category { get { return _category; } set { _category = value; } } + + public List types { get; private set; } + + public bool generateVariableClass = true, + generatePropertyCommand = true, + generateVariableDataClass = true, + generateOnlyDeclaredMembers = true; + + public string ClassName { get { return TargetType.Name; } } + public string CamelCaseClassName { get { return Char.ToLowerInvariant(ClassName[0]) + ClassName.Substring(1); } } + + public string GenClassName { get { return ClassName + "Variable"; } } + + public string VariableFileName { get { return VaraibleScriptLocation + ClassName + "Variable.cs"; } } + public string VariableEditorFileName { get { return EditorScriptLocation + ClassName + "VariableDrawer.cs"; } } + public string PropertyFileName { get { return PropertyScriptLocation + ClassName + "Property.cs"; } } + + private Type _targetType; + + public Type TargetType + { + get + { + return _targetType; + } + set + { + _targetType = value; + ExistingGeneratedClass = null; + ExistingGeneratedDrawerClass = null; + ExistingGeneratedPropCommandClass = null; + + if (_targetType != null) + { + ExistingGeneratedClass = types.Find(x => x.Name == GenClassName); + ExistingGeneratedDrawerClass = types.Find(x => x.Name == (ClassName + "VariableDrawer")); + ExistingGeneratedPropCommandClass = types.Find(x => x.Name == (ClassName + "Property")); + if (ExistingGeneratedPropCommandClass != null) + { + var nested = ExistingGeneratedPropCommandClass.GetNestedTypes().ToList(); + ExistingGeneratedPropEnumClass = nested.Find(x => x.Name == "Property"); + } + } + } + } + + public Type ExistingGeneratedClass { get; private set; } + public Type ExistingGeneratedDrawerClass { get; private set; } + public Type ExistingGeneratedPropCommandClass { get; private set; } + public Type ExistingGeneratedPropEnumClass { get; private set; } + + private StringBuilder getBuilder, setBuilder;// = new StringBuilder("switch (property)\n{"); + private List enumBuilder = new List(); + + //data and helper for a single native to single fungus type + public class FungusVariableTypeHelper + { + private HashSet usedTypes = new HashSet(); + private List handlers = new List(); + + public class TypeHandler + { + public TypeHandler(Type native, Type fungusType, string localName, string nativeAsString = null, string fungusTypeAsString = null) + { + NativeType = native; + NativeTypeString = string.IsNullOrEmpty(nativeAsString) ? native.Name : nativeAsString; + FungusType = fungusType; + FungusTypeString = string.IsNullOrEmpty(fungusTypeAsString) ? fungusType.Name : fungusTypeAsString; + LocalVariableName = localName; + } + + public Type NativeType { get; set; } + public Type FungusType { get; set; } + public string NativeTypeString { get; set; } + public string FungusTypeString { get; set; } + public string LocalVariableName { get; set; } + + public string GetLocalVariableNameWithDeclaration() + { + return "var " + LocalVariableName + " = inOutVar as " + FungusTypeString + ';'; + } + + public string GetVarPropText() + { + return "typeof(" + FungusTypeString + ")"; + } + } + + public void AddHandler(TypeHandler t) + { + if (handlers.Find(x => x.NativeType == t.NativeType || x.LocalVariableName == t.LocalVariableName) != null) + { + Debug.LogError("AddHandler rejected due to duplicate native field or local variable name"); + return; + } + + handlers.Add(t); + } + + public bool IsTypeHandled(Type t) + { + return handlers.Find(x => x.NativeType == t) != null; + } + + public string GetSpecificVariableVarientFromType(Type t) + { + usedTypes.Add(t); + + var loc = handlers.Find(x => x.NativeType == t); + if (loc != null) + { + return loc.LocalVariableName; + } + else + { + return "ERROR - Unsupprted type requested"; + } + } + + public string GetUsedTypeVars() + { + StringBuilder sb = new StringBuilder(); + + foreach (Type t in usedTypes) + { + var loc = handlers.Find(x => x.NativeType == t); + if (loc != null) + { + sb.Append(" "); + sb.AppendLine(loc.GetLocalVariableNameWithDeclaration()); + } + } + + return sb.ToString(); + } + + public string GetVariablePropertyTypeOfs() + { + StringBuilder sb = new StringBuilder(); + + foreach (Type t in usedTypes) + { + var loc = handlers.Find(x => x.NativeType == t); + if (loc != null) + { + if (sb.Length > 0) + { + sb.AppendLine(","); + sb.Append(" "); + } + sb.Append(loc.GetVarPropText()); + } + } + + return sb.ToString(); + } + } + + private FungusVariableTypeHelper helper = new FungusVariableTypeHelper(); + + #region consts + + // need to also track if they are preview only + static public readonly string[] AllGeneratedVariableTypeClassNames = + { + "Animator", + "AudioSource", + //"Boolean", + "Color", + "Collection", + "Collider", + "Collider2D", + "Collision", + "Collision2D", + "ControllerColliderHit", + //"Float", + "GameObject", + //"Integer", + "Material", + "Matrix4x4", + //"Object", + "Quaternion", + "Rigidbody", + "Rigidbody2D", + "Sprite", + //"String", + "Texture", + "Transform", + "Vector2", + "Vector3", + "Vector4"}; + + private const string ScriptLocation = "./Assets/Fungus/Scripts/"; + private const string PropertyScriptLocation = ScriptLocation + "Commands/Property/"; + private const string VaraibleScriptLocation = ScriptLocation + "VariableTypes/"; + private const string EditorScriptLocation = ScriptLocation + "Editor/VariableTypes/"; + + private const string EditorDataDrawerScriptTemplate = @"// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEditor; +using UnityEngine; + +namespace Fungus.EditorUtils +{{ + [CustomPropertyDrawer(typeof({0}Data))] + public class {0}DataDrawer : VariableDataDrawer<{0}Variable> + {{ }} +}}"; + + //0 ClassName + //1 NamespaceOfClass + //2 lowerClassName + //3 Category + //4 previewOnly + //5 full name + + private const string VariableAndDataScriptTemplate = @"// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; +{1} + +namespace Fungus +{{ + /// + /// {0} variable type. + /// + [VariableInfo(""{3}"", ""{0}""{4})] + [AddComponentMenu("""")] + [System.Serializable] + public class {0}Variable : VariableBase<{5}> + {{ }} + + /// + /// Container for a {0} variable reference or constant value. + /// + [System.Serializable] + public struct {0}Data + {{ + [SerializeField] + [VariableProperty("""", typeof({0}Variable))] + public {0}Variable {2}Ref; + + [SerializeField] + public {5} {2}Val; + + public static implicit operator {5}({0}Data {0}Data) + {{ + return {0}Data.Value; + }} + + public {0}Data({5} v) + {{ + {2}Val = v; + {2}Ref = null; + }} + + public {5} Value + {{ + get {{ return ({2}Ref == null) ? {2}Val : {2}Ref.Value; }} + set {{ if ({2}Ref == null) {{ {2}Val = value; }} else {{ {2}Ref.Value = value; }} }} + }} + + public string GetDescription() + {{ + if ({2}Ref == null) + {{ + return {2}Val.ToString(); + }} + else + {{ + return {2}Ref.Key; + }} + }} + }} +}}"; + + //0 ClassName + //1 NamespaceOfClass + //2 lowerClassName + //3 Category + //4 previewOnly + //5 full name + + private const string VariableOnlyScriptTemplate = @"// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; +{1} + +namespace Fungus +{{ + /// + /// {0} variable type. + /// + [VariableInfo(""{3}"", ""{0}""{4})] + [AddComponentMenu("""")] + [System.Serializable] + public class {0}Variable : VariableBase<{5}> + {{ }} +}}"; + + //0 typeo + //1 prop enum + //2 lower class name + //3 get generated + //4 set generated + //5 used vars + //6 variableProperty Type of + //7 null check summary + private const string DataBasedPropertyScriptTemplate = @"// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + +namespace Fungus +{{ + // + /// Get or Set a property of a {0} component + /// + [CommandInfo(""Property"", + ""{0}"", + ""Get or Set a property of a {0} component"")] + [AddComponentMenu("""")] + public class {0}Property : BaseVariableProperty + {{ + //generated property + {1} + + [SerializeField] + protected Property property; + + [SerializeField] + protected {0}Data {2}Data; + + [SerializeField] + [VariableProperty({6})] + protected Variable inOutVar; + + public override void OnEnter() + {{ +{5} + + var target = {2}Data.Value; + + switch (getOrSet) + {{ + case GetSet.Get: + {3} + break; + + case GetSet.Set: + {4} + break; + + default: + break; + }} + + Continue(); + }} + + public override string GetSummary() + {{{7} + if (inOutVar == null) + {{ + return ""Error: no variable set to push or pull data to or from""; + }} + + return getOrSet.ToString() + "" "" + property.ToString(); + }} + + public override Color GetButtonColor() + {{ + return new Color32(235, 191, 217, 255); + }} + + public override bool HasReference(Variable variable) + {{ + if ({2}Data.{2}Ref == variable || inOutVar == variable) + return true; + + return false; + }} + }} +}}"; + + //0 typeo + //1 prop enum + //2 lower class name + //3 get generated + //4 set generated + //5 used vars + //6 variableProperty Type of + //7 null check summary + private const string VariableOnlyPropertyScriptTemplate = @"// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ +using UnityEngine; + +namespace Fungus +{{ + // + /// Get or Set a property of a {0} component + /// + [CommandInfo(""Property"", + ""{0}"", + ""Get or Set a property of a {0} component"")] + [AddComponentMenu("""")] + public class {0}Property : BaseVariableProperty + {{ + //generated property + {1} + + [SerializeField] + protected Property property; + + [SerializeField] + [VariableProperty(typeof({0}Variable))] + protected {0}Variable {2}Var; + + [SerializeField] + [VariableProperty({6})] + protected Variable inOutVar; + + public override void OnEnter() + {{ +{5} + + var target = {2}Var.Value; + + switch (getOrSet) + {{ + case GetSet.Get: + {3} + break; + + case GetSet.Set: + {4} + break; + + default: + break; + }} + + Continue(); + }} + + public override string GetSummary() + {{{7} + if (inOutVar == null) + {{ + return ""Error: no variable set to push or pull data to or from""; + }} + + return getOrSet.ToString() + "" "" + property.ToString(); + }} + + public override Color GetButtonColor() + {{ + return new Color32(235, 191, 217, 255); + }} + + public override bool HasReference(Variable variable) + {{ + if ({2}Var == variable || inOutVar == variable) + return true; + + return false; + }} + }} +}}"; + + private const string DefaultCaseFailure = @" default: + Debug.Log(""Unsupported get or set attempted""); + break; + }"; + + private const string DataNullCheckSummary = @" + if ({0}Data.Value == null) + {{ + return ""Error: no {0} set""; + }}"; + + private const string VariableOnlyNullCheckSummary = @" + if ({0}Var == null) + {{ + return ""Error: no {0}Var set""; + }}"; + + #endregion consts + + public VariableScriptGenerator() + { + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Animator), typeof(AnimatorVariable), "ioani")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(AudioSource), typeof(AudioSourceVariable), "ioaud")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(bool), typeof(BooleanVariable), "iob")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Collider2D), typeof(Collider2DVariable), "ioc2d")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Collider), typeof(ColliderVariable), "ioc")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Collection), typeof(CollectionVariable), "iocollect")); + //we don't need to do collision varaibles + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Color), typeof(ColorVariable), "iocol")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(float), typeof(FloatVariable), "iof")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(GameObject), typeof(GameObjectVariable), "iogo")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(int), typeof(IntegerVariable), "ioi")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Material), typeof(MaterialVariable), "iomat")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Matrix4x4), typeof(Matrix4x4Variable), "iom4")); + //we skip object + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Quaternion), typeof(QuaternionVariable), "ioq")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Rigidbody2D), typeof(Rigidbody2DVariable), "iorb2d")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Rigidbody), typeof(RigidbodyVariable), "iorb")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Sprite), typeof(SpriteVariable), "iospr")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(string), typeof(StringVariable), "ios")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Texture), typeof(TextureVariable), "iotex")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Transform), typeof(TransformVariable), "iot")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Vector2), typeof(Vector2Variable), "iov2")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Vector3), typeof(Vector3Variable), "iov")); + helper.AddHandler(new FungusVariableTypeHelper.TypeHandler(typeof(Vector4), typeof(Vector4Variable), "iov4")); + + types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).ToList(); + } + + public void Generate() + { + if (TargetType == null) + throw new Exception("No type given"); + + EditorUtility.DisplayProgressBar("Generating " + ClassName, "Starting", 0); + try + { + if (generateVariableClass) + { + Func lam = () => + { + var usingDec = !string.IsNullOrEmpty(NamespaceUsingDeclare) ? ("using " + NamespaceUsingDeclare + ";") : string.Empty; + return string.Format(generateVariableDataClass ? VariableAndDataScriptTemplate : VariableOnlyScriptTemplate, + ClassName, usingDec, CamelCaseClassName, Category, PreviewOnly ? ", IsPreviewedOnly = true" : "", TargetType.FullName); + }; + FileSaveHelper("Variable", VaraibleScriptLocation, VariableFileName, lam); + } + + if (generateVariableClass && generateVariableDataClass) + { + Func lam = () => { return string.Format(EditorDataDrawerScriptTemplate, ClassName); }; + FileSaveHelper("VariableDrawer", EditorScriptLocation, VariableEditorFileName, lam); + } + + if (generatePropertyCommand) + { + GeneratePropertyCommand(); + } + } + catch (Exception e) + { + Debug.LogError(e.Message); + } + + EditorUtility.ClearProgressBar(); + } + + private void GeneratePropertyCommand() + { + enumBuilder.Add("public enum Property \n { \n"); + getBuilder = new StringBuilder("switch (property)\n {\n".Replace("\n", System.Environment.NewLine)); + setBuilder = new StringBuilder("switch (property)\n {\n".Replace("\n", System.Environment.NewLine)); + + AddAllExistingEnumNames(); + + EditorUtility.DisplayProgressBar("Generating " + ClassName, "Property", 0); + int numAdded = PropertyFieldLogic(); + numAdded += PropertyPropLogic(); + + EditorUtility.DisplayProgressBar("Generating " + ClassName, "Property Building", 0); + + //finalise buidlers + setBuilder.AppendLine(DefaultCaseFailure); + var setcontents = setBuilder.ToString(); + + getBuilder.AppendLine(DefaultCaseFailure); + var getcontents = getBuilder.ToString(); + + enumBuilder.Add(" }\n"); + var enumgen = String.Join(null, enumBuilder.ToArray()); + enumgen = enumgen.Replace("\n", System.Environment.NewLine); + + var typeVars = helper.GetUsedTypeVars(); + var variablePropertyTypes = helper.GetVariablePropertyTypeOfs(); + + string nullCheck = ""; + + if (TargetType.IsClass) + { + nullCheck = string.Format(generateVariableDataClass ? DataNullCheckSummary : VariableOnlyNullCheckSummary, CamelCaseClassName); + } + + //write to file + Func propContentOp = () => + { + return string.Format(generateVariableDataClass ? DataBasedPropertyScriptTemplate : VariableOnlyPropertyScriptTemplate, +ClassName, enumgen, CamelCaseClassName, getcontents, setcontents, typeVars, variablePropertyTypes, nullCheck); + }; + + //only generate the file if we actually found variables to get and or set + if (numAdded > 0) + { + FileSaveHelper("Property", PropertyScriptLocation, PropertyFileName, propContentOp); + } + else + { + Debug.LogWarning("Attempted to generate property class for " + ClassName + " but found no variables to get or set"); + } + } + + private void AddAllExistingEnumNames() + { + if (ExistingGeneratedPropEnumClass != null) + { + if (ExistingGeneratedPropEnumClass.IsEnum) + { + var res = Enum.GetNames(ExistingGeneratedPropEnumClass); + for (int i = 0; i < res.Length; i++) + { + AddToEnum(res[i]); + } + } + } + } + + private System.Reflection.BindingFlags GetBindingFlags() + { + if (generateOnlyDeclaredMembers) + return System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly; + return System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance; + } + + private int PropertyFieldLogic() + { + int retval = 0; + + EditorUtility.DisplayProgressBar("Generating " + ClassName, "Property Scanning Fields", 0); + var fields = TargetType.GetFields(GetBindingFlags()); + for (int i = 0; i < fields.Length; i++) + { + if (helper.IsTypeHandled(fields[i].FieldType)) + { + var actualName = fields[i].Name; + var upperCaseName = Char.ToUpperInvariant(actualName[0]) + actualName.Substring(1); + //add it to the enum + AddToEnum(upperCaseName); + + //add it to the get + AddToGet(fields[i].FieldType, upperCaseName, actualName); + + //add it to the set + AddToSet(fields[i].FieldType, upperCaseName, actualName); + retval++; + } + } + + return retval; + } + + private int PropertyPropLogic() + { + int retval = 0; + + EditorUtility.DisplayProgressBar("Generating " + ClassName, "Property Scanning Props", 0); + var props = TargetType.GetProperties(GetBindingFlags()); + for (int i = 0; i < props.Length; i++) + { + if (helper.IsTypeHandled(props[i].PropertyType) && props[i].GetIndexParameters().Length == 0 && !IsObsolete(props[i].GetCustomAttributes(false))) + { + var actualName = props[i].Name; + var upperCaseName = Char.ToUpperInvariant(actualName[0]) + actualName.Substring(1); + //add it to the enum + AddToEnum(upperCaseName); + + if (props[i].CanRead) + { + //add it to the get + AddToGet(props[i].PropertyType, upperCaseName, actualName); + } + if (props[i].CanWrite) + { + //add it to the set + AddToSet(props[i].PropertyType, upperCaseName, actualName); + } + + if (props[i].CanRead || props[i].CanWrite) + retval++; + } + } + + return retval; + } + + private void AddToSet(Type fieldType, string nameEnum, string nameVariable) + { + setBuilder.Append(" case Property."); + setBuilder.Append(nameEnum); + setBuilder.AppendLine(":"); + setBuilder.Append(" target."); + setBuilder.Append(nameVariable); + setBuilder.Append(" = "); + setBuilder.Append(helper.GetSpecificVariableVarientFromType(fieldType)); + setBuilder.AppendLine(".Value;"); + setBuilder.AppendLine(" break;"); + } + + private void AddToGet(Type fieldType, string nameEnum, string nameVariable) + { + getBuilder.Append(" case Property."); + getBuilder.Append(nameEnum); + getBuilder.AppendLine(":"); + getBuilder.Append(" " + helper.GetSpecificVariableVarientFromType(fieldType)); + getBuilder.Append(".Value = target."); + getBuilder.Append(nameVariable); + getBuilder.AppendLine(";"); + getBuilder.AppendLine(" break;"); + } + + private void AddToEnum(string name) + { + if (enumBuilder.IndexOf(name) == -1) + { + enumBuilder.Add(" "); + enumBuilder.Add(name); + enumBuilder.Add(", \n"); + } + } + + private bool IsObsolete(object[] attrs) + { + if (attrs.Length > 0) + return attrs.FirstOrDefault(x => x.GetType() == typeof(ObsoleteAttribute)) != null; + return false; + } + + private void FileSaveHelper(string op, string loc, string filename, Func opLambda) + { + EditorUtility.DisplayProgressBar("Generating " + ClassName, op, 0); + var scriptContents = opLambda(); + System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(loc)); + System.IO.File.WriteAllText(filename, scriptContents); + Debug.Log("Created " + filename); + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs.meta b/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs.meta new file mode 100644 index 00000000..26c2653d --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/GenerateVariableHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1e036e4e5a3dbd4fa3533a2c7ea0d0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs b/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs new file mode 100644 index 00000000..90c1fcf9 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + + +namespace Fungus.EditorUtils +{ + /// + /// Adds window that generates the require scripts to create a new FungusVariable that wraps an existing type. + /// + /// These can then be used in the fungus flowcharts. It also generates a *Property command to allow Gets and Sets + /// on all the elements of that variable that Fungus Understands. The Quaternion and Matrix4x4 have been auto + /// generated and then auto formatted in visual studio and set to preview only as examples of it's use. + /// + /// It can be used to help building variable wrappers for builtin Unity types or your own components or classes. + /// + /// To add new types see the VariableScriptGenerator constructor. + /// + public class GenerateVariableWindow : EditorWindow + { + private VariableScriptGenerator generator = new VariableScriptGenerator(); + private string userInputClassName = ""; + private List typeList = new List(); + + public void OnGUI() + { + DrawMenuPanel(); + } + + private void DrawMenuPanel() + { + EditorGUI.BeginChangeCheck(); + + if(GUILayout.Button("Generate All from List")) + { + foreach (var item in VariableScriptGenerator.AllGeneratedVariableTypeClassNames) + { + generator.TargetType = generator.types.Where(x => string.Compare(x.Name, item, StringComparison.InvariantCultureIgnoreCase) == 0).First(); + generator.Generate(); + + generator = new VariableScriptGenerator(); + } + } + + userInputClassName = EditorGUILayout.TextField("ClassName", userInputClassName); + + if (EditorGUI.EndChangeCheck()) + { + generator.TargetType = null; + + try + { + typeList = generator.types.Where(x => string.Compare(x.Name,userInputClassName,StringComparison.InvariantCultureIgnoreCase) == 0).ToList(); + } + catch (Exception) + { + } + } + + try + { + int index = typeList.IndexOf(generator.TargetType); + EditorGUI.BeginChangeCheck(); + index = GUILayout.SelectionGrid(index, typeList.Select(x => x.FullName).ToArray(), 1); + + if (index < 0 || index > typeList.Count) + index = 0; + + if (EditorGUI.EndChangeCheck() || generator.TargetType == null) + generator.TargetType = typeList[index]; + } + catch (Exception) + { + generator.TargetType = null; + } + + + EditorGUILayout.Space(); + + if (generator.TargetType == null) + { + EditorGUILayout.HelpBox("Must select a type first", MessageType.Info); + } + else + { + generator.generateVariableClass = EditorGUILayout.Toggle("Generate Variable", generator.generateVariableClass); + generator.generateVariableDataClass = EditorGUILayout.Toggle("Generate Variable Data", generator.generateVariableDataClass); + generator.PreviewOnly = EditorGUILayout.Toggle("Variable List preview only", generator.PreviewOnly); + + if (generator.TargetType.IsAbstract) + { + EditorGUILayout.HelpBox(generator.TargetType.FullName + " is abstract. No Variable will be generated", MessageType.Error); + generator.generateVariableClass = false; + } + + if (generator.generateVariableClass) + { + if (generator.ExistingGeneratedClass != null) + { + EditorGUILayout.HelpBox("Variable Appears to already exist. Overwriting or errors may occur.", MessageType.Warning); + } + if (generator.ExistingGeneratedDrawerClass != null) + { + EditorGUILayout.HelpBox("Variable Drawer Appears to already exist. Overwriting or errors may occur.", MessageType.Warning); + } + + generator.Category = EditorGUILayout.TextField("Category", generator.Category); + generator.NamespaceUsingDeclare = EditorGUILayout.TextField("NamespaceUsingDeclare", generator.NamespaceUsingDeclare); + } + + EditorGUILayout.Space(); + generator.generatePropertyCommand = EditorGUILayout.Toggle("Generate Property Command", generator.generatePropertyCommand); + if (generator.generatePropertyCommand) + { + generator.generateOnlyDeclaredMembers = EditorGUILayout.Toggle("Only declared members", generator.generateOnlyDeclaredMembers); + if (generator.ExistingGeneratedPropCommandClass != null) + { + EditorGUILayout.HelpBox("Property Appears to already exist. Overwriting or errors may occur.", MessageType.Warning); + } + } + + EditorGUILayout.Space(); + if (GUILayout.Button("Generate Now")) + { + try + { + generator.Generate(); + EditorUtility.DisplayProgressBar("Generating " + userInputClassName, "Importing Scripts", 0); + AssetDatabase.Refresh(); + } + catch (Exception e) + { + Debug.LogWarning(e.Message); + //throw e; + } + generator = new VariableScriptGenerator(); + EditorUtility.ClearProgressBar(); + userInputClassName = ""; + } + } + } + + [MenuItem("Tools/Fungus/Utilities/Generate Fungus Varaible")] + public static GenerateVariableWindow ShowWindow() + { + var w = GetWindow(typeof(GenerateVariableWindow), true, "Generate Fungus Varaible", true); + w.Show(); + return w as GenerateVariableWindow; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs.meta b/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs.meta new file mode 100644 index 00000000..0bcc3095 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/GenerateVariableWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84f560447a3d4ce40ae5cd87d061d043 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/SetVariableEditor.cs b/Assets/Fungus/Scripts/Editor/SetVariableEditor.cs index d0d6d276..9c895ee5 100644 --- a/Assets/Fungus/Scripts/Editor/SetVariableEditor.cs +++ b/Assets/Fungus/Scripts/Editor/SetVariableEditor.cs @@ -11,51 +11,15 @@ namespace Fungus.EditorUtils [CustomEditor (typeof(SetVariable))] public class SetVariableEditor : CommandEditor { - protected struct VariablePropertyInfo - { - public string name; - public SerializedProperty dataProp; - - public VariablePropertyInfo(string name, SerializedProperty dataProp) { - this.name = name; - this.dataProp = dataProp; - } - } - - protected SerializedProperty variableProp; + protected SerializedProperty anyVarProp; protected SerializedProperty setOperatorProp; - - // Variable data props - protected Dictionary propertyInfoByVariableType; - - protected List variableDataProps; - + public override void OnEnable() { base.OnEnable(); - variableProp = serializedObject.FindProperty("variable"); + anyVarProp = serializedObject.FindProperty("anyVar"); setOperatorProp = serializedObject.FindProperty("setOperator"); - - // Get variable data props by name - propertyInfoByVariableType = new Dictionary() { - { typeof(BooleanVariable), new VariablePropertyInfo("Boolean", serializedObject.FindProperty("booleanData")) }, - { typeof(IntegerVariable), new VariablePropertyInfo("Integer", serializedObject.FindProperty("integerData")) }, - { typeof(FloatVariable), new VariablePropertyInfo("Float", serializedObject.FindProperty("floatData")) }, - { typeof(StringVariable), new VariablePropertyInfo("String", serializedObject.FindProperty("stringData")) }, - { typeof(AnimatorVariable), new VariablePropertyInfo("Animator", serializedObject.FindProperty("animatorData")) }, - { typeof(AudioSourceVariable), new VariablePropertyInfo("AudioSource", serializedObject.FindProperty("audioSourceData")) }, - { typeof(ColorVariable), new VariablePropertyInfo("Color", serializedObject.FindProperty("colorData")) }, - { typeof(GameObjectVariable), new VariablePropertyInfo("GameObject", serializedObject.FindProperty("gameObjectData")) }, - { typeof(MaterialVariable), new VariablePropertyInfo("Material", serializedObject.FindProperty("materialData")) }, - { typeof(ObjectVariable), new VariablePropertyInfo("Object", serializedObject.FindProperty("objectData")) }, - { typeof(Rigidbody2DVariable), new VariablePropertyInfo("Rigidbody2D", serializedObject.FindProperty("rigidbody2DData")) }, - { typeof(SpriteVariable), new VariablePropertyInfo("Sprite", serializedObject.FindProperty("spriteData")) }, - { typeof(TextureVariable), new VariablePropertyInfo("Texture", serializedObject.FindProperty("textureData")) }, - { typeof(TransformVariable), new VariablePropertyInfo("Transform", serializedObject.FindProperty("transformData")) }, - { typeof(Vector2Variable), new VariablePropertyInfo("Vector2", serializedObject.FindProperty("vector2Data")) }, - { typeof(Vector3Variable), new VariablePropertyInfo("Vector3", serializedObject.FindProperty("vector3Data")) } - }; } public override void DrawCommandGUI() @@ -71,53 +35,36 @@ namespace Fungus.EditorUtils } // Select Variable - EditorGUILayout.PropertyField(variableProp); + EditorGUILayout.PropertyField(anyVarProp, true); - if (variableProp.objectReferenceValue == null) - { - serializedObject.ApplyModifiedProperties(); - return; - } + //fetching every draw to ensure we don't have stale data based on types that have changed by user selection, + // without us noticing. // Get selected variable - Variable selectedVariable = variableProp.objectReferenceValue as Variable; - System.Type variableType = selectedVariable.GetType(); - - // Get operators for the variable - SetOperator[] setOperators = SetVariable.operatorsByVariableType[variableType]; - - // Create operator list + Variable selectedVariable = anyVarProp.FindPropertyRelative("variable").objectReferenceValue as Variable; List operatorsList = new List(); - foreach (var setOperator in setOperators) + if (selectedVariable != null) { - switch (setOperator) - { - case SetOperator.Assign: - operatorsList.Add(new GUIContent("=")); - break; - case SetOperator.Negate: - operatorsList.Add(new GUIContent("=!")); - break; - case SetOperator.Add: - operatorsList.Add(new GUIContent("+=")); - break; - case SetOperator.Subtract: - operatorsList.Add(new GUIContent("-=")); - break; - case SetOperator.Multiply: - operatorsList.Add(new GUIContent("*=")); - break; - case SetOperator.Divide: - operatorsList.Add(new GUIContent("\\=")); - break; - default: - Debug.LogError("The " + setOperator.ToString() + " operator has no matching GUIContent."); - break; - } + if(selectedVariable.IsArithmeticSupported(SetOperator.Assign)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Assign))); + if (selectedVariable.IsArithmeticSupported(SetOperator.Negate)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Negate))); + if (selectedVariable.IsArithmeticSupported(SetOperator.Add)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Add))); + if (selectedVariable.IsArithmeticSupported(SetOperator.Subtract)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Subtract))); + if (selectedVariable.IsArithmeticSupported(SetOperator.Multiply)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Multiply))); + if (selectedVariable.IsArithmeticSupported(SetOperator.Divide)) + operatorsList.Add(new GUIContent(VariableUtil.GetSetOperatorDescription(SetOperator.Divide))); + } + else + { + operatorsList.Add(VariableConditionEditor.None); } // Get previously selected operator - int selectedIndex = System.Array.IndexOf(setOperators, t._SetOperator); + int selectedIndex = (int) t._SetOperator; if (selectedIndex < 0) { // Default to first index if the operator is not found in the available operators list @@ -128,13 +75,10 @@ namespace Fungus.EditorUtils // Get next selected operator selectedIndex = EditorGUILayout.Popup(new GUIContent("Operation", "Arithmetic operator to use"), selectedIndex, operatorsList.ToArray()); - - setOperatorProp.enumValueIndex = (int)setOperators[selectedIndex]; - - - VariablePropertyInfo propertyInfo = propertyInfoByVariableType[variableType]; - EditorGUILayout.PropertyField(propertyInfo.dataProp, new GUIContent(propertyInfo.name)); - + if (selectedVariable != null) + { + setOperatorProp.enumValueIndex = selectedIndex; + } serializedObject.ApplyModifiedProperties(); } diff --git a/Assets/Fungus/Scripts/Editor/VariableConditionEditor.cs b/Assets/Fungus/Scripts/Editor/VariableConditionEditor.cs index 4f9106a2..4b2b7e92 100644 --- a/Assets/Fungus/Scripts/Editor/VariableConditionEditor.cs +++ b/Assets/Fungus/Scripts/Editor/VariableConditionEditor.cs @@ -10,8 +10,31 @@ namespace Fungus.EditorUtils [CustomEditor (typeof(VariableCondition), true)] public class VariableConditionEditor : CommandEditor { - protected SerializedProperty variableProp; + public static readonly GUIContent None = new GUIContent(""); + + public static readonly GUIContent[] emptyList = new GUIContent[] + { + None, + }; + + static readonly GUIContent[] compareListAll = new GUIContent[] + { + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.Equals)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.NotEquals)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.LessThan)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.GreaterThan)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.LessThanOrEquals)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.GreaterThanOrEquals)), + }; + + static readonly GUIContent[] compareListEqualOnly = new GUIContent[] + { + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.Equals)), + new GUIContent(VariableUtil.GetCompareOperatorDescription(CompareOperator.NotEquals)), + }; + protected SerializedProperty compareOperatorProp; + protected SerializedProperty anyVarProp; protected Dictionary propByVariableType; @@ -19,28 +42,8 @@ namespace Fungus.EditorUtils { base.OnEnable(); - variableProp = serializedObject.FindProperty("variable"); compareOperatorProp = serializedObject.FindProperty("compareOperator"); - - // Get variable data props by name - propByVariableType = new Dictionary() { - { typeof(BooleanVariable), serializedObject.FindProperty("booleanData") }, - { typeof(IntegerVariable), serializedObject.FindProperty("integerData") }, - { typeof(FloatVariable), serializedObject.FindProperty("floatData") }, - { typeof(StringVariable), serializedObject.FindProperty("stringData") }, - { typeof(AnimatorVariable), serializedObject.FindProperty("animatorData") }, - { typeof(AudioSourceVariable), serializedObject.FindProperty("audioSourceData") }, - { typeof(ColorVariable), serializedObject.FindProperty("colorData") }, - { typeof(GameObjectVariable), serializedObject.FindProperty("gameObjectData") }, - { typeof(MaterialVariable), serializedObject.FindProperty("materialData") }, - { typeof(ObjectVariable), serializedObject.FindProperty("objectData") }, - { typeof(Rigidbody2DVariable), serializedObject.FindProperty("rigidbody2DData") }, - { typeof(SpriteVariable), serializedObject.FindProperty("spriteData") }, - { typeof(TextureVariable), serializedObject.FindProperty("textureData") }, - { typeof(TransformVariable), serializedObject.FindProperty("transformData") }, - { typeof(Vector2Variable), serializedObject.FindProperty("vector2Data") }, - { typeof(Vector3Variable), serializedObject.FindProperty("vector3Data") } - }; + anyVarProp = serializedObject.FindProperty("anyVar"); } public override void DrawCommandGUI() @@ -55,54 +58,18 @@ namespace Fungus.EditorUtils return; } - // Select Variable - EditorGUILayout.PropertyField(variableProp); - - if (variableProp.objectReferenceValue == null) - { - serializedObject.ApplyModifiedProperties(); - return; - } + EditorGUILayout.PropertyField(anyVarProp, true); // Get selected variable - Variable selectedVariable = variableProp.objectReferenceValue as Variable; - System.Type variableType = selectedVariable.GetType(); - - // Get operators for the variable - CompareOperator[] compareOperators = VariableCondition.operatorsByVariableType[variableType]; - - // Create operator list - List operatorsList = new List(); - foreach (var compareOperator in compareOperators) + Variable selectedVariable = anyVarProp.FindPropertyRelative("variable").objectReferenceValue as Variable; + GUIContent[] operatorsList = emptyList; + if (selectedVariable != null) { - switch (compareOperator) - { - case CompareOperator.Equals: - operatorsList.Add(new GUIContent("==")); - break; - case CompareOperator.NotEquals: - operatorsList.Add(new GUIContent("!=")); - break; - case CompareOperator.LessThan: - operatorsList.Add(new GUIContent("<")); - break; - case CompareOperator.GreaterThan: - operatorsList.Add(new GUIContent(">")); - break; - case CompareOperator.LessThanOrEquals: - operatorsList.Add(new GUIContent("<=")); - break; - case CompareOperator.GreaterThanOrEquals: - operatorsList.Add(new GUIContent(">=")); - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " operator has no matching GUIContent."); - break; - } + operatorsList = selectedVariable.IsComparisonSupported() ? compareListAll : compareListEqualOnly; } - + // Get previously selected operator - int selectedIndex = System.Array.IndexOf(compareOperators, t._CompareOperator); + int selectedIndex = (int)t.CompareOperator; if (selectedIndex < 0) { // Default to first index if the operator is not found in the available operators list @@ -113,11 +80,13 @@ namespace Fungus.EditorUtils selectedIndex = EditorGUILayout.Popup( new GUIContent("Compare", "The comparison operator to use when comparing values"), selectedIndex, - operatorsList.ToArray()); + operatorsList); - compareOperatorProp.enumValueIndex = (int)compareOperators[selectedIndex]; + if (selectedVariable != null) + { + compareOperatorProp.enumValueIndex = selectedIndex; + } - EditorGUILayout.PropertyField(propByVariableType[variableType]); serializedObject.ApplyModifiedProperties(); } diff --git a/Assets/Fungus/Scripts/Editor/VariableEditor.cs b/Assets/Fungus/Scripts/Editor/VariableEditor.cs index 65afd1a1..53a91745 100644 --- a/Assets/Fungus/Scripts/Editor/VariableEditor.cs +++ b/Assets/Fungus/Scripts/Editor/VariableEditor.cs @@ -156,7 +156,15 @@ namespace Fungus.EditorUtils if (variableProperty.VariableTypes.Length == 0) { - return true; + var compatChecker = property.serializedObject.targetObject as ICollectionCompatible; + if (compatChecker != null) + { + return compatChecker.IsVarCompatibleWithCollection(v, variableProperty.compatibleVariableName); + } + else + { + return true; + } } return variableProperty.VariableTypes.Contains(v.GetType()); @@ -213,19 +221,20 @@ namespace Fungus.EditorUtils var origLabel = new GUIContent(label); - if (EditorGUI.GetPropertyHeight(valueProp, label) > EditorGUIUtility.singleLineHeight) + if (EditorGUI.GetPropertyHeight(valueProp, label) <= EditorGUIUtility.singleLineHeight) { - DrawMultiLineProperty(position, origLabel, referenceProp, valueProp, flowchart); + DrawSingleLineProperty(position, origLabel, referenceProp, valueProp, flowchart, typeInfo); } else { - DrawSingleLineProperty(position, origLabel, referenceProp, valueProp, flowchart); + DrawMultiLineProperty(position, origLabel, referenceProp, valueProp, flowchart, typeInfo); } EditorGUI.EndProperty(); } - protected virtual void DrawSingleLineProperty(Rect rect, GUIContent label, SerializedProperty referenceProp, SerializedProperty valueProp, Flowchart flowchart) + protected virtual void DrawSingleLineProperty(Rect rect, GUIContent label, SerializedProperty referenceProp, SerializedProperty valueProp, Flowchart flowchart, + VariableInfoAttribute typeInfo) { const int popupWidth = 17; @@ -236,7 +245,7 @@ namespace Fungus.EditorUtils if (referenceProp.objectReferenceValue == null) { - EditorGUI.PropertyField(valueRect, valueProp, new GUIContent("")); + DrawValueProperty(valueRect, valueProp, typeInfo); popupRect.x += valueRect.width + 5; popupRect.width = popupWidth; } @@ -244,7 +253,8 @@ namespace Fungus.EditorUtils EditorGUI.PropertyField(popupRect, referenceProp, new GUIContent("")); } - protected virtual void DrawMultiLineProperty(Rect rect, GUIContent label, SerializedProperty referenceProp, SerializedProperty valueProp, Flowchart flowchart) + protected virtual void DrawMultiLineProperty(Rect rect, GUIContent label, SerializedProperty referenceProp, SerializedProperty valueProp, Flowchart flowchart, + VariableInfoAttribute typeInfo) { const int popupWidth = 100; @@ -255,7 +265,7 @@ namespace Fungus.EditorUtils if (referenceProp.objectReferenceValue == null) { - EditorGUI.PropertyField(valueRect, valueProp, label); + DrawValueProperty(valueRect, valueProp, typeInfo); popupRect.x = rect.width - popupWidth + 5; popupRect.width = popupWidth; } @@ -267,6 +277,11 @@ namespace Fungus.EditorUtils EditorGUI.PropertyField(popupRect, referenceProp, new GUIContent("")); } + protected virtual void DrawValueProperty(Rect valueRect, SerializedProperty valueProp, VariableInfoAttribute typeInfo) + { + CustomVariableDrawerLookup.DrawCustomOrPropertyField(typeof(T), valueRect, valueProp); + } + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { VariableInfoAttribute typeInfo = VariableEditor.GetVariableInfo(typeof(T)); @@ -309,52 +324,4 @@ namespace Fungus.EditorUtils [CustomPropertyDrawer (typeof(StringDataMulti))] public class StringDataMultiDrawer : VariableDataDrawer {} - - [CustomPropertyDrawer (typeof(ColorData))] - public class ColorDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(Vector2Data))] - public class Vector2DataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(Vector3Data))] - public class Vector3DataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(MaterialData))] - public class MaterialDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(TextureData))] - public class TextureDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(SpriteData))] - public class SpriteDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(GameObjectData))] - public class GameObjectDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(ObjectData))] - public class ObjectDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(AnimatorData))] - public class AnimatorDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(TransformData))] - public class TransformDataDrawer : VariableDataDrawer - {} - - [CustomPropertyDrawer (typeof(AudioSourceData))] - public class AudioSourceDrawer : VariableDataDrawer - { } - - [CustomPropertyDrawer(typeof(Rigidbody2DData))] - public class Rigidbody2DDataDrawer : VariableDataDrawer - { } } \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableListAdaptor.cs b/Assets/Fungus/Scripts/Editor/VariableListAdaptor.cs index ea738751..2d3aa91a 100644 --- a/Assets/Fungus/Scripts/Editor/VariableListAdaptor.cs +++ b/Assets/Fungus/Scripts/Editor/VariableListAdaptor.cs @@ -130,7 +130,7 @@ namespace Fungus.EditorUtils _arrayProperty.serializedObject.Update(); this.widthOfList = (w == 0 ? VariableListAdaptor.DefaultWidth : w) - ScrollSpacer; - + int width = widthOfList; int totalRatio = DefaultWidth; @@ -249,7 +249,7 @@ namespace Fungus.EditorUtils bool isGlobal = scopeProp.enumValueIndex == (int)VariableScope.Global; - + var prevEnabled = GUI.enabled; if (isGlobal && Application.isPlaying) { var res = FungusManager.Instance.GlobalVariables.GetVariable(keyProp.stringValue); @@ -258,18 +258,17 @@ namespace Fungus.EditorUtils SerializedObject globalValue = new SerializedObject(res); var globalValProp = globalValue.FindProperty("value"); - var prevEnabled = GUI.enabled; - GUI.enabled = false; - EditorGUI.PropertyField(itemRects[2], globalValProp, emptyGUIContent); - - GUI.enabled = prevEnabled; + GUI.enabled = false; + defaultProp = globalValProp; } } - else - { - EditorGUI.PropertyField(itemRects[2], defaultProp, emptyGUIContent); - } + + + //variable.DrawProperty(rects[2], defaultProp, variableInfo); + VariableDrawProperty(variable, itemRects[2], defaultProp, variableInfo); + + GUI.enabled = prevEnabled; scope = (VariableScope)EditorGUI.EnumPopup(itemRects[3], variable.Scope); @@ -279,6 +278,22 @@ namespace Fungus.EditorUtils GUI.backgroundColor = Color.white; } + + public static void VariableDrawProperty(Variable variable, Rect rect, SerializedProperty valueProp, VariableInfoAttribute info) + { + if (valueProp == null) + { + EditorGUI.LabelField(rect, "N/A"); + } + else if (info.IsPreviewedOnly) + { + EditorGUI.LabelField(rect, variable.ToString()); + } + else + { + CustomVariableDrawerLookup.DrawCustomOrPropertyField(variable.GetType(), rect, valueProp); + } + } private void DoRightClickMenu(int index) { diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes.meta b/Assets/Fungus/Scripts/Editor/VariableTypes.meta new file mode 100644 index 00000000..36ee9931 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a6d0205484d6934198d80e5c17c6534 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs new file mode 100644 index 00000000..35534d16 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(AnimatorData))] + public class AnimatorDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs.meta new file mode 100644 index 00000000..d36c9d66 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/AnimatorVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84539dbf98b813e4686cedce50f7b357 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs new file mode 100644 index 00000000..e6baced8 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(AudioSourceData))] + public class AudioSourceDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs.meta new file mode 100644 index 00000000..708d0d43 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/AudioSourceVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a4d200af6e624043a82349d0ddb1d00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs new file mode 100644 index 00000000..a79bf887 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(CollectionData))] + public class CollectionDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs.meta new file mode 100644 index 00000000..ba5f2c54 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/CollectionVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ca2523715ad793419e9bf458e118426 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs new file mode 100644 index 00000000..9b71d203 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Collider2DData))] + public class Collider2DDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs.meta new file mode 100644 index 00000000..b24337de --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Collider2DVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1002f1c3b8f44a7478aa6a62584e2130 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs new file mode 100644 index 00000000..1fa2cc43 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(ColliderData))] + public class ColliderDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs.meta new file mode 100644 index 00000000..743a406e --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/ColliderVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f5d815af71388044ac855fe4baf2941 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs new file mode 100644 index 00000000..b6f56471 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(ColorData))] + public class ColorDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs.meta new file mode 100644 index 00000000..e106118c --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/ColorVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a1e3fe915382ed4eafe8b3066786a0d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs new file mode 100644 index 00000000..3513d554 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(GameObjectData))] + public class GameObjectDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs.meta new file mode 100644 index 00000000..cab4b15e --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/GameObjectVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a88e8b6529542d94b985398246c6982c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs new file mode 100644 index 00000000..020dbaf7 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(MaterialData))] + public class MaterialDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs.meta new file mode 100644 index 00000000..ba7e5fb3 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/MaterialVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 705f2cf9d782c0b45a19981550262842 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs new file mode 100644 index 00000000..79d4f6c8 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Matrix4x4Data))] + public class Matrix4x4DataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs.meta new file mode 100644 index 00000000..553347a9 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Matrix4x4VariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15e98b43732d6564e87e13ccc2490b05 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs new file mode 100644 index 00000000..935cff4e --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(QuaternionData))] + public class QuaternionDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs.meta new file mode 100644 index 00000000..1261d92e --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/QuaternionVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4082ac7fed21c8f459d58bb3efda67fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs new file mode 100644 index 00000000..80391c42 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Rigidbody2DData))] + public class Rigidbody2DDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs.meta new file mode 100644 index 00000000..72d7514f --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Rigidbody2DVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20e657e82b90c1142bfdd22b835e62e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs new file mode 100644 index 00000000..ed65143e --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(RigidbodyData))] + public class RigidbodyDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs.meta new file mode 100644 index 00000000..488aed1d --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/RigidbodyVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f2345a171733574898d4670f1f7bd79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs new file mode 100644 index 00000000..0956e1a0 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(SpriteData))] + public class SpriteDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs.meta new file mode 100644 index 00000000..2094444b --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/SpriteVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f47d83bef7102e4b90dfc16aab634c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs new file mode 100644 index 00000000..537c1be3 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(TextureData))] + public class TextureDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs.meta new file mode 100644 index 00000000..94d3ee15 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/TextureVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e870d88e412ce9429a456459523b9ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs new file mode 100644 index 00000000..d115a689 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(TransformData))] + public class TransformDataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs.meta new file mode 100644 index 00000000..d99cdb79 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/TransformVariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dedf63e544976ef4b9cd0571ca926061 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs new file mode 100644 index 00000000..b9eaf6c0 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Vector2Data))] + public class Vector2DataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs.meta new file mode 100644 index 00000000..b12ebd66 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector2VariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f6273c292432b54084aefab14c9db23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs new file mode 100644 index 00000000..19242769 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Vector3Data))] + public class Vector3DataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs.meta new file mode 100644 index 00000000..689e9ab0 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector3VariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1a5da98543a7354d872bd85ea6467e9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs new file mode 100644 index 00000000..5ac33463 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs @@ -0,0 +1,13 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEditor; + +namespace Fungus.EditorUtils +{ + [CustomPropertyDrawer(typeof(Vector4Data))] + public class Vector4DataDrawer : VariableDataDrawer + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs.meta b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs.meta new file mode 100644 index 00000000..b9081d88 --- /dev/null +++ b/Assets/Fungus/Scripts/Editor/VariableTypes/Vector4VariableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05fb86e0e99c98945b8ce4bb5224e8e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/BasePhysicsEventHandler.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/BasePhysicsEventHandler.cs index 78e6ccc7..a4da5187 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/BasePhysicsEventHandler.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/BasePhysicsEventHandler.cs @@ -21,17 +21,9 @@ namespace Fungus Exit = 1 << 2, } - [Tooltip("Which of the 3d physics messages to we trigger on.")] + [Tooltip("Which of the physics messages do we trigger on.")] [SerializeField] [EnumFlag] protected PhysicsMessageType FireOn = PhysicsMessageType.Enter; - - protected void ProcessCollider(PhysicsMessageType from, string tagOnOther) - { - if ((from & FireOn) != 0) - { - ProcessTagFilter(tagOnOther); - } - } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/CharacterControllerCollide.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/CharacterControllerCollide.cs index 76dc50dd..9993fb20 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/CharacterControllerCollide.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/CharacterControllerCollide.cs @@ -16,10 +16,21 @@ namespace Fungus [AddComponentMenu("")] public class CharacterControllerCollide : TagFilteredEventHandler { + [Tooltip("Optional variable to store the ControllerColliderHit")] + [VariableProperty(typeof(ControllerColliderHitVariable))] + [SerializeField] protected ControllerColliderHitVariable colHitVar; private void OnControllerColliderHit(ControllerColliderHit hit) { - ProcessTagFilter(hit.gameObject.tag); + if (DoesPassFilter(hit.gameObject.tag)) + { + if (colHitVar != null) + { + colHitVar.Value = hit; + } + + ExecuteBlock(); + } } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision.cs index 804a3ad1..48f165c7 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision.cs @@ -16,19 +16,35 @@ namespace Fungus [AddComponentMenu("")] public class Collision : BasePhysicsEventHandler { + [Tooltip("Optional variable to store the collision object that is provided by Unity.")] + [VariableProperty(typeof(CollisionVariable))] + [SerializeField] protected CollisionVariable collisionVar; + private void OnCollisionEnter(UnityEngine.Collision collision) { - ProcessCollider(PhysicsMessageType.Enter, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Enter, collision); } private void OnCollisionStay(UnityEngine.Collision collision) { - ProcessCollider(PhysicsMessageType.Stay, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Stay, collision); } private void OnCollisionExit(UnityEngine.Collision collision) { - ProcessCollider(PhysicsMessageType.Exit, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Exit, collision); + } + + private void ProcessCollisionEvent(PhysicsMessageType from, UnityEngine.Collision collision) + { + if ((from & FireOn) != 0 && + DoesPassFilter(collision.collider.tag)) + { + if (collisionVar != null) + collisionVar.Value = collision; + + ExecuteBlock(); + } } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision2D.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision2D.cs index 332e10c8..10a31a96 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision2D.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Collision2D.cs @@ -15,19 +15,35 @@ namespace Fungus [AddComponentMenu("")] public class Collision2D : BasePhysicsEventHandler { + [Tooltip("Optional variable to store the collision object that is provided by Unity.")] + [VariableProperty(typeof(Collision2DVariable))] + [SerializeField] protected Collision2DVariable collisionVar; + private void OnCollisionEnter2D(UnityEngine.Collision2D collision) { - ProcessCollider(PhysicsMessageType.Enter, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Enter, collision); } private void OnCollisionStay2D(UnityEngine.Collision2D collision) { - ProcessCollider(PhysicsMessageType.Stay, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Stay, collision); } private void OnCollisionExit2D(UnityEngine.Collision2D collision) { - ProcessCollider(PhysicsMessageType.Exit, collision.collider.tag); + ProcessCollisionEvent(PhysicsMessageType.Exit, collision); + } + + private void ProcessCollisionEvent(PhysicsMessageType from, UnityEngine.Collision2D collision) + { + if ((from & FireOn) != 0 && + DoesPassFilter(collision.collider.tag)) + { + if (collisionVar != null) + collisionVar.Value = collision; + + ExecuteBlock(); + } } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Particle.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Particle.cs index d77c91db..25192fc5 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Particle.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Particle.cs @@ -30,11 +30,23 @@ namespace Fungus [EnumFlag] protected ParticleMessageFlags FireOn = ParticleMessageFlags.OnParticleCollision; + [Tooltip("Optional variable to store the gameobject that particle collided with.")] + [VariableProperty(typeof(GameObjectVariable))] + [SerializeField] protected GameObjectVariable GOcolliderVar; + private void OnParticleCollision(GameObject other) { if ((FireOn & ParticleMessageFlags.OnParticleCollision) != 0) { - ProcessTagFilter(other.tag); + if (DoesPassFilter(other.tag)) + { + if (GOcolliderVar != null) + { + GOcolliderVar.Value = other; + } + + ExecuteBlock(); + } } } diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/TagFilteredEventHandler.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/TagFilteredEventHandler.cs index 1ac09de7..3abfb9db 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/TagFilteredEventHandler.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/TagFilteredEventHandler.cs @@ -18,17 +18,15 @@ namespace Fungus protected void ProcessTagFilter(string tagOnOther) { - if (tagFilter.Length == 0) + if (DoesPassFilter(tagOnOther)) { ExecuteBlock(); } - else - { - if (System.Array.IndexOf(tagFilter, tagOnOther) != -1) - { - ExecuteBlock(); - } - } + } + + protected bool DoesPassFilter(string tagOnOther) + { + return tagFilter.Length == 0 || System.Array.IndexOf(tagFilter, tagOnOther) != -1; } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger.cs index 9e673456..ae0020b5 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger.cs @@ -15,19 +15,36 @@ namespace Fungus [AddComponentMenu("")] public class Trigger : BasePhysicsEventHandler { + [Tooltip("Optional variable to store the collider that caused the trigger to occur.")] + [VariableProperty(typeof(ColliderVariable))] + [SerializeField] protected ColliderVariable colliderVar; + private void OnTriggerEnter(Collider col) { - ProcessCollider(PhysicsMessageType.Enter, col.tag); + ProcessCollider(PhysicsMessageType.Enter, col); } private void OnTriggerStay(Collider col) { - ProcessCollider(PhysicsMessageType.Stay, col.tag); + ProcessCollider(PhysicsMessageType.Stay, col); } private void OnTriggerExit(Collider col) { - ProcessCollider(PhysicsMessageType.Exit, col.tag); + ProcessCollider(PhysicsMessageType.Exit, col); + } + + protected void ProcessCollider(PhysicsMessageType from, Collider other) + { + if ((from & FireOn) != 0 && DoesPassFilter(other.tag)) + { + if (colliderVar != null) + { + colliderVar.Value = other; + } + + ExecuteBlock(); + } } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger2D.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger2D.cs index 5f9b9280..5cad1e19 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger2D.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/Trigger2D.cs @@ -1,10 +1,12 @@ -using UnityEngine; -using UnityEngine.UI; +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; namespace Fungus { /// - /// The block will execute when a 2d physics trigger matching some basic conditions is met. + /// The block will execute when a 2d physics trigger matching some basic conditions is met. /// [EventHandlerInfo("MonoBehaviour", "Trigger2D", @@ -12,20 +14,36 @@ namespace Fungus [AddComponentMenu("")] public class Trigger2D : BasePhysicsEventHandler { + [Tooltip("Optional variable to store the collider that caused the trigger to occur.")] + [VariableProperty(typeof(Collider2DVariable))] + [SerializeField] protected Collider2DVariable colliderVar; + private void OnTriggerEnter2D(Collider2D col) { - ProcessCollider(PhysicsMessageType.Enter, col.tag); + ProcessCollider(PhysicsMessageType.Enter, col); } - + private void OnTriggerStay2D(Collider2D col) { - ProcessCollider(PhysicsMessageType.Stay, col.tag); + ProcessCollider(PhysicsMessageType.Stay, col); } private void OnTriggerExit2D(Collider2D col) { - ProcessCollider(PhysicsMessageType.Exit, col.tag); + ProcessCollider(PhysicsMessageType.Exit, col); } + protected void ProcessCollider(PhysicsMessageType from, Collider2D other) + { + if ((from & FireOn) != 0 && DoesPassFilter(other.tag)) + { + if (colliderVar != null) + { + colliderVar.Value = other; + } + + ExecuteBlock(); + } + } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/UpdateTick.cs b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/UpdateTick.cs index b958c00f..8e1864a7 100644 --- a/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/UpdateTick.cs +++ b/Assets/Fungus/Scripts/EventHandlers/MonoBehaviour/UpdateTick.cs @@ -1,5 +1,6 @@ -using System.Collections; -using System.Collections.Generic; +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + using UnityEngine; namespace Fungus @@ -13,7 +14,6 @@ namespace Fungus [AddComponentMenu("")] public class UpdateTick : EventHandler { - [System.Flags] public enum UpdateMessageFlags { @@ -29,7 +29,7 @@ namespace Fungus private void Update() { - if((FireOn & UpdateMessageFlags.Update) != 0) + if ((FireOn & UpdateMessageFlags.Update) != 0) { ExecuteBlock(); } @@ -51,4 +51,4 @@ namespace Fungus } } } -} +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs b/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs new file mode 100644 index 00000000..c9c0c3c5 --- /dev/null +++ b/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs @@ -0,0 +1,14 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + /// + /// Interface to allow the VariableEditor to check that a given fungus variable is compatibile with the object it resides + /// within, such as in the collection base command + /// + public interface ICollectionCompatible + { + bool IsVarCompatibleWithCollection(Fungus.Variable variableInQuestion, string compatibleWith); + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs.meta b/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs.meta new file mode 100644 index 00000000..54710ca7 --- /dev/null +++ b/Assets/Fungus/Scripts/Interfaces/ICollectionCompatible.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8162d81948debc44388945f059f14637 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs b/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs new file mode 100644 index 00000000..5d0875f5 --- /dev/null +++ b/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs @@ -0,0 +1,72 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + /// + /// Extension of IList for Fungus collections and support for associated commands. + /// + /// Built upon objects being passed in and returned as the base starting point. + /// The inherited classes may wish to provided typed access to underlying container, + /// this is what the Fungus.GenericCollection does. + /// + public interface IFungusCollection : System.Collections.IList + { + int Capacity { get; set; } + string Name { get; } + + void Add(IFungusCollection rhsCol); + + void AddUnique(object o); + + void AddUnique(IFungusCollection rhsCol); + + System.Type ContainedType(); + + bool ContainsAllOf(IFungusCollection rhsCol); + + bool ContainsAllOfOrdered(IFungusCollection rhsCol); + + bool ContainsAnyOf(IFungusCollection rhsCol); + + void CopyFrom(IFungusCollection rhsCol); + + void CopyFrom(System.Array array); + + void CopyFrom(System.Collections.IList list); + + void Exclusive(IFungusCollection rhsCol); + + object Get(int index); + + void Get(int index, ref Variable variable); + + void Intersection(IFungusCollection rhsCol); + + bool IsCollectionCompatible(object o); + + bool IsElementCompatible(object o); + + int LastIndexOf(object o); + + int Occurrences(object o); + + void RemoveAll(IFungusCollection rhsCol); + + void RemoveAll(object o); + + void Reserve(int count); + + void Resize(int count); + + void Reverse(); + + void Set(int index, object o); + + void Shuffle(); + + void Sort(); + + void Unique(); + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs.meta b/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs.meta new file mode 100644 index 00000000..5a5c3812 --- /dev/null +++ b/Assets/Fungus/Scripts/Interfaces/IFungusCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25858096aa47be24c92616be98863f8e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs b/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs new file mode 100644 index 00000000..d766a589 --- /dev/null +++ b/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs @@ -0,0 +1,311 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using System.Collections.Generic; + +namespace Fungus +{ + /// + /// Static cache of all fungus variable types, used by commands that are designed to work on + /// any and all variable types supported by Fungus. + /// + /// New types created need to be added to the list below and also to AnyVariableData and + /// AnyVaraibleAndDataPair + /// + public static class AllVariableTypes + { + public enum VariableAny + { + Any + } + + public static readonly System.Type[] AllFungusVarTypes = new System.Type[] + { + typeof(AnimatorVariable), + typeof(AudioSourceVariable), + typeof(BooleanVariable), + typeof(CollectionVariable), + typeof(Collider2DVariable), + typeof(ColliderVariable), + typeof(Collision2DVariable), + typeof(CollisionVariable), + typeof(ColorVariable), + typeof(ControllerColliderHitVariable), + typeof(FloatVariable), + typeof(GameObjectVariable), + typeof(IntegerVariable), + typeof(MaterialVariable), + typeof(Matrix4x4Variable), + typeof(ObjectVariable), + typeof(QuaternionVariable), + typeof(Rigidbody2DVariable), + typeof(RigidbodyVariable), + typeof(SpriteVariable), + typeof(StringVariable), + typeof(TextureVariable), + typeof(TransformVariable), + typeof(Vector2Variable), + typeof(Vector3Variable), + typeof(Vector4Variable), + }; + } + + /// + /// Collection of every Fungus VariableData type, used in commands that are designed to + /// support any and all types. Those command just have a AnyVariableData anyVar or + /// an AnyVaraibleAndDataPair anyVarDataPair to encapsulate the more unpleasant parts. + /// + /// New types created need to be added to the list below and also to AllVariableTypes and + /// AnyVaraibleAndDataPair + /// + [System.Serializable] + public partial struct AnyVariableData + { + public AnimatorData animatorData; + public AudioSourceData audioSourceData; + public BooleanData booleanData; + public CollectionData collectionData; + public Collider2DData collider2DData; + public ColliderData colliderData; + public ColorData colorData; + public FloatData floatData; + public GameObjectData gameObjectData; + public IntegerData integerData; + public MaterialData materialData; + public Matrix4x4Data matrix4x4Data; + public ObjectData objectData; + public QuaternionData quaternionData; + public Rigidbody2DData rigidbody2DData; + public RigidbodyData rigidbodyData; + public SpriteData spriteData; + public StringData stringData; + public TextureData textureData; + public TransformData transformData; + public Vector2Data vector2Data; + public Vector3Data vector3Data; + public Vector4Data vector4Data; + + public bool HasReference(Variable var) + { + return animatorData.animatorRef == var || + audioSourceData.audioSourceRef == var || + booleanData.booleanRef == var || + collectionData.collectionRef == var || + collider2DData.collider2DRef == var || + colliderData.colliderRef == var || + colorData.colorRef == var || + floatData.floatRef == var || + gameObjectData.gameObjectRef == var || + integerData.integerRef == var || + materialData.materialRef == var || + matrix4x4Data.matrix4x4Ref == var || + objectData.objectRef == var || + quaternionData.quaternionRef == var || + rigidbody2DData.rigidbody2DRef == var || + rigidbodyData.rigidbodyRef == var || + spriteData.spriteRef == var || + stringData.stringRef == var || + textureData.textureRef == var || + transformData.transformRef == var || + vector2Data.vector2Ref == var || + vector3Data.vector3Ref == var || + vector4Data.vector4Ref == var; + } + } + + /// + /// Pairing of an AnyVariableData and an variable reference. Internal lookup for + /// making the right kind of variable with the correct data in the AnyVariableData. + /// This is the primary mechanism for hiding the ugly need to match variable to + /// correct data type so we can perform comparisons and operations. + /// + /// New types created need to be added to the list below and also to AllVariableTypes and + /// AnyVariableData + /// + [System.Serializable] + public class AnyVariableAndDataPair + { + public class TypeActions + { + public TypeActions(string dataPropName, + System.Func comparer, + System.Func desccription, + System.Action set + ) + { + DataPropName = dataPropName; + CompareFunc = comparer; + DescFunc = desccription; + SetFunc = set; + } + + // used in AnyVaraibleAndDataPair Drawer to show the correct aspect of the AnyVariableData in the editor + public string DataPropName { get; set; } + + public System.Func CompareFunc; + public System.Func DescFunc; + public System.Action SetFunc; + } + + [VariableProperty(AllVariableTypes.VariableAny.Any)] + [UnityEngine.SerializeField] public Variable variable; + + [UnityEngine.SerializeField] public AnyVariableData data; + + //needs static lookup function table for getting a function or string based on the type + // all new variable types will need to be added here also to be supported + public static readonly Dictionary typeActionLookup = new Dictionary() + { + { typeof(AnimatorVariable), + new TypeActions( "animatorData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.animatorData.Value); }, + (anyVar) => anyVar.data.animatorData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.animatorData.Value)) }, + { typeof(AudioSourceVariable), + new TypeActions( "audioSourceData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.audioSourceData.Value); }, + (anyVar) => anyVar.data.audioSourceData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.audioSourceData.Value)) }, + { typeof(BooleanVariable), + new TypeActions( "booleanData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.booleanData.Value); }, + (anyVar) => anyVar.data.booleanData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.booleanData.Value)) }, + { typeof(CollectionVariable), + new TypeActions( "collectionData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.collectionData.Value); }, + (anyVar) => anyVar.data.collectionData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.collectionData.Value)) }, + { typeof(Collider2DVariable), + new TypeActions( "collider2DData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.collider2DData.Value); }, + (anyVar) => anyVar.data.collider2DData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.collider2DData.Value)) }, + { typeof(ColliderVariable), + new TypeActions( "colliderData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.colliderData.Value); }, + (anyVar) => anyVar.data.colliderData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.colliderData.Value)) }, + { typeof(ColorVariable), + new TypeActions( "colorData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.colorData.Value); }, + (anyVar) => anyVar.data.colorData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.colorData.Value)) }, + { typeof(FloatVariable), + new TypeActions( "floatData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.floatData.Value); }, + (anyVar) => anyVar.data.floatData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.floatData.Value)) }, + { typeof(GameObjectVariable), + new TypeActions( "gameObjectData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.gameObjectData.Value); }, + (anyVar) => anyVar.data.gameObjectData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.gameObjectData.Value)) }, + { typeof(IntegerVariable), + new TypeActions( "integerData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.integerData.Value); }, + (anyVar) => anyVar.data.integerData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.integerData.Value)) }, + { typeof(MaterialVariable), + new TypeActions( "materialData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.materialData.Value); }, + (anyVar) => anyVar.data.materialData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.materialData.Value)) }, + { typeof(Matrix4x4Variable), + new TypeActions( "matrix4x4Data", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.matrix4x4Data.Value); }, + (anyVar) => anyVar.data.matrix4x4Data.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.matrix4x4Data.Value)) }, + { typeof(ObjectVariable), + new TypeActions( "objectData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.objectData.Value); }, + (anyVar) => anyVar.data.objectData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.objectData.Value)) }, + { typeof(QuaternionVariable), + new TypeActions( "quaternionData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.quaternionData.Value); }, + (anyVar) => anyVar.data.quaternionData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.quaternionData.Value)) }, + { typeof(Rigidbody2DVariable), + new TypeActions( "rigidbody2DData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.rigidbody2DData.Value); }, + (anyVar) => anyVar.data.rigidbody2DData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.rigidbody2DData.Value)) }, + { typeof(RigidbodyVariable), + new TypeActions( "rigidbodyData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.rigidbodyData.Value); }, + (anyVar) => anyVar.data.rigidbodyData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.rigidbodyData.Value)) }, + { typeof(SpriteVariable), + new TypeActions( "spriteData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.spriteData.Value); }, + (anyVar) => anyVar.data.spriteData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.spriteData.Value)) }, + { typeof(StringVariable), + new TypeActions( "stringData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.stringData.Value); }, + (anyVar) => anyVar.data.stringData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.stringData.Value)) }, + { typeof(TextureVariable), + new TypeActions( "textureData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.textureData.Value); }, + (anyVar) => anyVar.data.textureData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.textureData.Value)) }, + { typeof(TransformVariable), + new TypeActions( "transformData", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.transformData.Value); }, + (anyVar) => anyVar.data.transformData.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.transformData.Value)) }, + { typeof(Vector2Variable), + new TypeActions( "vector2Data", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.vector2Data.Value); }, + (anyVar) => anyVar.data.vector2Data.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.vector2Data.Value)) }, + { typeof(Vector3Variable), + new TypeActions( "vector3Data", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.vector3Data.Value); }, + (anyVar) => anyVar.data.vector3Data.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.vector3Data.Value)) }, + { typeof(Vector4Variable), + new TypeActions( "vector4Data", + (anyVar, compareOperator) => {return anyVar.variable.Evaluate(compareOperator, anyVar.data.vector4Data.Value); }, + (anyVar) => anyVar.data.vector4Data.GetDescription(), + (anyVar, setOperator) => anyVar.variable.Apply(setOperator, anyVar.data.vector4Data.Value)) }, + }; + + public bool HasReference(Variable variable) + { + return variable == this.variable || data.HasReference(variable); + } + + public string GetDataDescription() + { + TypeActions ta = null; + if (typeActionLookup.TryGetValue(variable.GetType(), out ta)) + { + return ta.DescFunc(this); + } + return string.Empty; + } + + public bool Compare(CompareOperator compareOperator, ref bool compareResult) + { + TypeActions ta = null; + if (typeActionLookup.TryGetValue(variable.GetType(), out ta)) + { + compareResult = ta.CompareFunc(this, compareOperator); + return true; + } + return false; + } + + public void SetOp(SetOperator setOperator) + { + TypeActions ta = null; + if (typeActionLookup.TryGetValue(variable.GetType(), out ta)) + { + ta.SetFunc(this, setOperator); + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs.meta b/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs.meta new file mode 100644 index 00000000..c92845d8 --- /dev/null +++ b/Assets/Fungus/Scripts/Utils/AllVariableTypes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18d15dbcc71f440409f4ea358af6956f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Utils/VariableUtil.cs b/Assets/Fungus/Scripts/Utils/VariableUtil.cs new file mode 100644 index 00000000..7744905b --- /dev/null +++ b/Assets/Fungus/Scripts/Utils/VariableUtil.cs @@ -0,0 +1,76 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public static class VariableUtil + { + public static string GetCompareOperatorDescription(CompareOperator compareOperator) + { +#pragma warning disable CS0162 // Unreachable code detected + switch (compareOperator) + { + case CompareOperator.Equals: + return "=="; + break; + + case CompareOperator.NotEquals: + return "!="; + break; + + case CompareOperator.LessThan: + return "<"; + break; + + case CompareOperator.GreaterThan: + return ">"; + break; + + case CompareOperator.LessThanOrEquals: + return "<="; + break; + + case CompareOperator.GreaterThanOrEquals: + return ">="; + break; + } +#pragma warning restore CS0162 // Unreachable code detected + return string.Empty; + } + + public static string GetSetOperatorDescription(SetOperator setOperator) + { +#pragma warning disable CS0162 // Unreachable code detected + switch (setOperator) + { + default: + case SetOperator.Assign: + return "="; + break; + + case SetOperator.Negate: + return "=!"; + break; + + case SetOperator.Add: + return "+="; + break; + + case SetOperator.Subtract: + return "-="; + break; + + case SetOperator.Multiply: + return "*="; + break; + + case SetOperator.Divide: + return "/="; + break; + } + + return string.Empty; +#pragma warning restore CS0162 // Unreachable code detected + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/Utils/VariableUtil.cs.meta b/Assets/Fungus/Scripts/Utils/VariableUtil.cs.meta new file mode 100644 index 00000000..5a2006aa --- /dev/null +++ b/Assets/Fungus/Scripts/Utils/VariableUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d27b5f388ed141c45bdb75a917febcc5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/AnimatorVariable.cs b/Assets/Fungus/Scripts/VariableTypes/AnimatorVariable.cs index 59a5bf84..e5797722 100644 --- a/Assets/Fungus/Scripts/VariableTypes/AnimatorVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/AnimatorVariable.cs @@ -13,41 +13,6 @@ namespace Fungus [System.Serializable] public class AnimatorVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Animator value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Animator value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -84,7 +49,7 @@ namespace Fungus { if (animatorRef == null) { - return animatorVal.ToString(); + return animatorVal != null ? animatorVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/AudioSourceVariable.cs b/Assets/Fungus/Scripts/VariableTypes/AudioSourceVariable.cs index bf2fcad0..37d44fc9 100644 --- a/Assets/Fungus/Scripts/VariableTypes/AudioSourceVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/AudioSourceVariable.cs @@ -13,41 +13,6 @@ namespace Fungus [System.Serializable] public class AudioSourceVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, AudioSource value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, AudioSource value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -84,7 +49,7 @@ namespace Fungus { if (audioSourceRef == null) { - return audioSourceVal.ToString(); + return audioSourceVal != null ? audioSourceVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs b/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs new file mode 100644 index 00000000..2f47ea9f --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs @@ -0,0 +1,19 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine; + +namespace Fungus +{ + [AddComponentMenu("")] + public abstract class BaseVariableProperty : Command + { + public enum GetSet + { + Get, + Set, + } + + public GetSet getOrSet = GetSet.Get; + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs.meta b/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs.meta new file mode 100644 index 00000000..d9b5ef93 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/BaseVariableProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c0b81b77632f7cd4a9925ab4d07618c1 +timeCreated: 1513473561 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/BooleanVariable.cs b/Assets/Fungus/Scripts/VariableTypes/BooleanVariable.cs index 1f3155a7..1e495cf1 100644 --- a/Assets/Fungus/Scripts/VariableTypes/BooleanVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/BooleanVariable.cs @@ -13,45 +13,21 @@ namespace Fungus [System.Serializable] public class BooleanVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign, SetOperator.Negate }; - - public virtual bool Evaluate(CompareOperator compareOperator, bool booleanValue) + public override bool IsArithmeticSupported(SetOperator setOperator) { - bool condition = false; - - bool lhs = Value; - bool rhs = booleanValue; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = lhs == rhs; - break; - case CompareOperator.NotEquals: - condition = lhs != rhs; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; + return setOperator == SetOperator.Negate || base.IsArithmeticSupported(setOperator); } - public override void Apply(SetOperator setOperator, bool value) + public override void Apply(SetOperator op, bool value) { - switch (setOperator) + switch (op) { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Negate: - Value = !value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; + case SetOperator.Negate: + Value = !value; + break; + default: + base.Apply(op, value); + break; } } } diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection.meta b/Assets/Fungus/Scripts/VariableTypes/Collection.meta new file mode 100644 index 00000000..059b2843 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9efe8d23cd8ac9046a6e2b9f63ce780b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs new file mode 100644 index 00000000..f3692dc4 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs @@ -0,0 +1,100 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using System; +using System.Collections; +using UnityEngine; + +namespace Fungus +{ + /// + /// Provides a common and complete MonoBehavior based reference point for FungusCollection. + /// Fungus.GenericCollection inherits from this. + /// + [AddComponentMenu("")] + [System.Serializable] + public abstract class Collection : MonoBehaviour, IFungusCollection + { + public abstract int Capacity { get; set; } + public abstract int Count { get; } + public bool IsFixedSize => false; + public bool IsReadOnly => false; + public bool IsSynchronized => false; + public object SyncRoot => null; + public string Name => name; + + public object this[int index] { get => Get(index); set => Set(index, value); } + + public abstract int Add(object o); + + public abstract void Add(IFungusCollection rhsCol); + + public abstract void AddUnique(object o); + + public abstract void AddUnique(IFungusCollection rhsCol); + + public abstract void Clear(); + + public abstract Type ContainedType(); + + public abstract bool Contains(object o); + + public abstract bool ContainsAllOf(IFungusCollection rhsCol); + + public abstract bool ContainsAllOfOrdered(IFungusCollection rhsCol); + + public abstract bool ContainsAnyOf(IFungusCollection rhsCol); + + public abstract void CopyFrom(IFungusCollection rhsCol); + + public abstract void CopyFrom(System.Array array); + + public abstract void CopyFrom(System.Collections.IList list); + + public abstract void CopyTo(Array array, int index); + + public abstract void Exclusive(IFungusCollection rhsCol); + + public abstract object Get(int index); + + public abstract void Get(int index, ref Variable variable); + + public abstract IEnumerator GetEnumerator(); + + public abstract int IndexOf(object o); + + public abstract void Insert(int index, object o); + + public abstract void Intersection(IFungusCollection rhsCol); + + public abstract bool IsCollectionCompatible(object o); + + public abstract bool IsElementCompatible(object o); + + public abstract int LastIndexOf(object o); + + public abstract int Occurrences(object o); + + public abstract void Remove(object o); + + public abstract void RemoveAll(IFungusCollection rhsCol); + + public abstract void RemoveAll(object o); + + public abstract void RemoveAt(int index); + + public abstract void Reserve(int count); + + public abstract void Resize(int count); + + public abstract void Reverse(); + + public abstract void Set(int index, object o); + + public abstract void Shuffle(); + + public abstract void Sort(); + + public abstract void Unique(); + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs.meta new file mode 100644 index 00000000..0813a2cb --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/Collection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a442c00dcdac2f74189524677670231b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs new file mode 100644 index 00000000..f0146669 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class Collider2DCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs.meta new file mode 100644 index 00000000..6e23f050 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/Collider2DCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 731383c3611a5ed44ab997feeb990cd6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs new file mode 100644 index 00000000..013860d8 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class ColliderCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs.meta new file mode 100644 index 00000000..bcfe0023 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/ColliderCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29b65a983faf39e4db7e25a77610319f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs new file mode 100644 index 00000000..3a3a9d38 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class FloatCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs.meta new file mode 100644 index 00000000..795909bd --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/FloatCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f48297b98c3c1414c8e94ebe45883bb1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs new file mode 100644 index 00000000..06b0a9f2 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class GameObjectCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs.meta new file mode 100644 index 00000000..074a1b4b --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/GameObjectCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 150bd15698fd79541ace6f07d5304837 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs new file mode 100644 index 00000000..dfec0c0e --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs @@ -0,0 +1,452 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using System; +using System.Collections; +using System.Linq; +using UnityEngine; + +namespace Fungus +{ + /// + /// The meat of the Fungus Collection. Internally uses a List of given type, simplest example + /// being IntCollection. Provides some type specific additions to the base Collection for + /// increasing speed and safety. + /// + /// Uses Promote methods to convert from objects or other collection or Fungus.Variable types + /// being passed in, will attempt to do compatability for you, such as if you give an + /// IntCollection an int or a Fungus.IntVariable, either works as the Promote is aware + /// of Fungus.VariableBase. Will also allow mixing some operations between + /// GenericCollection, T[], and List. + /// + /// + [AddComponentMenu("")] + public class GenericCollection : Collection + { + [SerializeField] + protected System.Collections.Generic.List collection = new System.Collections.Generic.List(); + + public override int Capacity + { + get + { + return collection.Capacity; + } + set + { + collection.Capacity = value; + } + } + + public override int Count => collection.Count; + + public override int Add(object o) + { + var t = Promote(o); + if (t != null) + { + return Add(t); + } + return -1; + } + + public int Add(T t) + { + return (collection as System.Collections.IList).Add(t); + } + + public override void Add(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + for (int i = 0; i < rhs.collection.Count; i++) + { + Add(rhs.collection[i]); + } + } + } + + public override void AddUnique(object o) + { + var t = Promote(o); + if (t != null) + { + if (!collection.Contains(t)) + { + collection.Add(t); + } + } + } + + public void AddUnique(T t) + { + if (!collection.Contains(t)) + { + Add(t); + } + } + + public override void AddUnique(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + for (int i = 0; i < rhs.collection.Count; i++) + { + AddUnique(rhs.collection[i]); + } + } + } + + public override void Clear() + { + collection.Clear(); + } + + public override System.Type ContainedType() + { + return typeof(T); + } + + public override bool Contains(object o) + { + var t = Promote(o); + if (t != null) + { + return collection.Contains(t); + } + return false; + } + + public override bool ContainsAllOf(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + for (int i = 0; i < rhs.collection.Count; i++) + { + if (!collection.Contains(rhs.collection[i])) + return false; + } + + return true; + } + + return false; + } + + public override bool ContainsAllOfOrdered(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + if (rhs.Count == Count) + { + for (int i = 0; i < rhs.collection.Count; i++) + { + if (!rhs.collection[i].Equals(collection[i])) + return false; + } + return true; + } + } + + return false; + } + + public override bool ContainsAnyOf(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + for (int i = 0; i < rhs.collection.Count; i++) + { + if (collection.Contains(rhs.collection[i])) + return true; + } + } + + return false; + } + + public override void CopyFrom(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + collection.Clear(); + collection.AddRange(rhs.collection); + } + } + + public override void CopyFrom(Array array) + { + foreach (var item in array) + { + Add(item); + } + } + + public override void CopyFrom(IList list) + { + foreach (var item in list) + { + Add(item); + } + } + + public override void CopyTo(System.Array array, int index) + { + (collection as System.Collections.IList).CopyTo(array, index); + } + + public override void Exclusive(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + //if its in both, remove, if its only in 1 keep + for (int i = 0; i < rhs.collection.Count; i++) + { + var item = rhs.collection[i]; + if (!collection.Remove(item)) + { + collection.Add(item); + } + } + } + } + + public override object Get(int index) + { + return collection[index]; + } + + public override void Get(int index, ref Variable variable) + { + if (variable is VariableBase) + { + VariableBase vt = variable as VariableBase; + vt.Value = collection[index]; + } + else + { + Debug.LogError("Collection cannot get variable " + variable.Key + ". Is not matching type:" + typeof(T).Name); + } + } + + public override System.Collections.IEnumerator GetEnumerator() + { + return collection.GetEnumerator(); + } + + public virtual T GetSafe(int index) + { + return collection[index]; + } + + public override int IndexOf(object o) + { + var t = Promote(o); + if (t != null) + { + return collection.IndexOf(t); + } + return -1; + } + + public override void Insert(int index, object o) + { + var t = Promote(o); + if (t != null) + { + collection.Insert(index, t); + } + } + + public override void Intersection(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + //only things that are in us and in rhs remain + for (int i = collection.Count - 1; i >= 0; i--) + { + if (!rhs.Contains(collection[i])) + { + collection.RemoveAt(i); + } + } + } + } + + public override bool IsCollectionCompatible(object o) + { + if (o is GenericCollection || o is System.Collections.Generic.IList) + return true; + + var ot = o.GetType(); + var ote = ot.GetElementType(); + var otgs = ot.GetGenericArguments(); + + //element type only works for arrays, need to use getgenerictype with ilist<>T + if (o is System.Array) + { + return ote is T || ote is Fungus.VariableBase; + } + else if (o is System.Collections.IList && otgs.Length > 0) + { + return otgs[0] == typeof(T) || otgs[0].IsSubclassOf(typeof(Fungus.VariableBase)); + } + else + { + return false; + } + } + + public override bool IsElementCompatible(object o) + { + return o is T || o is VariableBase; + } + + public override int LastIndexOf(object o) + { + var t = Promote(o); + if (t != null) + { + return collection.LastIndexOf(t); + } + return -1; + } + + public override int Occurrences(object o) + { + int retval = 0; + var t = Promote(o); + if (t != null) + { + for (int i = 0; i < collection.Count; i++) + { + if (collection[i].Equals(t)) + retval++; + } + } + return retval; + } + + public override void Remove(object o) + { + var t = Promote(o); + if (t != null) + { + collection.Remove(t); + } + } + + public override void RemoveAll(object o) + { + var t = Promote(o); + if (t != null) + { + collection.RemoveAll(x => x.Equals(t)); + } + } + + public override void RemoveAll(IFungusCollection rhsCol) + { + var rhs = Promote(rhsCol); + if (rhs != null) + { + for (int i = rhsCol.Count - 1; i >= 0; i--) + { + collection.RemoveAll(x => x.Equals(rhs.collection[i])); + } + } + } + + public override void RemoveAt(int index) + { + collection.RemoveAt(index); + } + + public override void Reserve(int count) + { + collection.Capacity = count; + } + + public override void Resize(int count) + { + var toAdd = count - collection.Count; + if (toAdd > 0) + collection.AddRange(System.Linq.Enumerable.Repeat(default(T), toAdd)); + } + + public override void Reverse() + { + collection.Reverse(); + } + + public override void Set(int index, object o) + { + var t = Promote(o); + if (t != null) + { + collection[index] = t; + } + } + + public virtual void Set(int index, T value) + { + collection[index] = value; + } + + public override void Shuffle() + { + for (int i = 0; i < collection.Count; i++) + { + var tmp = collection[i]; + var rnd = UnityEngine.Random.Range(0, collection.Count); + collection[i] = collection[rnd]; + collection[rnd] = tmp; + } + } + + public override void Sort() + { + collection.Sort(); + } + + public override void Unique() + { + collection = collection.Distinct().ToList(); + } + + protected virtual T Promote(object o) + { + if (o is T) + { + return (T)o; + } + else if (o is VariableBase) + { + var oAs = o as VariableBase; + return (T)oAs.Value; + } + + Debug.LogError("Collection cannot promote " + o.GetType().Name + " to " + typeof(T).Name); + return default(T); + } + + protected virtual GenericCollection Promote(IFungusCollection col) + { + if (col is GenericCollection) + { + return (GenericCollection)col; + } + + Debug.LogError("Collection cannot promote " + col.GetType().Name + " to " + this.GetType().Name); + return null; + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs.meta new file mode 100644 index 00000000..64210af0 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/GenericCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f1b7585d9e20fb4fa2af08c7d122c43 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs new file mode 100644 index 00000000..583c0e5e --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class IntCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs.meta new file mode 100644 index 00000000..8f5e3e1b --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/IntCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 221f0f261cfcb8a40b9f79cbc51a9148 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs new file mode 100644 index 00000000..a0147c2e --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class IntVarCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs.meta new file mode 100644 index 00000000..4363aa2e --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/IntVarCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a852e2fd041ceda439efd62fd08491ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs new file mode 100644 index 00000000..e66c4b1a --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class StringCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs.meta new file mode 100644 index 00000000..01df8232 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/StringCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a160a99a0d1b6a48847f6d7ff25dac3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs b/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs new file mode 100644 index 00000000..21e5cc71 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs @@ -0,0 +1,9 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +namespace Fungus +{ + public class TransformCollection : GenericCollection + { + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs.meta new file mode 100644 index 00000000..f6bfbfa6 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collection/TransformCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65f1198eb774e9b48816b995d01e5053 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs b/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs new file mode 100644 index 00000000..018e1955 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs @@ -0,0 +1,61 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Collection variable type. + /// + [VariableInfo("Other", "Collection")] + [AddComponentMenu("")] + [System.Serializable] + public class CollectionVariable : VariableBase + { } + + /// + /// Container for a Collection variable reference or constant value. + /// + [System.Serializable] + public struct CollectionData + { + [SerializeField] + [VariableProperty("", typeof(CollectionVariable))] + public CollectionVariable collectionRef; + + [SerializeField] + public Fungus.Collection collectionVal; + + public static implicit operator Fungus.Collection(CollectionData CollectionData) + { + return CollectionData.Value; + } + + public CollectionData(Fungus.Collection v) + { + collectionVal = v; + collectionRef = null; + } + + public Fungus.Collection Value + { + get { return (collectionRef == null) ? collectionVal : collectionRef.Value; } + set { if (collectionRef == null) { collectionVal = value; } else { collectionRef.Value = value; } } + } + + public string GetDescription() + { + if (collectionRef == null) + { + return collectionVal != null ? collectionVal.ToString() : string.Empty; + } + else + { + return collectionRef.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs.meta new file mode 100644 index 00000000..99b1f728 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/CollectionVariable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4511d925e22af8c4a85a568153258f84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs b/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs new file mode 100644 index 00000000..9c0c7fcd --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs @@ -0,0 +1,61 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Collider2D variable type. + /// + [VariableInfo("Other", "Collider2D")] + [AddComponentMenu("")] + [System.Serializable] + public class Collider2DVariable : VariableBase + { } + + /// + /// Container for a Collider2D variable reference or constant value. + /// + [System.Serializable] + public struct Collider2DData + { + [SerializeField] + [VariableProperty("", typeof(Collider2DVariable))] + public Collider2DVariable collider2DRef; + + [SerializeField] + public UnityEngine.Collider2D collider2DVal; + + public static implicit operator UnityEngine.Collider2D(Collider2DData Collider2DData) + { + return Collider2DData.Value; + } + + public Collider2DData(UnityEngine.Collider2D v) + { + collider2DVal = v; + collider2DRef = null; + } + + public UnityEngine.Collider2D Value + { + get { return (collider2DRef == null) ? collider2DVal : collider2DRef.Value; } + set { if (collider2DRef == null) { collider2DVal = value; } else { collider2DRef.Value = value; } } + } + + public string GetDescription() + { + if (collider2DRef == null) + { + return collider2DVal != null ? collider2DVal.ToString() : string.Empty; + } + else + { + return collider2DRef.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs.meta new file mode 100644 index 00000000..ac7c3476 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collider2DVariable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a3f274bcd518c0647b0d9ce7c8f3ab84 +timeCreated: 1517559095 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs b/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs new file mode 100644 index 00000000..1643e795 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs @@ -0,0 +1,61 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Collider variable type. + /// + [VariableInfo("Other", "Collider")] + [AddComponentMenu("")] + [System.Serializable] + public class ColliderVariable : VariableBase + { } + + /// + /// Container for a Collider variable reference or constant value. + /// + [System.Serializable] + public struct ColliderData + { + [SerializeField] + [VariableProperty("", typeof(ColliderVariable))] + public ColliderVariable colliderRef; + + [SerializeField] + public UnityEngine.Collider colliderVal; + + public static implicit operator UnityEngine.Collider(ColliderData ColliderData) + { + return ColliderData.Value; + } + + public ColliderData(UnityEngine.Collider v) + { + colliderVal = v; + colliderRef = null; + } + + public UnityEngine.Collider Value + { + get { return (colliderRef == null) ? colliderVal : colliderRef.Value; } + set { if (colliderRef == null) { colliderVal = value; } else { colliderRef.Value = value; } } + } + + public string GetDescription() + { + if (colliderRef == null) + { + return colliderVal != null ? colliderVal.ToString() : string.Empty; + } + else + { + return colliderRef.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs.meta new file mode 100644 index 00000000..c704ec31 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/ColliderVariable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0057f41f38d80eb42994d709097bab6c +timeCreated: 1517559091 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs b/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs new file mode 100644 index 00000000..3b38944b --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs @@ -0,0 +1,18 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Collision2D variable type. + /// + [VariableInfo("Other", "Collision2D", IsPreviewedOnly = true)] + [AddComponentMenu("")] + [System.Serializable] + public class Collision2DVariable : VariableBase + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs.meta new file mode 100644 index 00000000..4b06a6e2 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Collision2DVariable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 303f39102fa585240b75ba39909c0420 +timeCreated: 1517559039 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs b/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs new file mode 100644 index 00000000..41edb5e3 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs @@ -0,0 +1,18 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Collision variable type. + /// + [VariableInfo("Other", "Collision", IsPreviewedOnly = true)] + [AddComponentMenu("")] + [System.Serializable] + public class CollisionVariable : VariableBase + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs.meta new file mode 100644 index 00000000..15644cf9 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/CollisionVariable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ab82206607c7ce145899c6dded6ed656 +timeCreated: 1517559033 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/ColorVariable.cs b/Assets/Fungus/Scripts/VariableTypes/ColorVariable.cs index adb4036f..d9050e97 100644 --- a/Assets/Fungus/Scripts/VariableTypes/ColorVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/ColorVariable.cs @@ -14,57 +14,30 @@ namespace Fungus [System.Serializable] public class ColorVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { - SetOperator.Assign, - SetOperator.Add, - SetOperator.Subtract, - SetOperator.Multiply - }; - - protected static bool ColorsEqual(Color a, Color b) { - return ColorUtility.ToHtmlStringRGBA(a) == ColorUtility.ToHtmlStringRGBA(b); - } - - public virtual bool Evaluate(CompareOperator compareOperator, Color value) + public override bool IsArithmeticSupported(SetOperator setOperator) { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = ColorsEqual(Value, value); - break; - case CompareOperator.NotEquals: - condition = !ColorsEqual(Value, value); - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; + return setOperator != SetOperator.Negate; } public override void Apply(SetOperator setOperator, Color value) { switch (setOperator) { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Add: - Value += value; - break; - case SetOperator.Subtract: - Value -= value; - break; - case SetOperator.Multiply: - Value *= value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; + case SetOperator.Add: + Value += value; + break; + case SetOperator.Subtract: + Value -= value; + break; + case SetOperator.Multiply: + Value *= value; + break; + case SetOperator.Divide: + Value *= new Color(1.0f/value.r, 1.0f / value.g, 1.0f / value.b, 1.0f / value.a); + break; + default: + base.Apply(setOperator, value); + break; } } } diff --git a/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs b/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs new file mode 100644 index 00000000..e2d2b846 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs @@ -0,0 +1,18 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// ControllerColliderHit variable type. + /// + [VariableInfo("Other", "ControllerColliderHit", IsPreviewedOnly = true)] + [AddComponentMenu("")] + [System.Serializable] + public class ControllerColliderHitVariable : VariableBase + { } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs.meta new file mode 100644 index 00000000..6bf4d06d --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/ControllerColliderHitVariable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1697e3d2923d7a04992d32e821365308 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/FloatVariable.cs b/Assets/Fungus/Scripts/VariableTypes/FloatVariable.cs index eb30171f..7e9bb88a 100644 --- a/Assets/Fungus/Scripts/VariableTypes/FloatVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/FloatVariable.cs @@ -13,80 +13,68 @@ namespace Fungus [System.Serializable] public class FloatVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { - CompareOperator.Equals, - CompareOperator.NotEquals, - CompareOperator.LessThan, - CompareOperator.GreaterThan, - CompareOperator.LessThanOrEquals, - CompareOperator.GreaterThanOrEquals - }; - public static readonly SetOperator[] setOperators = { - SetOperator.Assign, - SetOperator.Add, - SetOperator.Subtract, - SetOperator.Multiply, - SetOperator.Divide - }; + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return true; + } - public virtual bool Evaluate(CompareOperator compareOperator, float floatValue) + public override bool IsComparisonSupported() { - float lhs = Value; - float rhs = floatValue; - - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = lhs == rhs; - break; - case CompareOperator.NotEquals: - condition = lhs != rhs; - break; - case CompareOperator.LessThan: - condition = lhs < rhs; - break; - case CompareOperator.GreaterThan: - condition = lhs > rhs; - break; - case CompareOperator.LessThanOrEquals: - condition = lhs <= rhs; - break; - case CompareOperator.GreaterThanOrEquals: - condition = lhs >= rhs; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; + return true; } public override void Apply(SetOperator setOperator, float value) { switch (setOperator) { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Add: - Value += value; - break; - case SetOperator.Subtract: - Value -= value; - break; - case SetOperator.Multiply: - Value *= value; - break; - case SetOperator.Divide: - Value /= value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; + case SetOperator.Negate: + Value = Value * -1; + break; + case SetOperator.Add: + Value += value; + break; + case SetOperator.Subtract: + Value -= value; + break; + case SetOperator.Multiply: + Value *= value; + break; + case SetOperator.Divide: + Value /= value; + break; + default: + base.Apply(setOperator, value); + break; + } + } + + public override bool Evaluate(CompareOperator compareOperator, float value) + { + float lhs = Value; + float rhs = value; + + bool condition = false; + + switch (compareOperator) + { + case CompareOperator.LessThan: + condition = lhs < rhs; + break; + case CompareOperator.GreaterThan: + condition = lhs > rhs; + break; + case CompareOperator.LessThanOrEquals: + condition = lhs <= rhs; + break; + case CompareOperator.GreaterThanOrEquals: + condition = lhs >= rhs; + break; + default: + condition = base.Evaluate(compareOperator, base.value); + break; } + + return condition; } } diff --git a/Assets/Fungus/Scripts/VariableTypes/GameObjectVariable.cs b/Assets/Fungus/Scripts/VariableTypes/GameObjectVariable.cs index 57d440ac..e04b6d68 100644 --- a/Assets/Fungus/Scripts/VariableTypes/GameObjectVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/GameObjectVariable.cs @@ -14,44 +14,6 @@ namespace Fungus [System.Serializable] public class GameObjectVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, GameObject gameObjectValue) - { - GameObject lhs = Value; - GameObject rhs = gameObjectValue; - - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = lhs == rhs; - break; - case CompareOperator.NotEquals: - condition = lhs != rhs; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, GameObject value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -88,7 +50,7 @@ namespace Fungus { if (gameObjectRef == null) { - return gameObjectVal.ToString(); + return gameObjectVal != null ? gameObjectVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/IntegerVariable.cs b/Assets/Fungus/Scripts/VariableTypes/IntegerVariable.cs index d77c3696..43932395 100644 --- a/Assets/Fungus/Scripts/VariableTypes/IntegerVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/IntegerVariable.cs @@ -11,83 +11,71 @@ namespace Fungus [VariableInfo("", "Integer")] [AddComponentMenu("")] [System.Serializable] - public class IntegerVariable : VariableBase + public class IntegerVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { - CompareOperator.Equals, - CompareOperator.NotEquals, - CompareOperator.LessThan, - CompareOperator.GreaterThan, - CompareOperator.LessThanOrEquals, - CompareOperator.GreaterThanOrEquals - }; - public static readonly SetOperator[] setOperators = { - SetOperator.Assign, - SetOperator.Add, - SetOperator.Subtract, - SetOperator.Multiply, - SetOperator.Divide - }; + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return true; + } + + public override bool IsComparisonSupported() + { + return true; + } - public virtual bool Evaluate(CompareOperator compareOperator, int integerValue) + public override void Apply(SetOperator setOperator, int value) + { + switch (setOperator) + { + case SetOperator.Negate: + Value = Value * -1; + break; + case SetOperator.Add: + Value += value; + break; + case SetOperator.Subtract: + Value -= value; + break; + case SetOperator.Multiply: + Value *= value; + break; + case SetOperator.Divide: + Value /= value; + break; + default: + base.Apply(setOperator, value); + break; + } + } + + public override bool Evaluate(CompareOperator compareOperator, int value) { int lhs = Value; - int rhs = integerValue; + int rhs = value; bool condition = false; switch (compareOperator) { - case CompareOperator.Equals: - condition = lhs == rhs; - break; - case CompareOperator.NotEquals: - condition = lhs != rhs; - break; - case CompareOperator.LessThan: - condition = lhs < rhs; - break; - case CompareOperator.GreaterThan: - condition = lhs > rhs; - break; - case CompareOperator.LessThanOrEquals: - condition = lhs <= rhs; - break; - case CompareOperator.GreaterThanOrEquals: - condition = lhs >= rhs; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; + case CompareOperator.LessThan: + condition = lhs < rhs; + break; + case CompareOperator.GreaterThan: + condition = lhs > rhs; + break; + case CompareOperator.LessThanOrEquals: + condition = lhs <= rhs; + break; + case CompareOperator.GreaterThanOrEquals: + condition = lhs >= rhs; + break; + default: + condition = base.Evaluate(compareOperator, value); + break; } return condition; } - - public override void Apply(SetOperator setOperator, int value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Add: - Value += value; - break; - case SetOperator.Subtract: - Value -= value; - break; - case SetOperator.Multiply: - Value *= value; - break; - case SetOperator.Divide: - Value /= value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// diff --git a/Assets/Fungus/Scripts/VariableTypes/MaterialVariable.cs b/Assets/Fungus/Scripts/VariableTypes/MaterialVariable.cs index fac603dd..c24a168f 100644 --- a/Assets/Fungus/Scripts/VariableTypes/MaterialVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/MaterialVariable.cs @@ -14,41 +14,6 @@ namespace Fungus [System.Serializable] public class MaterialVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Material value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Material value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -85,7 +50,7 @@ namespace Fungus { if (materialRef == null) { - return materialVal.ToString(); + return materialVal != null ? materialVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs b/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs new file mode 100644 index 00000000..e852ad64 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs @@ -0,0 +1,94 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Matrix4x4 variable type. + /// + [VariableInfo("Other", "Matrix4x4", IsPreviewedOnly = true)] + [AddComponentMenu("")] + [System.Serializable] + public class Matrix4x4Variable : VariableBase + { + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return setOperator == SetOperator.Multiply || base.IsArithmeticSupported(setOperator); + } + + public override void Apply(SetOperator setOperator, Matrix4x4 value) + { + Matrix4x4 local = Value; + + switch (setOperator) + { + case SetOperator.Add: + Debug.LogWarning("Matrix4x4 Add not supported"); + break; + + case SetOperator.Subtract: + Debug.LogWarning("Matrix4x4 Subtract not supported"); + break; + + case SetOperator.Multiply: + Value = local * value; + break; + + case SetOperator.Divide: + Debug.LogWarning("Matrix4x4 Divide not supported"); + break; + + default: + base.Apply(setOperator, value); + break; + } + } + } + + /// + /// Container for a Matrix4x4 variable reference or constant value. + /// + [System.Serializable] + public struct Matrix4x4Data + { + [SerializeField] + [VariableProperty("", typeof(Matrix4x4Variable))] + public Matrix4x4Variable matrix4x4Ref; + + [SerializeField] + public UnityEngine.Matrix4x4 matrix4x4Val; + + public static implicit operator UnityEngine.Matrix4x4(Matrix4x4Data Matrix4x4Data) + { + return Matrix4x4Data.Value; + } + + public Matrix4x4Data(UnityEngine.Matrix4x4 v) + { + matrix4x4Val = v; + matrix4x4Ref = null; + } + + public UnityEngine.Matrix4x4 Value + { + get { return (matrix4x4Ref == null) ? matrix4x4Val : matrix4x4Ref.Value; } + set { if (matrix4x4Ref == null) { matrix4x4Val = value; } else { matrix4x4Ref.Value = value; } } + } + + public string GetDescription() + { + if (matrix4x4Ref == null) + { + return matrix4x4Val.ToString(); + } + else + { + return matrix4x4Ref.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs.meta new file mode 100644 index 00000000..2c468872 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Matrix4x4Variable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 92a3ae3fceb40f24db63f0e4085f39cc +timeCreated: 1513473561 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/ObjectVariable.cs b/Assets/Fungus/Scripts/VariableTypes/ObjectVariable.cs index b03652e0..a0d7778e 100644 --- a/Assets/Fungus/Scripts/VariableTypes/ObjectVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/ObjectVariable.cs @@ -14,41 +14,6 @@ namespace Fungus [System.Serializable] public class ObjectVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Object value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Object value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -85,7 +50,7 @@ namespace Fungus { if (objectRef == null) { - return objectVal.ToString(); + return objectVal != null ? objectVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs b/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs new file mode 100644 index 00000000..78209729 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs @@ -0,0 +1,94 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Quaternion variable type. + /// + [VariableInfo("Other", "Quaternion")] + [AddComponentMenu("")] + [System.Serializable] + public class QuaternionVariable : VariableBase + { + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return setOperator == SetOperator.Multiply || base.IsArithmeticSupported(setOperator); + } + + public override void Apply(SetOperator setOperator, Quaternion value) + { + Quaternion local = Value; + + switch (setOperator) + { + case SetOperator.Add: + Debug.LogWarning("Quarternion Add not supported"); + break; + + case SetOperator.Subtract: + Debug.LogWarning("Quarternion Subtract not supported"); + break; + + case SetOperator.Multiply: + Value = local * value; + break; + + case SetOperator.Divide: + Debug.LogWarning("Quarternion Divide not supported"); + break; + + default: + base.Apply(setOperator, value); + break; + } + } + } + + /// + /// Container for a Quaternion variable reference or constant value. + /// + [System.Serializable] + public struct QuaternionData + { + [SerializeField] + [VariableProperty("", typeof(QuaternionVariable))] + public QuaternionVariable quaternionRef; + + [SerializeField] + public UnityEngine.Quaternion quaternionVal; + + public static implicit operator UnityEngine.Quaternion(QuaternionData QuaternionData) + { + return QuaternionData.Value; + } + + public QuaternionData(UnityEngine.Quaternion v) + { + quaternionVal = v; + quaternionRef = null; + } + + public UnityEngine.Quaternion Value + { + get { return (quaternionRef == null) ? quaternionVal : quaternionRef.Value; } + set { if (quaternionRef == null) { quaternionVal = value; } else { quaternionRef.Value = value; } } + } + + public string GetDescription() + { + if (quaternionRef == null) + { + return quaternionVal.ToString(); + } + else + { + return quaternionRef.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs.meta new file mode 100644 index 00000000..02dad2f5 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/QuaternionVariable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c0d1ebdecfe2cb147bc3558abb25d154 +timeCreated: 1513473561 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/Rigidbody2DVariable.cs b/Assets/Fungus/Scripts/VariableTypes/Rigidbody2DVariable.cs index d8638a23..b1a9e5b0 100644 --- a/Assets/Fungus/Scripts/VariableTypes/Rigidbody2DVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/Rigidbody2DVariable.cs @@ -13,41 +13,6 @@ namespace Fungus [System.Serializable] public class Rigidbody2DVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Rigidbody2D value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Rigidbody2D value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -84,7 +49,7 @@ namespace Fungus { if (rigidbody2DRef == null) { - return rigidbody2DVal.ToString(); + return rigidbody2DVal != null ? rigidbody2DVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs b/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs new file mode 100644 index 00000000..5764fd66 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs @@ -0,0 +1,61 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Rigidbody variable type. + /// + [VariableInfo("Other", "Rigidbody")] + [AddComponentMenu("")] + [System.Serializable] + public class RigidbodyVariable : VariableBase + { } + + /// + /// Container for a Rigidbody variable reference or constant value. + /// + [System.Serializable] + public struct RigidbodyData + { + [SerializeField] + [VariableProperty("", typeof(RigidbodyVariable))] + public RigidbodyVariable rigidbodyRef; + + [SerializeField] + public UnityEngine.Rigidbody rigidbodyVal; + + public static implicit operator UnityEngine.Rigidbody(RigidbodyData RigidbodyData) + { + return RigidbodyData.Value; + } + + public RigidbodyData(UnityEngine.Rigidbody v) + { + rigidbodyVal = v; + rigidbodyRef = null; + } + + public UnityEngine.Rigidbody Value + { + get { return (rigidbodyRef == null) ? rigidbodyVal : rigidbodyRef.Value; } + set { if (rigidbodyRef == null) { rigidbodyVal = value; } else { rigidbodyRef.Value = value; } } + } + + public string GetDescription() + { + if (rigidbodyRef == null) + { + return rigidbodyVal != null ? rigidbodyVal.ToString() : string.Empty; + } + else + { + return rigidbodyRef.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs.meta new file mode 100644 index 00000000..9f78db62 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/RigidbodyVariable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 22ca3b0d4747cfa40806a3521c5f29cf +timeCreated: 1517558732 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/VariableTypes/SpriteVariable.cs b/Assets/Fungus/Scripts/VariableTypes/SpriteVariable.cs index 67100fdb..16d5c304 100644 --- a/Assets/Fungus/Scripts/VariableTypes/SpriteVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/SpriteVariable.cs @@ -14,41 +14,6 @@ namespace Fungus [System.Serializable] public class SpriteVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Sprite value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Sprite value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -85,7 +50,7 @@ namespace Fungus { if (spriteRef == null) { - return spriteVal.ToString(); + return spriteVal != null ? spriteVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/StringVariable.cs b/Assets/Fungus/Scripts/VariableTypes/StringVariable.cs index cd5b480b..1f18f122 100644 --- a/Assets/Fungus/Scripts/VariableTypes/StringVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/StringVariable.cs @@ -13,44 +13,6 @@ namespace Fungus [System.Serializable] public class StringVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, string stringValue) - { - string lhs = Value; - string rhs = stringValue; - - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = lhs == rhs; - break; - case CompareOperator.NotEquals: - condition = lhs != rhs; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, string value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -93,7 +55,7 @@ namespace Fungus { if (stringRef == null) { - return stringVal; + return stringVal != null ? stringVal : string.Empty; } else { @@ -143,7 +105,7 @@ namespace Fungus { if (stringRef == null) { - return stringVal; + return stringVal != null ? stringVal : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/TextureVariable.cs b/Assets/Fungus/Scripts/VariableTypes/TextureVariable.cs index 165a2a23..5a230339 100644 --- a/Assets/Fungus/Scripts/VariableTypes/TextureVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/TextureVariable.cs @@ -14,41 +14,6 @@ namespace Fungus [System.Serializable] public class TextureVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Texture value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Texture value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -85,7 +50,7 @@ namespace Fungus { if (textureRef == null) { - return textureVal.ToString(); + return textureVal != null ? textureVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/TransformVariable.cs b/Assets/Fungus/Scripts/VariableTypes/TransformVariable.cs index 9e72d62b..50407baf 100644 --- a/Assets/Fungus/Scripts/VariableTypes/TransformVariable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/TransformVariable.cs @@ -14,41 +14,6 @@ namespace Fungus [System.Serializable] public class TransformVariable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign }; - - public virtual bool Evaluate(CompareOperator compareOperator, Transform value) - { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; - } - - public override void Apply(SetOperator setOperator, Transform value) - { - switch (setOperator) - { - case SetOperator.Assign: - Value = value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; - } - } } /// @@ -85,7 +50,7 @@ namespace Fungus { if (transformRef == null) { - return transformVal.ToString(); + return transformVal != null ? transformVal.ToString() : string.Empty; } else { diff --git a/Assets/Fungus/Scripts/VariableTypes/Vector2Variable.cs b/Assets/Fungus/Scripts/VariableTypes/Vector2Variable.cs index fc029502..f164c27d 100644 --- a/Assets/Fungus/Scripts/VariableTypes/Vector2Variable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/Vector2Variable.cs @@ -14,45 +14,33 @@ namespace Fungus [System.Serializable] public class Vector2Variable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign, SetOperator.Add, SetOperator.Subtract }; - - public virtual bool Evaluate(CompareOperator compareOperator, Vector2 value) + public override bool IsArithmeticSupported(SetOperator setOperator) { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; + return true; } public override void Apply(SetOperator setOperator, Vector2 value) { switch (setOperator) { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Add: - Value += value; - break; - case SetOperator.Subtract: - Value -= value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; + case SetOperator.Negate: + Value = Value * -1; + break; + case SetOperator.Add: + Value += value; + break; + case SetOperator.Subtract: + Value -= value; + break; + case SetOperator.Multiply: + Value *= value; + break; + case SetOperator.Divide: + Value /= value; + break; + default: + base.Apply(setOperator, value); + break; } } } diff --git a/Assets/Fungus/Scripts/VariableTypes/Vector3Variable.cs b/Assets/Fungus/Scripts/VariableTypes/Vector3Variable.cs index b557cdee..bb495585 100644 --- a/Assets/Fungus/Scripts/VariableTypes/Vector3Variable.cs +++ b/Assets/Fungus/Scripts/VariableTypes/Vector3Variable.cs @@ -14,45 +14,37 @@ namespace Fungus [System.Serializable] public class Vector3Variable : VariableBase { - public static readonly CompareOperator[] compareOperators = { CompareOperator.Equals, CompareOperator.NotEquals }; - public static readonly SetOperator[] setOperators = { SetOperator.Assign, SetOperator.Add, SetOperator.Subtract }; - - public virtual bool Evaluate(CompareOperator compareOperator, Vector3 value) + public override bool IsArithmeticSupported(SetOperator setOperator) { - bool condition = false; - - switch (compareOperator) - { - case CompareOperator.Equals: - condition = Value == value; - break; - case CompareOperator.NotEquals: - condition = Value != value; - break; - default: - Debug.LogError("The " + compareOperator.ToString() + " comparison operator is not valid."); - break; - } - - return condition; + return true; } public override void Apply(SetOperator setOperator, Vector3 value) { + Vector3 local = Value; + switch (setOperator) { - case SetOperator.Assign: - Value = value; - break; - case SetOperator.Add: - Value += value; - break; - case SetOperator.Subtract: - Value -= value; - break; - default: - Debug.LogError("The " + setOperator.ToString() + " set operator is not valid."); - break; + case SetOperator.Negate: + Value = Value * -1; + break; + case SetOperator.Add: + Value += value; + break; + case SetOperator.Subtract: + Value -= value; + break; + case SetOperator.Multiply: + local.Scale(value); + Value = local; + break; + case SetOperator.Divide: + local.Scale(new Vector3(1.0f / value.x, 1.0f / value.y, 1.0f / value.z)); + Value = local; + break; + default: + base.Apply(setOperator, value); + break; } } } diff --git a/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs b/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs new file mode 100644 index 00000000..79fd37b6 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs @@ -0,0 +1,100 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ + +using UnityEngine; + +namespace Fungus +{ + /// + /// Vector4 variable type. + /// + [VariableInfo("Other", "Vector4")] + [AddComponentMenu("")] + [System.Serializable] + public class Vector4Variable : VariableBase + { + public override bool IsArithmeticSupported(SetOperator setOperator) + { + return true; + } + + public override void Apply(SetOperator setOperator, Vector4 value) + { + Vector4 local = Value; + + switch (setOperator) + { + case SetOperator.Negate: + Value = Value * -1; + break; + + case SetOperator.Add: + Value += value; + break; + + case SetOperator.Subtract: + Value -= value; + break; + + case SetOperator.Multiply: + local.Scale(value); + Value = local; + break; + + case SetOperator.Divide: + local.Scale(new Vector4(1.0f / value.x, 1.0f / value.y, 1.0f / value.z, 1.0f / value.w)); + Value = local; + break; + + default: + base.Apply(setOperator, value); + break; + } + } + } + + /// + /// Container for a Vector4 variable reference or constant value. + /// + [System.Serializable] + public struct Vector4Data + { + [SerializeField] + [VariableProperty("", typeof(Vector4Variable))] + public Vector4Variable vector4Ref; + + [SerializeField] + public UnityEngine.Vector4 vector4Val; + + public static implicit operator UnityEngine.Vector4(Vector4Data Vector4Data) + { + return Vector4Data.Value; + } + + public Vector4Data(UnityEngine.Vector4 v) + { + vector4Val = v; + vector4Ref = null; + } + + public UnityEngine.Vector4 Value + { + get { return (vector4Ref == null) ? vector4Val : vector4Ref.Value; } + set { if (vector4Ref == null) { vector4Val = value; } else { vector4Ref.Value = value; } } + } + + public string GetDescription() + { + if (vector4Ref == null) + { + return vector4Val.ToString(); + } + else + { + return vector4Ref.Key; + } + } + } +} \ No newline at end of file diff --git a/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs.meta b/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs.meta new file mode 100644 index 00000000..a78c8d79 --- /dev/null +++ b/Assets/Fungus/Scripts/VariableTypes/Vector4Variable.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 516fbed763cd80c44835637e64a1da18 +timeCreated: 1517559329 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Thirdparty/FungusLua/Scripts/Editor/DropDownControl.cs b/Assets/Fungus/Thirdparty/FungusLua/Scripts/Editor/DropDownControl.cs index 58eedbb5..92e943da 100644 --- a/Assets/Fungus/Thirdparty/FungusLua/Scripts/Editor/DropDownControl.cs +++ b/Assets/Fungus/Thirdparty/FungusLua/Scripts/Editor/DropDownControl.cs @@ -11,7 +11,7 @@ using UnityEngine; namespace Fungus { [Serializable] - internal class DropDownControl + public class DropDownControl { private readonly GUILayoutOption[] m_ButtonLayoutOptions = { GUILayout.ExpandWidth(true) }; public Func convertForButtonLabel = s => s.ToString(); diff --git a/Assets/FungusExamples/Collection.meta b/Assets/FungusExamples/Collection.meta new file mode 100644 index 00000000..3920dd40 --- /dev/null +++ b/Assets/FungusExamples/Collection.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f487e73c7617f544bbd1ef8bbd1f4e97 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FungusExamples/Collection/CollectionLoop.unity b/Assets/FungusExamples/Collection/CollectionLoop.unity new file mode 100644 index 00000000..1fa15281 --- /dev/null +++ b/Assets/FungusExamples/Collection/CollectionLoop.unity @@ -0,0 +1,1910 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &340584333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 340584336} + - component: {fileID: 340584335} + - component: {fileID: 340584334} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &340584334 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340584333} + m_Enabled: 1 +--- !u!20 &340584335 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340584333} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &340584336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340584333} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &826101087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 826101089} + - component: {fileID: 826101088} + m_Layer: 0 + m_Name: FloatCol + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &826101088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826101087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f48297b98c3c1414c8e94ebe45883bb1, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: + - 1 + - 2 + - 3 + - 3.14 + - 4 + - 5 +--- !u!4 &826101089 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826101087} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &960365509 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 960365511} + - component: {fileID: 960365510} + m_Layer: 0 + m_Name: bag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &960365510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 960365509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221f0f261cfcb8a40b9f79cbc51a9148, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: 0100000002000000030000000400000005000000 +--- !u!4 &960365511 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 960365509} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1071152884 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1071152886} + - component: {fileID: 1071152885} + m_Layer: 0 + m_Name: _FungusState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1071152885 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071152884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} + m_Name: + m_EditorClassIdentifier: + selectedFlowchart: {fileID: 1163017699} +--- !u!4 &1071152886 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071152884} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1163017693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1163017700} + - component: {fileID: 1163017699} + - component: {fileID: 1163017698} + - component: {fileID: 1163017696} + - component: {fileID: 1163017695} + - component: {fileID: 1163017694} + - component: {fileID: 1163017701} + - component: {fileID: 1163017706} + - component: {fileID: 1163017704} + - component: {fileID: 1163017703} + - component: {fileID: 1163017702} + - component: {fileID: 1163017708} + - component: {fileID: 1163017707} + - component: {fileID: 1163017710} + - component: {fileID: 1163017709} + - component: {fileID: 1163017713} + - component: {fileID: 1163017712} + - component: {fileID: 1163017711} + - component: {fileID: 1163017716} + - component: {fileID: 1163017715} + - component: {fileID: 1163017714} + - component: {fileID: 1163017722} + - component: {fileID: 1163017720} + - component: {fileID: 1163017719} + - component: {fileID: 1163017718} + - component: {fileID: 1163017717} + - component: {fileID: 1163017723} + - component: {fileID: 1163017721} + - component: {fileID: 1163017705} + - component: {fileID: 1163017697} + - component: {fileID: 1163017726} + - component: {fileID: 1163017725} + - component: {fileID: 1163017724} + - component: {fileID: 1163017733} + - component: {fileID: 1163017732} + - component: {fileID: 1163017731} + - component: {fileID: 1163017730} + - component: {fileID: 1163017729} + - component: {fileID: 1163017728} + - component: {fileID: 1163017727} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1163017694 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 1 + anyVar: + variable: {fileID: 1163017695} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 1 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 2 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1163017695 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: while + value: 0 +--- !u!114 &1163017696 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 663c8a7831a104d16ad7078a4dc2bd10, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + compareOperator: 2 + anyVar: + variable: {fileID: 1163017695} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 50 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1163017697 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 24 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &1163017698 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 233 + y: 189 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: New Block + description: + eventHandler: {fileID: 1163017726} + commandList: + - {fileID: 1163017696} + - {fileID: 1163017721} + - {fileID: 1163017713} + - {fileID: 1163017711} + - {fileID: 1163017712} + - {fileID: 1163017694} + - {fileID: 1163017710} + - {fileID: 1163017701} + - {fileID: 1163017709} + suppressAllAutoSelections: 0 +--- !u!114 &1163017699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: -48, y: -73} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 447 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: + - {fileID: 1163017733} + selectedCommands: + - {fileID: 1163017731} + variables: + - {fileID: 1163017695} + - {fileID: 1163017704} + - {fileID: 1163017718} + - {fileID: 1163017728} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!4 &1163017700 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1163017701 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 +--- !u!114 &1163017702 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 1 +--- !u!114 &1163017703 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b0eebb5bf2fc1e542a35e2e5332e60d4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 0 + startingValue: + integerRef: {fileID: 0} + integerVal: 0 + endValue: + integerRef: {fileID: 0} + integerVal: 50 + counter: + integerRef: {fileID: 1163017704} + integerVal: 0 + step: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &1163017704 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: looprange + value: 0 +--- !u!114 &1163017705 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 23 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &1163017706 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 236 + y: 245 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 4 + blockName: New Block1 + description: + eventHandler: {fileID: 1163017725} + commandList: + - {fileID: 1163017703} + - {fileID: 1163017705} + - {fileID: 1163017716} + - {fileID: 1163017714} + - {fileID: 1163017702} + - {fileID: 1163017708} + - {fileID: 1163017715} + - {fileID: 1163017707} + suppressAllAutoSelections: 0 +--- !u!114 &1163017707 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 8 + indentLevel: 0 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: loop range ended @ {$looprange} +--- !u!114 &1163017708 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 7 + indentLevel: 1 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: in loop {$looprange} +--- !u!114 &1163017709 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 10 + indentLevel: 0 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: while ended {$while} +--- !u!114 &1163017710 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 9 + indentLevel: 1 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: while {$while} +--- !u!114 &1163017711 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9b9c7a9785c34fc889da2b3a40344db, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 13 + indentLevel: 2 +--- !u!114 &1163017712 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 12 + indentLevel: 1 +--- !u!114 &1163017713 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 11 + indentLevel: 1 + compareOperator: 5 + anyVar: + variable: {fileID: 1163017695} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 5 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1163017714 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9b9c7a9785c34fc889da2b3a40344db, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + indentLevel: 2 +--- !u!114 &1163017715 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + indentLevel: 0 +--- !u!114 &1163017716 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 14 + indentLevel: 1 + compareOperator: 5 + anyVar: + variable: {fileID: 1163017704} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 5 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1163017717 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 20 + indentLevel: 1 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: foreach item value = {$float_item} +--- !u!114 &1163017718 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 705fa1ac97df74e3a84ff952ffd923f1, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: float_item + value: 0 +--- !u!114 &1163017719 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 19 + indentLevel: 0 +--- !u!114 &1163017720 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ce547d5384ce3a41b7142cab8ab41dd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 18 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 826101088} + item: {fileID: 1163017718} +--- !u!114 &1163017721 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 22 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &1163017722 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 233 + y: 299 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 17 + blockName: float looper + description: + eventHandler: {fileID: 1163017724} + commandList: + - {fileID: 1163017723} + - {fileID: 1163017720} + - {fileID: 1163017697} + - {fileID: 1163017717} + - {fileID: 1163017719} + suppressAllAutoSelections: 0 +--- !u!114 &1163017723 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 21 + indentLevel: 0 + anyVar: + variable: {fileID: 1163017718} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 1 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 3 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1163017724 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1163017722} + suppressBlockAutoSelect: 0 + waitForFrames: 1 +--- !u!114 &1163017725 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1163017706} + suppressBlockAutoSelect: 0 + waitForFrames: 1 +--- !u!114 &1163017726 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1163017698} + suppressBlockAutoSelect: 0 + waitForFrames: 1 +--- !u!114 &1163017727 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 29 + indentLevel: 1 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: 'Random Item: {$bag_item}' +--- !u!114 &1163017728 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: bag_item + value: 0 +--- !u!114 &1163017729 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56176eef6b396a442b08b88220304436, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 28 + indentLevel: 1 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 960365510} + variableToUse: {fileID: 1163017728} + duplicatesToPutInBag: + integerRef: {fileID: 0} + integerVal: 5 + currentIndex: + integerRef: {fileID: 0} + integerVal: 2147483647 +--- !u!114 &1163017730 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 27 + indentLevel: 0 +--- !u!114 &1163017731 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b0eebb5bf2fc1e542a35e2e5332e60d4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 26 + indentLevel: 0 + startingValue: + integerRef: {fileID: 0} + integerVal: 0 + endValue: + integerRef: {fileID: 0} + integerVal: 100 + counter: + integerRef: {fileID: 0} + integerVal: 0 + step: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &1163017732 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1163017733} + suppressBlockAutoSelect: 0 + waitForFrames: 5 +--- !u!114 &1163017733 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163017693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 243 + y: 353 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 25 + blockName: New Block2 + description: + eventHandler: {fileID: 1163017732} + commandList: + - {fileID: 1163017731} + - {fileID: 1163017729} + - {fileID: 1163017727} + - {fileID: 1163017730} + suppressAllAutoSelections: 0 +--- !u!1 &1735779632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1735779636} + - component: {fileID: 1735779635} + - component: {fileID: 1735779634} + - component: {fileID: 1735779633} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1735779633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735779632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d49b7c1bcd2e07499844da127be038d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1735779634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735779632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1735779635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735779632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1735779636 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735779632} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/FungusExamples/Collection/CollectionLoop.unity.meta b/Assets/FungusExamples/Collection/CollectionLoop.unity.meta new file mode 100644 index 00000000..2057f724 --- /dev/null +++ b/Assets/FungusExamples/Collection/CollectionLoop.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 67bd479c6dc011c49a480569a7983c23 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FungusExamples/Collection/CollectionPhysics.unity b/Assets/FungusExamples/Collection/CollectionPhysics.unity new file mode 100644 index 00000000..fe0afe34 --- /dev/null +++ b/Assets/FungusExamples/Collection/CollectionPhysics.unity @@ -0,0 +1,7766 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &11230080 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 11230082} + - component: {fileID: 11230081} + m_Layer: 0 + m_Name: _FungusState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11230081 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11230080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} + m_Name: + m_EditorClassIdentifier: + selectedFlowchart: {fileID: 1246222936} +--- !u!4 &11230082 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11230080} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &21451434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 21451435} + - component: {fileID: 21451438} + - component: {fileID: 21451437} + - component: {fileID: 21451436} + m_Layer: 0 + m_Name: Cube (10) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &21451435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21451434} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.07, y: 2.21, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &21451436 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21451434} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &21451437 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21451434} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &21451438 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21451434} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &21838327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 21838328} + - component: {fileID: 21838331} + - component: {fileID: 21838330} + - component: {fileID: 21838329} + m_Layer: 0 + m_Name: Cube (30) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &21838328 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21838327} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.8299999, y: 0.8400001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 30 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &21838329 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21838327} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &21838330 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21838327} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &21838331 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21838327} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &47038203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 47038204} + - component: {fileID: 47038207} + - component: {fileID: 47038206} + - component: {fileID: 47038205} + m_Layer: 0 + m_Name: Cube (20) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &47038204 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47038203} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.4499998, y: -0.14999986, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &47038205 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47038203} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &47038206 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47038203} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &47038207 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47038203} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &48243586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 48243587} + - component: {fileID: 48243590} + - component: {fileID: 48243589} + - component: {fileID: 48243588} + m_Layer: 0 + m_Name: Cube (54) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &48243587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48243586} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.3399999, y: -1.49, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 54 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &48243588 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48243586} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &48243589 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48243586} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &48243590 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48243586} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &49064037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 49064038} + - component: {fileID: 49064041} + - component: {fileID: 49064040} + - component: {fileID: 49064039} + m_Layer: 0 + m_Name: Cube (61) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &49064038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49064037} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.49999994, y: 0, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 61 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &49064039 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49064037} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &49064040 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49064037} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &49064041 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49064037} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &59587197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 59587198} + - component: {fileID: 59587201} + - component: {fileID: 59587200} + - component: {fileID: 59587199} + m_Layer: 0 + m_Name: Cube (38) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &59587198 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59587197} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.69, y: -0.19, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 38 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &59587199 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59587197} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &59587200 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59587197} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &59587201 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59587197} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &141581414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 141581415} + - component: {fileID: 141581418} + - component: {fileID: 141581417} + - component: {fileID: 141581416} + m_Layer: 0 + m_Name: Cube + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &141581415 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141581414} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.54, y: 1.68, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &141581416 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141581414} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &141581417 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141581414} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &141581418 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141581414} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &167280874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 167280875} + - component: {fileID: 167280878} + - component: {fileID: 167280877} + - component: {fileID: 167280876} + m_Layer: 0 + m_Name: Cube (47) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167280875 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167280874} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.18000019, y: 0.74000007, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 47 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &167280876 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167280874} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &167280877 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167280874} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &167280878 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167280874} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &168935773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 168935774} + - component: {fileID: 168935777} + - component: {fileID: 168935776} + - component: {fileID: 168935775} + m_Layer: 0 + m_Name: Cube (53) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &168935774 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168935773} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.69000006, y: -1.1800001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 53 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &168935775 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168935773} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &168935776 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168935773} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &168935777 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168935773} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &172560605 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 172560606} + - component: {fileID: 172560609} + - component: {fileID: 172560608} + - component: {fileID: 172560607} + m_Layer: 0 + m_Name: Cube (41) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &172560606 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172560605} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.95999986, y: 1.77, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 41 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &172560607 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172560605} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &172560608 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172560605} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &172560609 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172560605} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &175082096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 175082098} + - component: {fileID: 175082097} + m_Layer: 0 + m_Name: ColliderGameObjectCollection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &175082097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175082096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 150bd15698fd79541ace6f07d5304837, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: [] +--- !u!4 &175082098 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175082096} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &200463955 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 200463956} + - component: {fileID: 200463959} + - component: {fileID: 200463958} + - component: {fileID: 200463957} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &200463956 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200463955} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.42, y: 0.84, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &200463957 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200463955} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &200463958 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200463955} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &200463959 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200463955} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &212417815 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 212417816} + - component: {fileID: 212417819} + - component: {fileID: 212417818} + - component: {fileID: 212417817} + m_Layer: 0 + m_Name: Cube (43) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &212417816 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212417815} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.3699999, y: 1.74, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 43 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &212417817 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212417815} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &212417818 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212417815} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &212417819 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212417815} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &244773531 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 244773532} + - component: {fileID: 244773535} + - component: {fileID: 244773534} + - component: {fileID: 244773533} + m_Layer: 0 + m_Name: Cube (12) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &244773532 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 244773531} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.48, y: 2.1799998, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &244773533 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 244773531} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &244773534 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 244773531} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &244773535 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 244773531} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &266806309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 266806310} + - component: {fileID: 266806313} + - component: {fileID: 266806312} + - component: {fileID: 266806311} + m_Layer: 0 + m_Name: Cube (33) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &266806310 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 266806309} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.68, y: 0.31, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &266806311 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 266806309} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &266806312 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 266806309} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &266806313 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 266806309} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &346647732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 346647733} + - component: {fileID: 346647736} + - component: {fileID: 346647735} + - component: {fileID: 346647734} + m_Layer: 0 + m_Name: Cube (39) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &346647733 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346647732} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.12999994, y: -0.6899999, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 39 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &346647734 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346647732} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &346647735 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346647732} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &346647736 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346647732} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &354602044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 354602045} + - component: {fileID: 354602048} + - component: {fileID: 354602047} + - component: {fileID: 354602046} + m_Layer: 0 + m_Name: Cube (9) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &354602045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354602044} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.84, y: 0.15, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &354602046 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354602044} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &354602047 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354602044} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &354602048 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354602044} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &380041650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 380041651} + - component: {fileID: 380041654} + - component: {fileID: 380041653} + - component: {fileID: 380041652} + m_Layer: 0 + m_Name: Cube (16) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &380041651 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380041650} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.9300001, y: 1.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &380041652 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380041650} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &380041653 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380041650} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &380041654 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380041650} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &413120541 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 413120542} + - component: {fileID: 413120545} + - component: {fileID: 413120544} + - component: {fileID: 413120543} + m_Layer: 0 + m_Name: Cube (55) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &413120542 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 413120541} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.21999997, y: -1.99, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 55 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &413120543 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 413120541} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &413120544 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 413120541} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &413120545 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 413120541} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &463005126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 463005127} + - component: {fileID: 463005130} + - component: {fileID: 463005129} + - component: {fileID: 463005128} + m_Layer: 0 + m_Name: Cube (27) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &463005127 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463005126} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.7499999, y: -1.68, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 27 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &463005128 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463005126} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &463005129 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463005126} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &463005130 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463005126} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &479442312 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 479442313} + - component: {fileID: 479442316} + - component: {fileID: 479442315} + - component: {fileID: 479442314} + m_Layer: 0 + m_Name: Cube (65) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &479442313 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 479442312} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.6199998, y: -0.84000015, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 65 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &479442314 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 479442312} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &479442315 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 479442312} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &479442316 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 479442312} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &562837881 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 562837882} + - component: {fileID: 562837885} + - component: {fileID: 562837884} + - component: {fileID: 562837883} + m_Layer: 0 + m_Name: Cube (21) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &562837882 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562837881} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.8899999, y: -0.65, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &562837883 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562837881} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &562837884 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562837881} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &562837885 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562837881} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &583896090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 583896091} + - component: {fileID: 583896094} + - component: {fileID: 583896093} + - component: {fileID: 583896092} + m_Layer: 0 + m_Name: Cube (46) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &583896091 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583896090} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.37999988, y: 1.24, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 46 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &583896092 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583896090} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &583896093 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583896090} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &583896094 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583896090} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &595308269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 595308270} + - component: {fileID: 595308273} + - component: {fileID: 595308272} + - component: {fileID: 595308271} + m_Layer: 0 + m_Name: Cube (26) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &595308270 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595308269} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.31, y: -1.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 26 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &595308271 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595308269} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &595308272 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595308269} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &595308273 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595308269} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &620404927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 620404928} + - component: {fileID: 620404931} + - component: {fileID: 620404930} + - component: {fileID: 620404929} + m_Layer: 0 + m_Name: Cube (48) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &620404928 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 620404927} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.37999988, y: 1.24, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 48 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &620404929 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 620404927} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &620404930 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 620404927} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &620404931 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 620404927} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &625095847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 625095848} + - component: {fileID: 625095851} + - component: {fileID: 625095850} + - component: {fileID: 625095849} + m_Layer: 0 + m_Name: Cube (50) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &625095848 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625095847} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.4599998, y: -0.64999986, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 50 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &625095849 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625095847} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &625095850 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625095847} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &625095851 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625095847} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &639721189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 639721190} + - component: {fileID: 639721193} + - component: {fileID: 639721192} + - component: {fileID: 639721191} + m_Layer: 0 + m_Name: Cube (15) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &639721190 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639721189} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.39, y: 0.86999995, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &639721191 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639721189} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &639721192 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639721189} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &639721193 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639721189} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &675603362 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 675603363} + - component: {fileID: 675603366} + - component: {fileID: 675603365} + - component: {fileID: 675603364} + m_Layer: 0 + m_Name: Cube (37) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &675603363 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675603362} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.12999994, y: -0.69, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 37 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &675603364 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675603362} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &675603365 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675603362} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &675603366 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675603362} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &698649180 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 698649181} + - component: {fileID: 698649184} + - component: {fileID: 698649183} + - component: {fileID: 698649182} + m_Layer: 0 + m_Name: Cube (69) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &698649181 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698649180} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.64, y: -1.03, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 69 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &698649182 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698649180} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &698649183 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698649180} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &698649184 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698649180} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &785337419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785337420} + - component: {fileID: 785337423} + - component: {fileID: 785337422} + - component: {fileID: 785337421} + m_Layer: 0 + m_Name: Cube (18) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &785337420 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785337419} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.9300001, y: 1.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &785337421 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785337419} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &785337422 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785337419} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &785337423 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785337419} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &833029526 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 833029527} + - component: {fileID: 833029530} + - component: {fileID: 833029529} + - component: {fileID: 833029528} + m_Layer: 0 + m_Name: Cube (29) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &833029527 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833029526} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.7499999, y: -1.6799998, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 29 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &833029528 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833029526} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &833029529 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833029526} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &833029530 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833029526} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &888968489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 888968490} + - component: {fileID: 888968493} + - component: {fileID: 888968492} + - component: {fileID: 888968491} + m_Layer: 0 + m_Name: Cube (22) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &888968490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 888968489} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.8599999, y: -0.18000007, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 22 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &888968491 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 888968489} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &888968492 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 888968489} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &888968493 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 888968489} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &892195991 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 892195992} + - component: {fileID: 892195995} + - component: {fileID: 892195994} + - component: {fileID: 892195993} + m_Layer: 0 + m_Name: Cube (34) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &892195992 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892195991} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.71, y: 0, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 34 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &892195993 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892195991} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &892195994 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892195991} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &892195995 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892195991} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &965174773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 965174774} + - component: {fileID: 965174777} + - component: {fileID: 965174776} + - component: {fileID: 965174775} + m_Layer: 0 + m_Name: Cube (7) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &965174774 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 965174773} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.84, y: 0.15, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &965174775 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 965174773} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &965174776 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 965174773} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &965174777 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 965174773} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &998402979 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 998402980} + - component: {fileID: 998402983} + - component: {fileID: 998402982} + - component: {fileID: 998402981} + m_Layer: 0 + m_Name: Cube (25) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &998402980 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998402979} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.77, y: -1.49, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 25 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &998402981 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998402979} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &998402982 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998402979} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &998402983 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998402979} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1000386788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1000386789} + - component: {fileID: 1000386792} + - component: {fileID: 1000386791} + - component: {fileID: 1000386790} + m_Layer: 0 + m_Name: Cube (32) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1000386789 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000386788} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.24, y: 0.8099999, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 32 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1000386790 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000386788} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1000386791 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000386788} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1000386792 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000386788} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1011099535 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1011099536} + - component: {fileID: 1011099539} + - component: {fileID: 1011099538} + - component: {fileID: 1011099537} + m_Layer: 0 + m_Name: Cube (36) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1011099536 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1011099535} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.69, y: -0.19, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 36 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1011099537 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1011099535} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1011099538 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1011099535} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1011099539 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1011099535} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1070148084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1070148085} + - component: {fileID: 1070148088} + - component: {fileID: 1070148087} + - component: {fileID: 1070148086} + m_Layer: 0 + m_Name: Cube (14) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1070148085 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070148084} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.95, y: 1.3699999, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1070148086 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070148084} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1070148087 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070148084} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1070148088 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070148084} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1074652028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1074652029} + - component: {fileID: 1074652032} + - component: {fileID: 1074652031} + - component: {fileID: 1074652030} + m_Layer: 0 + m_Name: Cube (56) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1074652029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074652028} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.68000007, y: -1.6800001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 56 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1074652030 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074652028} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1074652031 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074652028} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1074652032 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074652028} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1120521016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1120521017} + - component: {fileID: 1120521020} + - component: {fileID: 1120521019} + - component: {fileID: 1120521018} + m_Layer: 0 + m_Name: Cube (28) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1120521017 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120521016} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.31, y: -1.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 28 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1120521018 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120521016} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1120521019 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120521016} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1120521020 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120521016} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1146013520 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1146013526} + - component: {fileID: 1146013521} + - component: {fileID: 1146013524} + - component: {fileID: 1146013525} + - component: {fileID: 1146013523} + - component: {fileID: 1146013522} + - component: {fileID: 1146013534} + - component: {fileID: 1146013531} + - component: {fileID: 1146013533} + - component: {fileID: 1146013528} + - component: {fileID: 1146013535} + - component: {fileID: 1146013527} + - component: {fileID: 1146013532} + - component: {fileID: 1146013530} + - component: {fileID: 1146013529} + - component: {fileID: 1146013536} + - component: {fileID: 1146013538} + - component: {fileID: 1146013537} + m_Layer: 0 + m_Name: HitDestroyFlowchart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1146013521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 173.56293, y: -45.877987} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 544 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: + - {fileID: 1146013524} + selectedCommands: [] + variables: + - {fileID: 1146013522} + - {fileID: 1146013528} + - {fileID: 1146013527} + - {fileID: 1146013537} + description: 'Collects all gameobjects hit by a cast in a Collection. + + If they are tagged as ''Player'' and destroys them inside a Loop' + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!114 &1146013522 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: mousePos + value: {x: 0, y: 0, z: -10} +--- !u!114 &1146013523 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44a4b238cb3af004bbae4a6145089ea2, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 175082097} + castType: 3 + position1: + vector3Ref: {fileID: 1146013522} + vector3Val: {x: 0, y: 0, z: 0} + direction: + vector3Ref: {fileID: 1146013537} + vector3Val: {x: 0, y: 0, z: 1} + maxDistance: + floatRef: {fileID: 0} + floatVal: Infinity + capsulePosition2: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + radius: + floatRef: {fileID: 0} + floatVal: 0.5 + boxHalfExtends: + vector3Ref: {fileID: 0} + vector3Val: {x: 0.5, y: 0.5, z: 0.5} + boxOrientation: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 1} + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + queryTriggerInteraction: 0 +--- !u!114 &1146013524 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 225 + y: 109 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: New Block + description: + eventHandler: {fileID: 1146013525} + commandList: + - {fileID: 1146013536} + - {fileID: 1146013538} + - {fileID: 1146013523} + - {fileID: 1146013535} + - {fileID: 1146013534} + - {fileID: 1146013533} + - {fileID: 1146013532} + - {fileID: 1146013529} + - {fileID: 1146013531} + - {fileID: 1146013530} + suppressAllAutoSelections: 0 +--- !u!114 &1146013525 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 000864f8e9e1748a39807861d0e60e29, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1146013524} + suppressBlockAutoSelect: 0 + keyPressType: 0 + keyCode: 323 +--- !u!4 &1146013526 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1146013527 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4580f28dd8581476b810b38eea2f1316, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: tempGOTag + value: +--- !u!114 &1146013528 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1941e052c0ed4280b25507cd2e6ad8f, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: tempGO + value: {fileID: 0} +--- !u!114 &1146013529 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d81be3d7e84da460788dccea95a3313a, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 8 + indentLevel: 2 + _targetGameObject: + gameObjectRef: {fileID: 1146013528} + gameObjectVal: {fileID: 0} + destroyInXSeconds: + floatRef: {fileID: 0} + floatVal: 0 + targetGameObjectOLD: {fileID: 0} +--- !u!114 &1146013530 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 7 + indentLevel: 0 +--- !u!114 &1146013531 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 1 +--- !u!114 &1146013532 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 1 + compareOperator: 0 + anyVar: + variable: {fileID: 1146013527} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: Player + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1146013533 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 121c2a4d38c149443adb81911f0fdd61, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + indentLevel: 1 + getOrSet: 0 + property: 5 + gameObjectVar: {fileID: 1146013528} + inOutVar: {fileID: 1146013527} +--- !u!114 &1146013534 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ce547d5384ce3a41b7142cab8ab41dd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 175082097} + item: {fileID: 1146013528} +--- !u!114 &1146013535 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59ae026a39db9cf4d8453309fa6192db, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 175082097} +--- !u!114 &1146013536 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b071472a9dcdc7469059042e2e6e50d, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 9 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 175082097} +--- !u!114 &1146013537 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: mouseDir + value: {x: 0, y: 0, z: 0} +--- !u!114 &1146013538 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1146013520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb32240870e5bf545a0dafba446d3990, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 10 + indentLevel: 0 + screenPosition: {fileID: 0} + viewPosition: {fileID: 0} + worldPosition: {fileID: 1146013522} + worldDirection: {fileID: 1146013537} +--- !u!1 &1150441929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1150441930} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1150441930 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1150441929} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 141581415} + - {fileID: 2110159384} + - {fileID: 1943439920} + - {fileID: 1517215451} + - {fileID: 200463956} + - {fileID: 1288869899} + - {fileID: 1280324144} + - {fileID: 965174774} + - {fileID: 1971605045} + - {fileID: 354602045} + - {fileID: 21451435} + - {fileID: 2000822309} + - {fileID: 244773532} + - {fileID: 2133158178} + - {fileID: 1070148085} + - {fileID: 639721190} + - {fileID: 380041651} + - {fileID: 1402158850} + - {fileID: 785337420} + - {fileID: 1386460268} + - {fileID: 47038204} + - {fileID: 562837882} + - {fileID: 888968490} + - {fileID: 1553656649} + - {fileID: 1392567621} + - {fileID: 998402980} + - {fileID: 595308270} + - {fileID: 463005127} + - {fileID: 1120521017} + - {fileID: 833029527} + - {fileID: 21838328} + - {fileID: 1293744907} + - {fileID: 1000386789} + - {fileID: 266806310} + - {fileID: 892195992} + - {fileID: 2078557966} + - {fileID: 1011099536} + - {fileID: 675603363} + - {fileID: 59587198} + - {fileID: 346647733} + - {fileID: 2007306859} + - {fileID: 172560606} + - {fileID: 1561284550} + - {fileID: 212417816} + - {fileID: 1353184081} + - {fileID: 1413598539} + - {fileID: 583896091} + - {fileID: 167280875} + - {fileID: 620404928} + - {fileID: 1492071062} + - {fileID: 625095848} + - {fileID: 1490237944} + - {fileID: 1841943086} + - {fileID: 168935774} + - {fileID: 48243587} + - {fileID: 413120542} + - {fileID: 1074652029} + - {fileID: 1951729779} + - {fileID: 1389008368} + - {fileID: 1776546316} + - {fileID: 2065645411} + - {fileID: 49064038} + - {fileID: 1974131030} + - {fileID: 1574755420} + - {fileID: 1952286523} + - {fileID: 479442313} + - {fileID: 1293705304} + - {fileID: 1229256288} + - {fileID: 1850068995} + - {fileID: 698649181} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1229256287 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229256288} + - component: {fileID: 1229256291} + - component: {fileID: 1229256290} + - component: {fileID: 1229256289} + m_Layer: 0 + m_Name: Cube (67) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1229256288 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229256287} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.64, y: -1.0300002, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 67 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1229256289 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229256287} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1229256290 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229256287} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1229256291 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229256287} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1246222927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1246222940} + - component: {fileID: 1246222939} + - component: {fileID: 1246222938} + - component: {fileID: 1246222937} + - component: {fileID: 1246222936} + - component: {fileID: 1246222935} + - component: {fileID: 1246222934} + - component: {fileID: 1246222933} + - component: {fileID: 1246222932} + - component: {fileID: 1246222931} + - component: {fileID: 1246222930} + - component: {fileID: 1246222929} + - component: {fileID: 1246222928} + - component: {fileID: 1246222941} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1246222928 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dfc8e8d5ce363ec43815496d321b4d55, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 + lhs: + vector3Ref: {fileID: 1246222931} + vector3Val: {x: 0, y: 0, z: 0} + rhs: + vector3Ref: {fileID: 1246222932} + vector3Val: {x: 5, y: 5, z: 5} + output: + vector3Ref: {fileID: 1246222932} + vector3Val: {x: 0, y: 0, z: 0} + operation: 0 +--- !u!114 &1246222929 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 633bea14077b44e19956e8113fbac7a4, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: selfTrans + value: {fileID: 1246222940} +--- !u!114 &1246222930 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9c3eb9160fdceb448b5e55362ac1ee4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 0 + getOrSet: 1 + property: 11 + transformVar: {fileID: 1246222929} + inOutVar: {fileID: 1246222932} +--- !u!114 &1246222931 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: forwardOffset + value: {x: 0, y: 0, z: 5} +--- !u!114 &1246222932 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: worldMousePos + value: {x: 0, y: 0, z: 0} +--- !u!114 &1246222933 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb32240870e5bf545a0dafba446d3990, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + screenPosition: {fileID: 0} + viewPosition: {fileID: 0} + worldPosition: {fileID: 1246222932} + worldDirection: {fileID: 1246222931} +--- !u!114 &1246222934 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2fbef54b0b0adb41ab9b447a8f3cbdb, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 1246222935} + suppressBlockAutoSelect: 1 + FireOn: 1 +--- !u!114 &1246222935 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 303 + y: 62 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: New Block + description: + eventHandler: {fileID: 1246222934} + commandList: + - {fileID: 1246222933} + - {fileID: 1246222928} + - {fileID: 1246222941} + - {fileID: 1246222930} + suppressAllAutoSelections: 0 +--- !u!114 &1246222936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 0, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 400 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: + - {fileID: 1246222935} + selectedCommands: + - {fileID: 1246222928} + variables: + - {fileID: 1246222932} + - {fileID: 1246222931} + - {fileID: 1246222929} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!135 &1246222937 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1246222938 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 2bcc72af9791dfb448148e231fb8c7ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1246222939 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1246222940 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -7.26} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1246222941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1246222927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dfc8e8d5ce363ec43815496d321b4d55, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + indentLevel: 0 + lhs: + vector3Ref: {fileID: 1246222931} + vector3Val: {x: 0, y: 0, z: 0} + rhs: + vector3Ref: {fileID: 0} + vector3Val: {x: 5, y: 5, z: 5} + output: + vector3Ref: {fileID: 1246222931} + vector3Val: {x: 0, y: 0, z: 0} + operation: 0 +--- !u!1 &1280324143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1280324144} + - component: {fileID: 1280324147} + - component: {fileID: 1280324146} + - component: {fileID: 1280324145} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1280324144 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280324143} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.4, y: 0.65, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1280324145 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280324143} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1280324146 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280324143} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1280324147 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280324143} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1282861084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1282861087} + - component: {fileID: 1282861086} + - component: {fileID: 1282861085} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1282861085 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282861084} + m_Enabled: 1 +--- !u!20 &1282861086 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282861084} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1282861087 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282861084} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1288869898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1288869899} + - component: {fileID: 1288869902} + - component: {fileID: 1288869901} + - component: {fileID: 1288869900} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1288869899 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288869898} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.8600001, y: 0.33999997, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1288869900 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288869898} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1288869901 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288869898} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1288869902 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288869898} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1293705303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1293705304} + - component: {fileID: 1293705307} + - component: {fileID: 1293705306} + - component: {fileID: 1293705305} + m_Layer: 0 + m_Name: Cube (66) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1293705304 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293705303} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.0799999, y: -0.5300002, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 66 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1293705305 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293705303} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1293705306 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293705303} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1293705307 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293705303} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1293744906 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1293744907} + - component: {fileID: 1293744910} + - component: {fileID: 1293744909} + - component: {fileID: 1293744908} + m_Layer: 0 + m_Name: Cube (31) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1293744907 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293744906} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.27, y: 0.33999997, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 31 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1293744908 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293744906} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1293744909 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293744906} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1293744910 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293744906} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1353184080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1353184081} + - component: {fileID: 1353184084} + - component: {fileID: 1353184083} + - component: {fileID: 1353184082} + m_Layer: 0 + m_Name: Cube (44) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1353184081 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353184080} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.3999999, y: 1.4300001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 44 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1353184082 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353184080} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1353184083 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353184080} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1353184084 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353184080} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1386460267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1386460268} + - component: {fileID: 1386460271} + - component: {fileID: 1386460270} + - component: {fileID: 1386460269} + m_Layer: 0 + m_Name: Cube (19) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1386460268 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386460267} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.37, y: 0.68, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1386460269 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386460267} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1386460270 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386460267} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1386460271 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386460267} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1389008367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1389008368} + - component: {fileID: 1389008371} + - component: {fileID: 1389008370} + - component: {fileID: 1389008369} + m_Layer: 0 + m_Name: Cube (58) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1389008368 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389008367} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.68000007, y: -1.6800001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 58 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1389008369 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389008367} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1389008370 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389008367} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1389008371 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389008367} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1392567620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1392567621} + - component: {fileID: 1392567624} + - component: {fileID: 1392567623} + - component: {fileID: 1392567622} + m_Layer: 0 + m_Name: Cube (24) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1392567621 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392567620} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.33, y: -0.99, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 24 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1392567622 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392567620} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1392567623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392567620} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1392567624 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392567620} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1402158849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1402158850} + - component: {fileID: 1402158853} + - component: {fileID: 1402158852} + - component: {fileID: 1402158851} + m_Layer: 0 + m_Name: Cube (17) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1402158850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402158849} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.37, y: 0.67999995, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1402158851 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402158849} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1402158852 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402158849} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1402158853 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402158849} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1413598538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1413598539} + - component: {fileID: 1413598542} + - component: {fileID: 1413598541} + - component: {fileID: 1413598540} + m_Layer: 0 + m_Name: Cube (45) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1413598539 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413598538} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.84, y: 0.93, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 45 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1413598540 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413598538} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1413598541 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413598538} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1413598542 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413598538} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1490237943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1490237944} + - component: {fileID: 1490237947} + - component: {fileID: 1490237946} + - component: {fileID: 1490237945} + m_Layer: 0 + m_Name: Cube (51) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1490237944 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490237943} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.10000008, y: -1.1500001, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 51 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1490237945 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490237943} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1490237946 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490237943} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1490237947 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490237943} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1492071061 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1492071062} + - component: {fileID: 1492071065} + - component: {fileID: 1492071064} + - component: {fileID: 1492071063} + m_Layer: 0 + m_Name: Cube (49) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1492071062 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492071061} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.18000019, y: 0.7400002, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 49 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1492071063 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492071061} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1492071064 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492071061} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1492071065 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492071061} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1517215450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1517215451} + - component: {fileID: 1517215454} + - component: {fileID: 1517215453} + - component: {fileID: 1517215452} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1517215451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517215450} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.39, y: 1.15, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1517215452 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517215450} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1517215453 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517215450} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1517215454 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517215450} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1553656648 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1553656649} + - component: {fileID: 1553656652} + - component: {fileID: 1553656651} + - component: {fileID: 1553656650} + m_Layer: 0 + m_Name: Cube (23) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1553656649 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553656648} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.3, y: -0.67999995, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 23 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1553656650 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553656648} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1553656651 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553656648} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1553656652 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553656648} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1561284549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1561284550} + - component: {fileID: 1561284553} + - component: {fileID: 1561284552} + - component: {fileID: 1561284551} + m_Layer: 0 + m_Name: Cube (42) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1561284550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561284549} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.9299999, y: 2.24, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 42 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1561284551 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561284549} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1561284552 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561284549} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1561284553 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561284549} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1574755419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1574755420} + - component: {fileID: 1574755423} + - component: {fileID: 1574755422} + - component: {fileID: 1574755421} + m_Layer: 0 + m_Name: Cube (63) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1574755420 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574755419} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.0899999, y: -0.03000021, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 63 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1574755421 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574755419} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1574755422 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574755419} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1574755423 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1574755419} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1776546315 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1776546316} + - component: {fileID: 1776546319} + - component: {fileID: 1776546318} + - component: {fileID: 1776546317} + m_Layer: 0 + m_Name: Cube (59) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1776546316 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776546315} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.2400001, y: -2.1799998, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 59 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1776546317 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776546315} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1776546318 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776546315} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1776546319 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776546315} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1841943085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1841943086} + - component: {fileID: 1841943089} + - component: {fileID: 1841943088} + - component: {fileID: 1841943087} + m_Layer: 0 + m_Name: Cube (52) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1841943086 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841943085} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.13, y: -0.68, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 52 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1841943087 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841943085} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1841943088 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841943085} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1841943089 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841943085} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1850068994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1850068995} + - component: {fileID: 1850068998} + - component: {fileID: 1850068997} + - component: {fileID: 1850068996} + m_Layer: 0 + m_Name: Cube (68) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1850068995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850068994} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.0799999, y: -0.5300002, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 68 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1850068996 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850068994} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1850068997 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850068994} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1850068998 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850068994} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1943439919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1943439920} + - component: {fileID: 1943439923} + - component: {fileID: 1943439922} + - component: {fileID: 1943439921} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1943439920 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943439919} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.95, y: 1.65, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1943439921 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943439919} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1943439922 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943439919} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1943439923 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943439919} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1951729778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1951729779} + - component: {fileID: 1951729782} + - component: {fileID: 1951729781} + - component: {fileID: 1951729780} + m_Layer: 0 + m_Name: Cube (57) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1951729779 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951729778} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.2400001, y: -2.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 57 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1951729780 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951729778} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1951729781 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951729778} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1951729782 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951729778} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1952286522 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1952286523} + - component: {fileID: 1952286526} + - component: {fileID: 1952286525} + - component: {fileID: 1952286524} + m_Layer: 0 + m_Name: Cube (64) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1952286523 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952286522} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.059999943, y: -0.34000015, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 64 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1952286524 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952286522} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1952286525 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952286522} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1952286526 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952286522} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1971605044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1971605045} + - component: {fileID: 1971605048} + - component: {fileID: 1971605047} + - component: {fileID: 1971605046} + m_Layer: 0 + m_Name: Cube (8) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1971605045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1971605044} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.4, y: 0.65, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1971605046 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1971605044} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1971605047 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1971605044} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1971605048 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1971605044} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1974131029 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1974131030} + - component: {fileID: 1974131033} + - component: {fileID: 1974131032} + - component: {fileID: 1974131031} + m_Layer: 0 + m_Name: Cube (62) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1974131030 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1974131029} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.52999985, y: 0.46999985, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 62 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1974131031 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1974131029} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1974131032 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1974131029} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1974131033 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1974131029} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2000822308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2000822309} + - component: {fileID: 2000822312} + - component: {fileID: 2000822311} + - component: {fileID: 2000822310} + m_Layer: 0 + m_Name: Cube (11) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2000822309 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000822308} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.51, y: 1.7099999, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2000822310 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000822308} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2000822311 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000822308} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2000822312 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000822308} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2007306858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2007306859} + - component: {fileID: 2007306862} + - component: {fileID: 2007306861} + - component: {fileID: 2007306860} + m_Layer: 0 + m_Name: Cube (40) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2007306859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007306858} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.5199997, y: 2.2700002, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 40 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2007306860 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007306858} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2007306861 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007306858} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2007306862 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007306858} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2065645410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2065645411} + - component: {fileID: 2065645414} + - component: {fileID: 2065645413} + - component: {fileID: 2065645412} + m_Layer: 0 + m_Name: Cube (60) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2065645411 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065645410} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.059999943, y: 0.5, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 60 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2065645412 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065645410} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2065645413 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065645410} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2065645414 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065645410} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2072014588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2072014592} + - component: {fileID: 2072014591} + - component: {fileID: 2072014590} + - component: {fileID: 2072014589} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2072014589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072014588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d49b7c1bcd2e07499844da127be038d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &2072014590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072014588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &2072014591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072014588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &2072014592 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072014588} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078557965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078557966} + - component: {fileID: 2078557969} + - component: {fileID: 2078557968} + - component: {fileID: 2078557967} + m_Layer: 0 + m_Name: Cube (35) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2078557966 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078557965} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.1500001, y: -0.50000006, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 35 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2078557967 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078557965} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2078557968 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078557965} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2078557969 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078557965} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2110159383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2110159384} + - component: {fileID: 2110159387} + - component: {fileID: 2110159386} + - component: {fileID: 2110159385} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2110159384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2110159383} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.98, y: 1.18, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2110159385 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2110159383} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2110159386 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2110159383} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2110159387 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2110159383} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2133158177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2133158178} + - component: {fileID: 2133158181} + - component: {fileID: 2133158180} + - component: {fileID: 2133158179} + m_Layer: 0 + m_Name: Cube (13) + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2133158178 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133158177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.9200001, y: 1.68, z: 10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150441930} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2133158179 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133158177} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2133158180 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133158177} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2133158181 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133158177} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/FungusExamples/Collection/CollectionPhysics.unity.meta b/Assets/FungusExamples/Collection/CollectionPhysics.unity.meta new file mode 100644 index 00000000..1fd28a73 --- /dev/null +++ b/Assets/FungusExamples/Collection/CollectionPhysics.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90f776c055f4f754ca7cb96fc41e5c9e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FungusExamples/Collection/UnlitSphere.mat b/Assets/FungusExamples/Collection/UnlitSphere.mat new file mode 100644 index 00000000..341d7a72 --- /dev/null +++ b/Assets/FungusExamples/Collection/UnlitSphere.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UnlitSphere + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/FungusExamples/Collection/UnlitSphere.mat.meta b/Assets/FungusExamples/Collection/UnlitSphere.mat.meta new file mode 100644 index 00000000..2deebcbb --- /dev/null +++ b/Assets/FungusExamples/Collection/UnlitSphere.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2bcc72af9791dfb448148e231fb8c7ee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FungusExamples/Variables/tempvarcol.unity b/Assets/FungusExamples/Variables/tempvarcol.unity new file mode 100644 index 00000000..376a29a6 --- /dev/null +++ b/Assets/FungusExamples/Variables/tempvarcol.unity @@ -0,0 +1,1571 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &37731967 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 37731974} + - component: {fileID: 37731973} + - component: {fileID: 37731972} + - component: {fileID: 37731970} + - component: {fileID: 37731969} + - component: {fileID: 37731976} + - component: {fileID: 37731978} + - component: {fileID: 37731977} + - component: {fileID: 37731975} + - component: {fileID: 37731971} + - component: {fileID: 37731968} + - component: {fileID: 37731983} + - component: {fileID: 37731982} + - component: {fileID: 37731981} + - component: {fileID: 37731980} + - component: {fileID: 37731979} + - component: {fileID: 37731984} + - component: {fileID: 37731986} + - component: {fileID: 37731985} + - component: {fileID: 37731987} + - component: {fileID: 37731988} + - component: {fileID: 37731989} + - component: {fileID: 37731993} + - component: {fileID: 37731992} + - component: {fileID: 37731991} + - component: {fileID: 37731990} + - component: {fileID: 37731995} + - component: {fileID: 37731994} + - component: {fileID: 37731999} + - component: {fileID: 37731998} + - component: {fileID: 37731997} + - component: {fileID: 37731996} + - component: {fileID: 37732001} + - component: {fileID: 37732000} + - component: {fileID: 37732002} + - component: {fileID: 37732004} + - component: {fileID: 37732003} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &37731968 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a30a3b6902ecde54ea81d503f6a2b27e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + variableToUse: {fileID: 37731990} + onlyIfUnique: + booleanRef: {fileID: 0} + booleanVal: 0 +--- !u!114 &37731969 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 37731972} + waitForFrames: 1 +--- !u!114 &37731970 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: IntVar + value: 5 +--- !u!114 &37731971 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a30a3b6902ecde54ea81d503f6a2b27e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 210858193} + variableToUse: {fileID: 37731970} + onlyIfUnique: + booleanRef: {fileID: 0} + booleanVal: 0 +--- !u!114 &37731972 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 75 + y: 173 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: New Block + description: + eventHandler: {fileID: 37731969} + commandList: + - {fileID: 37731975} + - {fileID: 37731971} + - {fileID: 37731968} +--- !u!114 &37731973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: -1, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 402 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: + - {fileID: 37731999} + selectedCommands: + - {fileID: 37731996} + variables: + - {fileID: 37731970} + - {fileID: 37731976} + - {fileID: 37731978} + - {fileID: 37731977} + - {fileID: 37731990} + - {fileID: 37732004} + - {fileID: 37732003} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!4 &37731974 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &37731975 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a30a3b6902ecde54ea81d503f6a2b27e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} + variableToUse: {fileID: 37731970} + onlyIfUnique: + booleanRef: {fileID: 0} + booleanVal: 0 +--- !u!114 &37731976 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 705fa1ac97df74e3a84ff952ffd923f1, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: FloatVar + value: 0 +--- !u!114 &37731977 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72f840a548df62b49846fc51a60426fe, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: IntVarCol + value: {fileID: 210858193} +--- !u!114 &37731978 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72f840a548df62b49846fc51a60426fe, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: IntCol + value: {fileID: 649623691} +--- !u!114 &37731979 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fab8abf0343545abbfebd9a7b7b34bd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 7 + indentLevel: 1 + logType: 0 + logMessage: + stringRef: {fileID: 0} + stringVal: '{$IntVar}' +--- !u!114 &37731980 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 0 +--- !u!114 &37731981 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ce547d5384ce3a41b7142cab8ab41dd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 0 + collection: + collectionRef: {fileID: 37731978} + collectionVal: {fileID: 649623691} + item: {fileID: 37731970} +--- !u!114 &37731982 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 37731983} + waitForFrames: 3 +--- !u!114 &37731983 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 81 + y: 296 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 4 + blockName: New Block1 + description: + eventHandler: {fileID: 37731982} + commandList: + - {fileID: 37731981} + - {fileID: 37731979} + - {fileID: 37731980} + - {fileID: 37731984} + - {fileID: 37731985} + - {fileID: 37731986} + - {fileID: 37731987} + - {fileID: 37731988} + - {fileID: 37731989} +--- !u!114 &37731984 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 75a3711bc9cd44e429e15e10f6029fae, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 8 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} + variableToUse: {fileID: 37731970} + integer: {fileID: 37731970} +--- !u!114 &37731985 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 10 + indentLevel: 0 + anyVar: + variable: {fileID: 37731970} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 5 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &37731986 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59afe81b26e37ea4ea10dd91dfeee937, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 9 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} + variableToUse: {fileID: 37731970} + integer: {fileID: 37731970} + lastInsteadOfFirst: + booleanRef: {fileID: 0} + booleanVal: 1 +--- !u!114 &37731987 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf40659a274400d40856f146223798ac, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 11 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} + variableToUse: {fileID: 37731970} + index: + integerRef: {fileID: 0} + integerVal: 2 + getset: 1 +--- !u!114 &37731988 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00093f39e8583954ba5935bca806f0f1, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 12 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} +--- !u!114 &37731989 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7359fcb744d14a41acae4b3a2e34b73, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 13 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 649623691} +--- !u!114 &37731990 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1941e052c0ed4280b25507cd2e6ad8f, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: GOVar + value: {fileID: 1462591783} +--- !u!114 &37731991 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a30a3b6902ecde54ea81d503f6a2b27e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + variableToUse: {fileID: 37731990} + onlyIfUnique: + booleanRef: {fileID: 0} + booleanVal: 0 +--- !u!114 &37731992 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 37731993} + waitForFrames: 2 +--- !u!114 &37731993 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 76 + y: 231 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 14 + blockName: New Block2 + description: + eventHandler: {fileID: 37731992} + commandList: + - {fileID: 37731991} + - {fileID: 37731995} + - {fileID: 37731994} +--- !u!114 &37731994 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8509f58e038dd8c46b98cab78d34e06a, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 17 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + tagString: + stringRef: {fileID: 0} + stringVal: Collection +--- !u!114 &37731995 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b071472a9dcdc7469059042e2e6e50d, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} +--- !u!114 &37731996 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5996bc0e902a19f4fa257341b0691de3, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 20 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + shape: 0 + position1: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + capsulePosition2: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 1, z: 0} + radius: + floatRef: {fileID: 0} + floatVal: 0.5 + boxHalfExtends: + vector3Ref: {fileID: 0} + vector3Val: {x: 0.5, y: 0.5, z: 0.5} + boxOrientation: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 1} + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + queryTriggerInteraction: 0 +--- !u!114 &37731997 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b071472a9dcdc7469059042e2e6e50d, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 19 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} +--- !u!114 &37731998 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 37731999} + waitForFrames: 4 +--- !u!114 &37731999 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 82 + y: 354 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 18 + blockName: New Block3 + description: + eventHandler: {fileID: 37731998} + commandList: + - {fileID: 37731997} + - {fileID: 37731996} + - {fileID: 37732001} + - {fileID: 37732000} + - {fileID: 37732002} +--- !u!114 &37732000 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44a4b238cb3af004bbae4a6145089ea2, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 22 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + shape: 1 + position1: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: -1, z: 0} + capsulePosition2: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + radius: + floatRef: {fileID: 0} + floatVal: 0.5 + boxHalfExtends: + vector3Ref: {fileID: 0} + vector3Val: {x: 0.5, y: 0.5, z: 0.5} + boxOrientation: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 1} + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + queryTriggerInteraction: 0 + direction: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 2, z: 0} + maxDistance: + floatRef: {fileID: 0} + floatVal: 3.4028235e+38 +--- !u!114 &37732001 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b071472a9dcdc7469059042e2e6e50d, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 21 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} +--- !u!114 &37732002 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c27aec18d802f45429190093660305e4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 23 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 1130536777} + shape: 1 + position1: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + radius: + floatRef: {fileID: 0} + floatVal: 0.5 + shapeSize: + vector3Ref: {fileID: 0} + vector3Val: {x: 0.5, y: 0.5, z: 0.5} + shapeAngle: + floatRef: {fileID: 0} + floatVal: 0 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + minDepth: + floatRef: {fileID: 0} + floatVal: -Infinity + maxDepth: + floatRef: {fileID: 0} + floatVal: Infinity + capsuleDirection: 0 +--- !u!114 &37732003 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 516fbed763cd80c44835637e64a1da18, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var1 + value: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &37732004 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37731967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c0d1ebdecfe2cb147bc3558abb25d154, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var + value: {x: 0, y: 0, z: 0, w: 1} +--- !u!1 &210858192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 210858194} + - component: {fileID: 210858193} + m_Layer: 0 + m_Name: IntVarCollection + m_TagString: Collection + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &210858193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210858192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a852e2fd041ceda439efd62fd08491ca, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: [] +--- !u!4 &210858194 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210858192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &649623689 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 649623690} + - component: {fileID: 649623691} + m_Layer: 0 + m_Name: IntCollection + m_TagString: Collection + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &649623690 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649623689} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &649623691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649623689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221f0f261cfcb8a40b9f79cbc51a9148, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: 64000000020000001e00000004000000050000000500000005000000 +--- !u!1 &758729195 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758729197} + - component: {fileID: 758729196} + m_Layer: 0 + m_Name: _FungusState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &758729196 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758729195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} + m_Name: + m_EditorClassIdentifier: + selectedFlowchart: {fileID: 37731973} +--- !u!4 &758729197 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758729195} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1130536776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1130536778} + - component: {fileID: 1130536777} + m_Layer: 0 + m_Name: GameObjectCollection + m_TagString: Collection + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1130536777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130536776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 150bd15698fd79541ace6f07d5304837, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: [] +--- !u!4 &1130536778 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130536776} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1462591783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1462591786} + - component: {fileID: 1462591785} + - component: {fileID: 1462591784} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1462591784 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462591783} + m_Enabled: 1 +--- !u!20 &1462591785 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462591783} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1462591786 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462591783} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1645508181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1645508185} + - component: {fileID: 1645508184} + - component: {fileID: 1645508183} + - component: {fileID: 1645508182} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1645508182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645508181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1645508183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645508181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1645508184 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645508181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1645508185 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645508181} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1696218256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1696218260} + - component: {fileID: 1696218259} + - component: {fileID: 1696218258} + - component: {fileID: 1696218257} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1696218257 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696218256} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1696218258 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696218256} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1696218259 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696218256} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1696218260 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696218256} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1959819937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1959819939} + - component: {fileID: 1959819938} + m_Layer: 0 + m_Name: 2D Poly + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!60 &1959819938 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959819937} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: 0, y: 1} + - {x: -0.95105654, y: 0.30901697} + - {x: -0.5877852, y: -0.80901706} + - {x: 0.58778536, y: -0.80901694} + - {x: 0.9510565, y: 0.30901712} +--- !u!4 &1959819939 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959819937} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/FungusExamples/Variables/tempvarcol.unity.meta b/Assets/FungusExamples/Variables/tempvarcol.unity.meta new file mode 100644 index 00000000..3bee5e71 --- /dev/null +++ b/Assets/FungusExamples/Variables/tempvarcol.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1fc868ea81c9154c90640d45e2fd2ba +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/FungusCollectionTests.cs b/Assets/Tests/Editor/FungusCollectionTests.cs new file mode 100644 index 00000000..dc2fe72b --- /dev/null +++ b/Assets/Tests/Editor/FungusCollectionTests.cs @@ -0,0 +1,373 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using NUnit.Framework; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace Fungus.Tests +{ + [TestFixture] + /// + /// It should be no surprise that all of these work, but it is worth confirming there isn't + /// a silly mistake somewhere + /// + public class CollectionTests + { + private Fungus.GameObjectCollection goCol; + private Fungus.IntCollection intColA, intColB; + + [Test] + public void AddRemove() + { + Assert.NotNull(intColA); + Assert.NotNull(intColB); + + const int Items = 10; + const int ItemIndexToRemove = 3; + const int ValueToRemove = 1; + const int ValueToAddUnique = ValueToRemove; + const int ValueToAddDups = ValueToAddUnique; + const int MinBVal = 7; + const int SizeAAfterBRem = Items - (Items - MinBVal); + + //add items ensure indicies match + for (int i = 0; i < Items; i++) + { + //added at expected index + Assert.AreEqual(i, intColA.Add(i)); + //value at index matches expected value + Assert.AreEqual(i, intColA.Get(i)); + } + + //ensure count matches items added + Assert.AreEqual(Items, intColA.Count); + + var valAtRemoveIndex = intColA.GetSafe(ItemIndexToRemove); + intColA.RemoveAt(ItemIndexToRemove); + Assert.AreEqual(Items - 1, intColA.Count); + + intColA.Insert(ItemIndexToRemove, valAtRemoveIndex); + Assert.AreEqual(valAtRemoveIndex, intColA.GetSafe(ItemIndexToRemove)); + + intColA.Remove(ValueToRemove); + Assert.AreEqual(Items - 1, intColA.Count); + + //multiple calls to add unique to get back the value we removed and ensure unique works + for (int i = 0; i < Items; i++) + { + intColA.AddUnique(ValueToAddUnique); + } + Assert.AreEqual(Items, intColA.Count); + + //now add a bunch of dups, so we can remove all of them + for (int i = 0; i < Items; i++) + { + intColA.Add(ValueToAddDups); + } + intColA.RemoveAll(ValueToAddDups); + Assert.AreEqual(Items - 1, intColA.Count); + + //put it back + intColA.Add(ValueToAddDups); + + //now add a bunch of items to the colB and remove all of them from colA + for (int i = MinBVal; i < Items; i++) + { + intColB.Add(i); + } + intColA.RemoveAll(intColB); + Assert.AreEqual(intColA.Count, SizeAAfterBRem);// all of b should be gone + + intColA.Add(intColB.Get(0)); + intColA.AddUnique(intColB);//ensure intColB[0] doesn't double + Assert.AreEqual(intColA.Count, Items);// all of b should be back in there now + + intColA.Add(intColB); + intColA.Unique(); + Assert.IsTrue(intColA.Count == Items); + + intColA.RemoveAll(intColA);//should be equiv to clear + intColB.Clear(); + Assert.AreEqual(intColA.Count, 0); + Assert.AreEqual(intColB.Count, 0); + + intColA.Clear(); + intColB.Clear(); + } + + [Test] + public void Compat() + { + Assert.IsTrue(intColA.IsElementCompatible(7)); + Assert.IsTrue(intColA.IsCollectionCompatible(intColB)); + Assert.IsTrue(intColA.IsCollectionCompatible(new int[] { 1 })); + Assert.IsTrue(intColA.IsCollectionCompatible(new List())); + Assert.IsTrue(intColA.IsCollectionCompatible(new List())); + + Assert.IsFalse(intColA.IsElementCompatible(Vector3.up)); + Assert.IsFalse(intColA.IsCollectionCompatible(goCol)); + Assert.IsFalse(intColA.IsCollectionCompatible(new Color[] { Color.white })); + Assert.IsFalse(intColA.IsCollectionCompatible(new List())); + Assert.IsFalse(intColA.IsCollectionCompatible(new List())); + } + + [Test] + public void Copy() + { + const int Items = 10; + + for (int i = 0; i < Items; i++) + { + intColA.Add(i); + } + + intColB.CopyFrom(intColA); + + for (int i = 0; i < intColA.Count; i++) + { + Assert.AreEqual(intColA[i], intColB[i]); + } + + //test enumerator + var enumer = intColA.GetEnumerator(); + var index = 0; + while (enumer.MoveNext()) + { + Assert.AreEqual(enumer.Current, intColB[index++]); + } + + intColB.Clear(); + intColB.Add(intColA); + + for (int i = 0; i < intColA.Count; i++) + { + Assert.AreEqual(intColA[i], intColB[i]); + } + + intColB.Clear(); + int[] copyDest = new int[intColA.Count]; + intColA.CopyTo(copyDest, 0); + + for (int i = 0; i < intColA.Count; i++) + { + Assert.AreEqual(intColA[i], copyDest[i]); + } + + //now back again + intColA.Clear(); + intColA.CopyFrom(copyDest); + for (int i = 0; i < intColA.Count; i++) + { + Assert.AreEqual(intColA[i], copyDest[i]); + } + + //now lists + intColA.Clear(); + intColA.CopyFrom(copyDest.ToList()); + for (int i = 0; i < intColA.Count; i++) + { + Assert.AreEqual(intColA[i], copyDest[i]); + } + + intColA.Clear(); + intColB.Clear(); + } + + [OneTimeTearDown] + public void DestroyTestObjects() + { + Object.DestroyImmediate(intColA.gameObject); + Object.DestroyImmediate(intColB.gameObject); + Object.DestroyImmediate(goCol.gameObject); + } + + [Test] + public void Exclusive() + { + const int Items = 10; + const int Step = 5; + + for (int i = 0; i < Items; i++) + { + intColA.Add(i); + intColB.Add(i + Step); + } + + intColA.Exclusive(intColB); + + for (int i = 0; i < intColA.Count; i++) + { + Assert.IsTrue(intColA.GetSafe(i) < Step || intColA.GetSafe(i) >= Items); + } + + Assert.AreEqual(intColA.Count, Items); + + intColA.Clear(); + intColB.Clear(); + } + + [Test] + public void Finds() + { + const int Items = 10; + const int TargetItemValue = 5; + const int TargetItemIndex = 5; + const int BItems = 3; + + for (int i = 0; i < Items; i++) + { + intColA.Add(i); + } + + //add a dup, test first and last, remove dup + intColA.Add(TargetItemValue); + Assert.AreEqual(intColA.IndexOf(TargetItemValue), TargetItemIndex); + Assert.IsTrue(intColA.Contains(TargetItemValue)); + Assert.AreEqual(intColA.Occurrences(TargetItemValue), 2); + Assert.AreEqual(intColA.LastIndexOf(TargetItemValue), intColA.Count - 1); + intColA.RemoveAt(intColA.Count - 1); + + //any of, put some in colb + for (int i = 0; i < BItems; i++) + { + intColB.Add(i); + } + Assert.IsTrue(intColA.ContainsAnyOf(intColB)); + + //clear be, put all of in col b + intColB.Clear(); + intColB.Add(intColA); + + //contain ordered + Assert.IsTrue(intColA.ContainsAllOfOrdered(intColB)); + + //shuffle + EnsureShuffledDifferent(intColB); + + //contain ordered must fail + Assert.IsFalse(intColA.ContainsAllOfOrdered(intColB)); + //contain all of must true + Assert.IsTrue(intColA.ContainsAllOf(intColB)); + + intColA.Clear(); + intColB.Clear(); + } + + [Test] + public void GetSet() + { + const int ValueA = 1, ValueB = 2; + intColA.Add(ValueA); + Assert.AreEqual(ValueA, intColA[0]); + Assert.AreEqual(ValueA, intColA.Get(0)); + Assert.AreEqual(ValueA, intColA.GetSafe(0)); + + intColA.Set(0, ValueB); + Assert.AreEqual(ValueB, intColA[0]); + intColA[0] = ValueA; + Assert.AreEqual(ValueA, intColA[0]); + + intColA.Clear(); + intColB.Clear(); + } + + [OneTimeSetUp] + public void InitTestObjects() + { + intColA = new GameObject().AddComponent(); + intColB = new GameObject().AddComponent(); + goCol = new GameObject().AddComponent(); + } + + [Test] + public void Intersection() + { + const int Items = 10; + const int Step = 5; + + for (int i = 0; i < Items; i++) + { + intColA.Add(i); + intColB.Add(i + Step); + } + + intColA.Intersection(intColB); + + for (int i = 0; i < intColA.Count; i++) + { + Assert.IsTrue(intColA.GetSafe(i) >= Step || intColA.GetSafe(i) < Items); + } + + Assert.AreEqual(intColA.Count, Step); + + intColA.Clear(); + intColB.Clear(); + } + + [Test] + public void Size() + { + intColA.Capacity = 10; + + var startCap = intColA.Capacity; + var startCount = intColA.Count; + + intColA.Capacity *= 10; + Assert.Greater(intColA.Capacity, startCap); + startCap = intColA.Capacity; + Assert.AreEqual(startCount, intColA.Count); + intColA.Reserve(intColA.Capacity * 10); + Assert.Greater(intColA.Capacity, startCap); + + intColA.Resize(startCount + 10); + Assert.AreEqual(startCount + 10, intColA.Count); + + intColA.Clear(); + intColB.Clear(); + } + + [Test] + public void Sort() + { + const int Items = 10; + + for (int i = 0; i < Items; i++) + { + intColA.Add(i); + } + + //other tests ensure that all actually works + EnsureShuffledDifferent(intColA); + intColA.Sort(); + + for (int i = 0; i < Items; i++) + { + Assert.AreEqual(i, intColA[i]); + } + + //are they now mirrored + intColA.Reverse(); + for (int i = 0; i < Items; i++) + { + Assert.AreEqual(i, intColA[Items - i - 1]); + } + + intColA.Clear(); + intColB.Clear(); + } + + private void EnsureShuffledDifferent(Fungus.IntCollection col) + { + var startval = col.GetSafe(0); + col.Shuffle(); + //don't let shuffle result in the same seq + if (col.GetSafe(0) == startval) + { + col[0] = col[col.Count - 1]; + col[col.Count - 1] = startval; + } + } + } +} \ No newline at end of file diff --git a/Assets/Tests/Editor/FungusCollectionTests.cs.meta b/Assets/Tests/Editor/FungusCollectionTests.cs.meta new file mode 100644 index 00000000..b090d209 --- /dev/null +++ b/Assets/Tests/Editor/FungusCollectionTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9bbcb5dcb608f4841a2e685ace36df11 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/FungusEditorTests.asmdef b/Assets/Tests/Editor/FungusEditorTests.asmdef new file mode 100644 index 00000000..17460b7e --- /dev/null +++ b/Assets/Tests/Editor/FungusEditorTests.asmdef @@ -0,0 +1,23 @@ +{ + "name": "FungusEditorTests", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "Fungus", + "FungusEditor" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [] +} \ No newline at end of file diff --git a/Assets/Tests/Editor/FungusEditorTests.asmdef.meta b/Assets/Tests/Editor/FungusEditorTests.asmdef.meta new file mode 100644 index 00000000..0189eec4 --- /dev/null +++ b/Assets/Tests/Editor/FungusEditorTests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cfb67c2f5eea424fba8c36f4f754aab +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/FungusPrioritySignalsTest.cs b/Assets/Tests/Editor/FungusPrioritySignalsTest.cs index 2f615c47..a59a31fb 100644 --- a/Assets/Tests/Editor/FungusPrioritySignalsTest.cs +++ b/Assets/Tests/Editor/FungusPrioritySignalsTest.cs @@ -1,92 +1,87 @@ // This code is part of the Fungus library (https://github.com/snozbot/fungus) // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) -using UnityEngine; -using UnityEditor; -using UnityEngine.TestTools; using NUnit.Framework; -using System.Collections; -public class FungusPrioritySignalsTest { - - private int changeCallCount, startCallCount, endCallCount; - - [Test] - public void CountsAndSignals() - { - Fungus.FungusPrioritySignals.OnFungusPriorityStart += FungusPrioritySignals_OnFungusPriorityStart; - Fungus.FungusPrioritySignals.OnFungusPriorityEnd += FungusPrioritySignals_OnFungusPriorityEnd; - Fungus.FungusPrioritySignals.OnFungusPriorityChange += FungusPrioritySignals_OnFungusPriorityChange; - - Assert.Zero(Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); - //one start, one change, no end, 1 depth - Assert.AreEqual(0, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(1, changeCallCount); - Assert.AreEqual(1, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - - - Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); - //one start, 2 change, no end, 2 depth - Assert.AreEqual(0, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(2, changeCallCount); - Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - - Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); - //one start, 3 change, no end, 3 depth - Assert.AreEqual(0, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(3, changeCallCount); - Assert.AreEqual(3, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - - Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); - //one start, 4 change, no end, 2 depth - Assert.AreEqual(0, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(4, changeCallCount); - Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - - Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); - Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); - //one start, 6 change, 1 end, 0 depth - Assert.AreEqual(1, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(6, changeCallCount); - Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - - Fungus.FungusPrioritySignals.OnFungusPriorityStart -= FungusPrioritySignals_OnFungusPriorityStart; - Fungus.FungusPrioritySignals.OnFungusPriorityEnd -= FungusPrioritySignals_OnFungusPriorityEnd; - Fungus.FungusPrioritySignals.OnFungusPriorityChange -= FungusPrioritySignals_OnFungusPriorityChange; - - //unsubbed so all the same - Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); - Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); - //one start, 6 change, 1 end, 0 depth - Assert.AreEqual(1, endCallCount); - Assert.AreEqual(1, startCallCount); - Assert.AreEqual(6, changeCallCount); - Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth); - } - - private void FungusPrioritySignals_OnFungusPriorityChange(int previousActiveDepth, int newActiveDepth) - { - changeCallCount++; - } - - private void FungusPrioritySignals_OnFungusPriorityEnd() - { - endCallCount++; - } - - private void FungusPrioritySignals_OnFungusPriorityStart() +namespace Fungus.Tests +{ + [TestFixture] + public class PrioritySignalsTest { - startCallCount++; + private int changeCallCount, startCallCount, endCallCount; + + [Test] + public void CountsAndSignals() + { + Fungus.FungusPrioritySignals.OnFungusPriorityStart += FungusPrioritySignals_OnFungusPriorityStart; + Fungus.FungusPrioritySignals.OnFungusPriorityEnd += FungusPrioritySignals_OnFungusPriorityEnd; + Fungus.FungusPrioritySignals.OnFungusPriorityChange += FungusPrioritySignals_OnFungusPriorityChange; + + Assert.Zero(Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); + //one start, one change, no end, 1 depth + Assert.AreEqual(0, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(1, changeCallCount); + Assert.AreEqual(1, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); + //one start, 2 change, no end, 2 depth + Assert.AreEqual(0, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(2, changeCallCount); + Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); + //one start, 3 change, no end, 3 depth + Assert.AreEqual(0, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(3, changeCallCount); + Assert.AreEqual(3, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); + //one start, 4 change, no end, 2 depth + Assert.AreEqual(0, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(4, changeCallCount); + Assert.AreEqual(2, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); + Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); + //one start, 6 change, 1 end, 0 depth + Assert.AreEqual(1, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(6, changeCallCount); + Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + + Fungus.FungusPrioritySignals.OnFungusPriorityStart -= FungusPrioritySignals_OnFungusPriorityStart; + Fungus.FungusPrioritySignals.OnFungusPriorityEnd -= FungusPrioritySignals_OnFungusPriorityEnd; + Fungus.FungusPrioritySignals.OnFungusPriorityChange -= FungusPrioritySignals_OnFungusPriorityChange; + + //unsubbed so all the same + Fungus.FungusPrioritySignals.DoIncreasePriorityDepth(); + Fungus.FungusPrioritySignals.DoDecreasePriorityDepth(); + //one start, 6 change, 1 end, 0 depth + Assert.AreEqual(1, endCallCount); + Assert.AreEqual(1, startCallCount); + Assert.AreEqual(6, changeCallCount); + Assert.AreEqual(0, Fungus.FungusPrioritySignals.CurrentPriorityDepth); + } + + private void FungusPrioritySignals_OnFungusPriorityChange(int previousActiveDepth, int newActiveDepth) + { + changeCallCount++; + } + + private void FungusPrioritySignals_OnFungusPriorityEnd() + { + endCallCount++; + } + + private void FungusPrioritySignals_OnFungusPriorityStart() + { + startCallCount++; + } } -} +} \ No newline at end of file diff --git a/Assets/Tests/Editor/FungusTextVariationSelectionTests.cs b/Assets/Tests/Editor/FungusTextVariationSelectionTests.cs index a1d5b3a8..64d2937f 100644 --- a/Assets/Tests/Editor/FungusTextVariationSelectionTests.cs +++ b/Assets/Tests/Editor/FungusTextVariationSelectionTests.cs @@ -1,117 +1,118 @@ // This code is part of the Fungus library (https://github.com/snozbot/fungus) // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) -using UnityEngine; -using UnityEngine.TestTools; using NUnit.Framework; -using System.Collections; -public class FungusTextVariationSelectionTests +namespace Fungus.Tests { - [Test] - public void SimpleSequenceSelection() + [TestFixture] + public class TextVariationSelectionTests { - Fungus.TextVariationHandler.ClearHistory(); - - string startingText = @"This is test [a|b|c]"; - string startingTextA = @"This is test a"; - string startingTextB = @"This is test b"; - string startingTextC = @"This is test c"; - - string res = string.Empty; - - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextA); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextB); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextC); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextC); - } - - [Test] - public void SimpleCycleSelection() - { - Fungus.TextVariationHandler.ClearHistory(); - - string startingText = @"This is test [&a|b|c]"; - string startingTextA = @"This is test a"; - string startingTextB = @"This is test b"; - string startingTextC = @"This is test c"; - - string res = string.Empty; - - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextA); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextB); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextC); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextA); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextB); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextC); - } + [Test] + public void SimpleSequenceSelection() + { + Fungus.TextVariationHandler.ClearHistory(); + + string startingText = @"This is test [a|b|c]"; + string startingTextA = @"This is test a"; + string startingTextB = @"This is test b"; + string startingTextC = @"This is test c"; + + string res = string.Empty; + + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextA); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextB); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextC); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextC); + } - [Test] - public void SimpleOnceSelection() - { - Fungus.TextVariationHandler.ClearHistory(); - - string startingText = @"This is test [!a|b|c]"; - string startingTextA = @"This is test a"; - string startingTextB = @"This is test b"; - string startingTextC = @"This is test c"; - string startingTextD = @"This is test "; - - string res = string.Empty; - - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextA); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextB); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextC); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextD); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextD); - } + [Test] + public void SimpleCycleSelection() + { + Fungus.TextVariationHandler.ClearHistory(); + + string startingText = @"This is test [&a|b|c]"; + string startingTextA = @"This is test a"; + string startingTextB = @"This is test b"; + string startingTextC = @"This is test c"; + + string res = string.Empty; + + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextA); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextB); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextC); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextA); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextB); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextC); + } - [Test] - public void NestedSelection() - { - Fungus.TextVariationHandler.ClearHistory(); - - string startingText = @"This is test [a||sub [~a|b]|[!b|[~c|d]]]"; - string startingTextA = @"This is test a"; - string startingTextBlank = @"This is test "; - string startingTextSubA = @"This is test sub a"; - string startingTextSubB = @"This is test sub b"; - string startingTextB = @"This is test b"; - string startingTextC = @"This is test c"; - string startingTextD = @"This is test d"; - - string res = string.Empty; - - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextA); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextBlank); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - if(res != startingTextSubA && res != startingTextSubB) + [Test] + public void SimpleOnceSelection() { - Assert.Fail(); + Fungus.TextVariationHandler.ClearHistory(); + + string startingText = @"This is test [!a|b|c]"; + string startingTextA = @"This is test a"; + string startingTextB = @"This is test b"; + string startingTextC = @"This is test c"; + string startingTextD = @"This is test "; + + string res = string.Empty; + + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextA); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextB); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextC); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextD); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextD); } - res = Fungus.TextVariationHandler.SelectVariations(startingText); - Assert.AreEqual(res, startingTextB); - res = Fungus.TextVariationHandler.SelectVariations(startingText); - if (res != startingTextC && res != startingTextD) + + [Test] + public void NestedSelection() { - Assert.Fail(); + Fungus.TextVariationHandler.ClearHistory(); + + string startingText = @"This is test [a||sub [~a|b]|[!b|[~c|d]]]"; + string startingTextA = @"This is test a"; + string startingTextBlank = @"This is test "; + string startingTextSubA = @"This is test sub a"; + string startingTextSubB = @"This is test sub b"; + string startingTextB = @"This is test b"; + string startingTextC = @"This is test c"; + string startingTextD = @"This is test d"; + + string res = string.Empty; + + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextA); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextBlank); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + if (res != startingTextSubA && res != startingTextSubB) + { + Assert.Fail(); + } + res = Fungus.TextVariationHandler.SelectVariations(startingText); + Assert.AreEqual(res, startingTextB); + res = Fungus.TextVariationHandler.SelectVariations(startingText); + if (res != startingTextC && res != startingTextD) + { + Assert.Fail(); + } } } -} +} \ No newline at end of file diff --git a/Assets/Tests/Editor/Resources.meta b/Assets/Tests/Editor/Resources.meta new file mode 100644 index 00000000..2e391261 --- /dev/null +++ b/Assets/Tests/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 596442f60f094a346b35a34573cba376 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/Resources/FlowTest.prefab b/Assets/Tests/Editor/Resources/FlowTest.prefab new file mode 100644 index 00000000..3ed54544 --- /dev/null +++ b/Assets/Tests/Editor/Resources/FlowTest.prefab @@ -0,0 +1,1387 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2758424169659455326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7240997158777818336} + - component: {fileID: 3850397277397727160} + - component: {fileID: 7356800416925351087} + - component: {fileID: 87959489459996888} + - component: {fileID: 2954645303775605044} + - component: {fileID: 1899702518119212923} + - component: {fileID: 3087442754994311981} + - component: {fileID: 1238067881879420812} + - component: {fileID: 4606284581858767047} + - component: {fileID: 7621839359048070760} + - component: {fileID: 1326477007613712269} + - component: {fileID: 2387897437584421803} + - component: {fileID: 705025969387883113} + - component: {fileID: 248897192821599427} + - component: {fileID: 6067805584139267306} + - component: {fileID: 1837733036675631282} + - component: {fileID: 3903875137651807250} + - component: {fileID: 1561146365906619590} + - component: {fileID: 7673633067840976455} + - component: {fileID: 2181259217738459905} + - component: {fileID: 4609871670555540586} + - component: {fileID: 177005780822076029} + m_Layer: 0 + m_Name: FlowTests + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7240997158777818336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3850397277397727160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 0, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 428 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: [] + selectedCommands: [] + variables: + - {fileID: 1899702518119212923} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!114 &7356800416925351087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 194 + y: 111 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: NestedIf + description: + eventHandler: {fileID: 0} + commandList: + - {fileID: 87959489459996888} + - {fileID: 4606284581858767047} + - {fileID: 1238067881879420812} + - {fileID: 1326477007613712269} + - {fileID: 6067805584139267306} + - {fileID: 3903875137651807250} + - {fileID: 1837733036675631282} + - {fileID: 2387897437584421803} + - {fileID: 248897192821599427} + - {fileID: 705025969387883113} + - {fileID: 1561146365906619590} + - {fileID: 7673633067840976455} + - {fileID: 177005780822076029} + - {fileID: 4609871670555540586} + - {fileID: 2181259217738459905} + - {fileID: 3087442754994311981} + - {fileID: 7621839359048070760} + - {fileID: 2954645303775605044} + suppressAllAutoSelections: 0 +--- !u!114 &87959489459996888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &2954645303775605044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 0 +--- !u!114 &1899702518119212923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var + value: 1 +--- !u!114 &3087442754994311981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fa968f01a7f9496bb50e13dfe16760d, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 +--- !u!114 &1238067881879420812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18c5e8d46183346b59f64b820e71f97f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + indentLevel: 0 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 1 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &4606284581858767047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d1a861c2b31cf8488fd9d576d533474, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 1 + message: + stringRef: {fileID: 0} + stringVal: +--- !u!114 &7621839359048070760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d1a861c2b31cf8488fd9d576d533474, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 1 + message: + stringRef: {fileID: 0} + stringVal: +--- !u!114 &1326477007613712269 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 7 + indentLevel: 1 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 2 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &2387897437584421803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18c5e8d46183346b59f64b820e71f97f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 8 + indentLevel: 0 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 2 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &705025969387883113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d1a861c2b31cf8488fd9d576d533474, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 9 + indentLevel: 1 + message: + stringRef: {fileID: 0} + stringVal: +--- !u!114 &248897192821599427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea6e8f632db87477eb750446b28d73a3, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 10 + indentLevel: 1 + commenterName: + commentText: This is here to ensire that the else if is skipped over after the previous + one is found to be true. +--- !u!114 &6067805584139267306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 11 + indentLevel: 1 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1837733036675631282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 12 + indentLevel: 1 +--- !u!114 &3903875137651807250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea6e8f632db87477eb750446b28d73a3, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 13 + indentLevel: 2 + commenterName: + commentText: a trap to ensure the end is found not the non matching elif below +--- !u!114 &1561146365906619590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 14 + indentLevel: 1 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7673633067840976455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18c5e8d46183346b59f64b820e71f97f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + indentLevel: 1 + compareOperator: 0 + anyVar: + variable: {fileID: 1899702518119212923} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 2 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &2181259217738459905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + indentLevel: 1 +--- !u!114 &4609871670555540586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea6e8f632db87477eb750446b28d73a3, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 17 + indentLevel: 2 + commenterName: + commentText: also a trap to ensure the if within the elif 1 doesn't find this +--- !u!114 &177005780822076029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2758424169659455326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d1a861c2b31cf8488fd9d576d533474, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 18 + indentLevel: 2 + message: + stringRef: {fileID: 0} + stringVal: diff --git a/Assets/Tests/Editor/Resources/FlowTest.prefab.meta b/Assets/Tests/Editor/Resources/FlowTest.prefab.meta new file mode 100644 index 00000000..d165cea6 --- /dev/null +++ b/Assets/Tests/Editor/Resources/FlowTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4bf4a90a4d8ad6846a5e8a697a913a28 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/Resources/LoopTest.prefab b/Assets/Tests/Editor/Resources/LoopTest.prefab new file mode 100644 index 00000000..a957a054 --- /dev/null +++ b/Assets/Tests/Editor/Resources/LoopTest.prefab @@ -0,0 +1,1320 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5822172677840050586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5822172677840050619} + - component: {fileID: 5822172677840050618} + - component: {fileID: 5822172677840050621} + - component: {fileID: 5822172677840050620} + - component: {fileID: 5822172677840050623} + - component: {fileID: 5822172677840050622} + - component: {fileID: 5822172677840050609} + - component: {fileID: 5822172677840050608} + - component: {fileID: 5822172677840050611} + - component: {fileID: 5822172677840050610} + - component: {fileID: 5822172677840050613} + - component: {fileID: 5822172677840050600} + - component: {fileID: 5822172677840050603} + - component: {fileID: 5822172677840050602} + - component: {fileID: 5822172677840050605} + - component: {fileID: 5822172677840050604} + - component: {fileID: 5822172677840050607} + - component: {fileID: 5822172677840050606} + - component: {fileID: 5822172677840050593} + - component: {fileID: 5822172677840050592} + - component: {fileID: 5822172677840050594} + - component: {fileID: 5822172677840050597} + - component: {fileID: 5822172677840050596} + - component: {fileID: 5822172677840050599} + - component: {fileID: 5822172677840050587} + - component: {fileID: 7983348174402538734} + - component: {fileID: 8557577880712409359} + - component: {fileID: 4503329534016678598} + - component: {fileID: 1133737071121446639} + m_Layer: 0 + m_Name: LoopTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5822172677840050619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 793, y: 446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5822172678259928990} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050618 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: -48, y: -73} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 447 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: [] + selectedCommands: [] + variables: + - {fileID: 5822172677840050623} + - {fileID: 5822172677840050611} + - {fileID: 5822172677840050587} + - {fileID: 7983348174402538734} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!114 &5822172677840050621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 230 + y: 190 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: while loop + description: + eventHandler: {fileID: 0} + commandList: + - {fileID: 5822172677840050620} + - {fileID: 5822172677840050597} + - {fileID: 5822172677840050600} + - {fileID: 5822172677840050602} + - {fileID: 5822172677840050603} + - {fileID: 5822172677840050622} + - {fileID: 5822172677840050609} + - {fileID: 8557577880712409359} + suppressAllAutoSelections: 0 +--- !u!114 &5822172677840050620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 663c8a7831a104d16ad7078a4dc2bd10, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + compareOperator: 2 + anyVar: + variable: {fileID: 5822172677840050623} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 50 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: while_counter + value: 0 +--- !u!114 &5822172677840050622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 1 + anyVar: + variable: {fileID: 5822172677840050623} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 1 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 2 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 +--- !u!114 &5822172677840050608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 236 + y: 245 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 4 + blockName: for loop + description: + eventHandler: {fileID: 0} + commandList: + - {fileID: 5822172677840050610} + - {fileID: 5822172677840050596} + - {fileID: 5822172677840050605} + - {fileID: 5822172677840050607} + - {fileID: 5822172677840050613} + - {fileID: 5822172677840050604} + - {fileID: 4503329534016678598} + suppressAllAutoSelections: 0 +--- !u!114 &5822172677840050611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: looprange + value: 0 +--- !u!114 &5822172677840050610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b0eebb5bf2fc1e542a35e2e5332e60d4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 0 + startingValue: + integerRef: {fileID: 0} + integerVal: 0 + endValue: + integerRef: {fileID: 0} + integerVal: 50 + counter: + integerRef: {fileID: 5822172677840050611} + integerVal: 0 + step: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &5822172677840050613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 1 +--- !u!114 &5822172677840050600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 11 + indentLevel: 1 + compareOperator: 5 + anyVar: + variable: {fileID: 5822172677840050623} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 7983348174402538734} + integerVal: 5 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 12 + indentLevel: 1 +--- !u!114 &5822172677840050602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9b9c7a9785c34fc889da2b3a40344db, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 13 + indentLevel: 2 +--- !u!114 &5822172677840050605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 14 + indentLevel: 1 + compareOperator: 5 + anyVar: + variable: {fileID: 5822172677840050611} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 7983348174402538734} + integerVal: 5 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + indentLevel: 0 +--- !u!114 &5822172677840050607 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9b9c7a9785c34fc889da2b3a40344db, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + indentLevel: 2 +--- !u!114 &5822172677840050606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 233 + y: 299 + width: 124 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 17 + blockName: int col looper + description: + eventHandler: {fileID: 0} + commandList: + - {fileID: 5822172677840050594} + - {fileID: 5822172677840050593} + - {fileID: 5822172677840050599} + - {fileID: 1133737071121446639} + - {fileID: 5822172677840050592} + suppressAllAutoSelections: 0 +--- !u!114 &5822172677840050593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ce547d5384ce3a41b7142cab8ab41dd, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 18 + indentLevel: 0 + collection: + collectionRef: {fileID: 0} + collectionVal: {fileID: 5822172678259928977} + item: {fileID: 5822172677840050587} + curIndex: + integerRef: {fileID: 5822172677840050623} + integerVal: 0 +--- !u!114 &5822172677840050592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 19 + indentLevel: 0 +--- !u!114 &5822172677840050594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 21 + indentLevel: 0 + anyVar: + variable: {fileID: 5822172677840050587} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 1 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5822172677840050597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 22 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &5822172677840050596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 23 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &5822172677840050599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de9232e9295ed476a8cfb707b5c242b9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 24 + indentLevel: 1 + frameCount: + integerRef: {fileID: 0} + integerVal: 1 +--- !u!114 &5822172677840050587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: int_item + value: 0 +--- !u!114 &7983348174402538734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: while_limit + value: 5 +--- !u!114 &8557577880712409359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 25 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: While loop beyond break count + a: {fileID: 7983348174402538734} + b: {fileID: 5822172677840050623} + method: 0 +--- !u!114 &4503329534016678598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 26 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: for limit exceeded + a: {fileID: 5822172677840050611} + b: {fileID: 7983348174402538734} + method: 0 +--- !u!114 &1133737071121446639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172677840050586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 27 + indentLevel: 1 + message: + stringRef: {fileID: 0} + stringVal: for limit exceeded + a: {fileID: 5822172677840050587} + b: {fileID: 5822172677840050623} + method: 0 +--- !u!1 &5822172678259928976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5822172678259928990} + - component: {fileID: 5822172678259928977} + m_Layer: 0 + m_Name: IntCol + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5822172678259928990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172678259928976} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -793, y: -446, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5822172677840050619} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5822172678259928977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5822172678259928976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221f0f261cfcb8a40b9f79cbc51a9148, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: 0000000001000000020000000300000004000000 diff --git a/Assets/Tests/Editor/Resources/LoopTest.prefab.meta b/Assets/Tests/Editor/Resources/LoopTest.prefab.meta new file mode 100644 index 00000000..ff09eedb --- /dev/null +++ b/Assets/Tests/Editor/Resources/LoopTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b63c363344a0bf94296a7280494813e3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/Resources/VarSetTest.prefab b/Assets/Tests/Editor/Resources/VarSetTest.prefab new file mode 100644 index 00000000..28bf8ef4 --- /dev/null +++ b/Assets/Tests/Editor/Resources/VarSetTest.prefab @@ -0,0 +1,5053 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2665200253896420646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3515839692517609318} + - component: {fileID: 6236021700895876248} + - component: {fileID: 1370811652421313750} + - component: {fileID: 6694139779669590473} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3515839692517609318 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2665200253896420646} + 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_Children: [] + m_Father: {fileID: 925070430802974285} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6236021700895876248 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2665200253896420646} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1370811652421313750 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2665200253896420646} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &6694139779669590473 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2665200253896420646} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3282095820723025708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2074430884284038955} + - component: {fileID: 3275089015837847617} + m_Layer: 0 + m_Name: collection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2074430884284038955 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3282095820723025708} + 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_Children: [] + m_Father: {fileID: 925070430802974285} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3275089015837847617 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3282095820723025708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221f0f261cfcb8a40b9f79cbc51a9148, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: +--- !u!1 &6022724394185640971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1208704936434436612} + - component: {fileID: 4066486324188773877} + - component: {fileID: 349025186641041854} + m_Layer: 0 + m_Name: col + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1208704936434436612 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6022724394185640971} + 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_Children: [] + m_Father: {fileID: 925070430802974285} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &4066486324188773877 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6022724394185640971} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &349025186641041854 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6022724394185640971} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &6381672355547430666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 925070430802974285} + - component: {fileID: 1043080471272523523} + - component: {fileID: 4189454128208650146} + - component: {fileID: 8805465614666017928} + - component: {fileID: 1828932151346816536} + - component: {fileID: 2261075828735507188} + - component: {fileID: 1915452925065349797} + - component: {fileID: 8564456835187278824} + - component: {fileID: 5320067926591112170} + - component: {fileID: 1088802534794066026} + - component: {fileID: 1163417951521406283} + - component: {fileID: 1399893782281646933} + - component: {fileID: 6548361248272980334} + - component: {fileID: 2914983618718069288} + - component: {fileID: 8530409915774343380} + - component: {fileID: 6493889262705578041} + - component: {fileID: 4330878505238992354} + - component: {fileID: 4554336283830311097} + - component: {fileID: 8554547299414943669} + - component: {fileID: 9136408301822124161} + - component: {fileID: 5885514780426982157} + - component: {fileID: 2995839933451271312} + - component: {fileID: 4665366542711170054} + - component: {fileID: 3931316057658757917} + - component: {fileID: 3004060541595052673} + - component: {fileID: 4142613776352639886} + - component: {fileID: 6392830767839531587} + - component: {fileID: 2828743190546237084} + - component: {fileID: 3327474395627392665} + - component: {fileID: 7802713421411451191} + - component: {fileID: 7316821857205532760} + - component: {fileID: 2997842933218785534} + - component: {fileID: 2539901819628314990} + - component: {fileID: 8990060518578950280} + - component: {fileID: 670469608650659671} + - component: {fileID: 3690031635381408902} + - component: {fileID: 6522387938227322495} + - component: {fileID: 8891110708966318686} + - component: {fileID: 9192236150366343817} + - component: {fileID: 4353931720465701167} + - component: {fileID: 2354223933289237011} + - component: {fileID: 8144354804674754853} + - component: {fileID: 6180029680994114498} + - component: {fileID: 2941452226900196301} + - component: {fileID: 8444328666427257387} + - component: {fileID: 7453874730336948705} + - component: {fileID: 3116736742800406239} + - component: {fileID: 8379622082962960298} + - component: {fileID: 1249734079670282884} + - component: {fileID: 2994228629059441923} + - component: {fileID: 8870837996179087681} + - component: {fileID: 2104670434258827023} + - component: {fileID: 5311998211497219652} + - component: {fileID: 5632239392483222896} + - component: {fileID: 2861589987192766990} + - component: {fileID: 1658843741158537153} + - component: {fileID: 3850217272920484952} + - component: {fileID: 7445773590752646648} + - component: {fileID: 4642638504608297107} + - component: {fileID: 5515409587438433481} + - component: {fileID: 2535924446719479443} + - component: {fileID: 3479139093719299087} + - component: {fileID: 228044566174188518} + - component: {fileID: 1870002413298583146} + - component: {fileID: 2890738806112199048} + - component: {fileID: 4206048282862398113} + - component: {fileID: 1949074941412235246} + - component: {fileID: 5918105693733394473} + - component: {fileID: 7517226242339437583} + - component: {fileID: 5731889244594351661} + - component: {fileID: 2086741297537307650} + - component: {fileID: 5908771292930012404} + - component: {fileID: 3698941547575487838} + - component: {fileID: 2242924798720466773} + - component: {fileID: 5970937822181193779} + - component: {fileID: 4635879941830729739} + - component: {fileID: 3670972813357082933} + - component: {fileID: 6564712718582447754} + - component: {fileID: 4682479787947274061} + - component: {fileID: 6551664974508807472} + - component: {fileID: 4596413317429807857} + - component: {fileID: 1190838057729547322} + - component: {fileID: 3133829767128170705} + - component: {fileID: 7056916285561566233} + - component: {fileID: 4968249184442825332} + - component: {fileID: 7057929335777992866} + - component: {fileID: 4449145138446997486} + - component: {fileID: 7842201147246685270} + - component: {fileID: 4443065927879269325} + - component: {fileID: 7783029232165608715} + - component: {fileID: 8233974089136438695} + - component: {fileID: 2456075333335827845} + - component: {fileID: 3495293335381451495} + - component: {fileID: 1393119562990955083} + m_Layer: 0 + m_Name: VarSetTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &925070430802974285 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + 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_Children: + - {fileID: 2074430884284038955} + - {fileID: 6615078105556670448} + - {fileID: 1208704936434436612} + - {fileID: 3515839692517609318} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1043080471272523523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 456.48056, y: -1492.4011} + variablesScrollPos: {x: 0, y: 319} + variablesExpanded: 1 + blockViewHeight: 400 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + selectedBlocks: + - {fileID: 2828743190546237084} + selectedCommands: [] + variables: + - {fileID: 4189454128208650146} + - {fileID: 2997842933218785534} + - {fileID: 8805465614666017928} + - {fileID: 8990060518578950280} + - {fileID: 1828932151346816536} + - {fileID: 670469608650659671} + - {fileID: 2261075828735507188} + - {fileID: 3690031635381408902} + - {fileID: 1915452925065349797} + - {fileID: 6180029680994114498} + - {fileID: 8564456835187278824} + - {fileID: 2941452226900196301} + - {fileID: 5320067926591112170} + - {fileID: 1088802534794066026} + - {fileID: 1163417951521406283} + - {fileID: 8444328666427257387} + - {fileID: 1399893782281646933} + - {fileID: 6548361248272980334} + - {fileID: 7453874730336948705} + - {fileID: 2914983618718069288} + - {fileID: 3116736742800406239} + - {fileID: 8530409915774343380} + - {fileID: 8379622082962960298} + - {fileID: 6493889262705578041} + - {fileID: 1249734079670282884} + - {fileID: 4330878505238992354} + - {fileID: 2994228629059441923} + - {fileID: 4554336283830311097} + - {fileID: 8870837996179087681} + - {fileID: 8554547299414943669} + - {fileID: 2104670434258827023} + - {fileID: 9136408301822124161} + - {fileID: 5311998211497219652} + - {fileID: 5885514780426982157} + - {fileID: 5632239392483222896} + - {fileID: 2995839933451271312} + - {fileID: 2861589987192766990} + - {fileID: 4665366542711170054} + - {fileID: 1658843741158537153} + - {fileID: 3931316057658757917} + - {fileID: 5515409587438433481} + - {fileID: 3004060541595052673} + - {fileID: 4642638504608297107} + - {fileID: 4142613776352639886} + - {fileID: 7445773590752646648} + - {fileID: 6392830767839531587} + - {fileID: 3850217272920484952} + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!114 &4189454128208650146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cbd0c93fbe0e46f78685c33d82bcc7b, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var + value: {fileID: 0} +--- !u!114 &8805465614666017928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe0d9dc5080b040bd8daff067b407916, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var1 + value: {fileID: 0} +--- !u!114 &1828932151346816536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d02d9822eec54c98afe95bb497211b3, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var2 + value: 0 +--- !u!114 &2261075828735507188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4511d925e22af8c4a85a568153258f84, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var3 + value: {fileID: 0} +--- !u!114 &1915452925065349797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a3f274bcd518c0647b0d9ce7c8f3ab84, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var4 + value: {fileID: 0} +--- !u!114 &8564456835187278824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0057f41f38d80eb42994d709097bab6c, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var5 + value: {fileID: 0} +--- !u!114 &5320067926591112170 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 303f39102fa585240b75ba39909c0420, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var6 +--- !u!114 &1088802534794066026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab82206607c7ce145899c6dded6ed656, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var7 +--- !u!114 &1163417951521406283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea5b85dd356214c4c92b08ec04d89927, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var8 + value: {r: 0, g: 0, b: 0, a: 0} +--- !u!114 &1399893782281646933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1697e3d2923d7a04992d32e821365308, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var9 +--- !u!114 &6548361248272980334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 705fa1ac97df74e3a84ff952ffd923f1, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var10 + value: 0 +--- !u!114 &2914983618718069288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1941e052c0ed4280b25507cd2e6ad8f, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var11 + value: {fileID: 0} +--- !u!114 &8530409915774343380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var12 + value: 0 +--- !u!114 &6493889262705578041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76ba6d244396e4c1086b8c3d18f6288b, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var13 + value: {fileID: 0} +--- !u!114 &4330878505238992354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 92a3ae3fceb40f24db63f0e4085f39cc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var14 + value: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 +--- !u!114 &4554336283830311097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c0d1ebdecfe2cb147bc3558abb25d154, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var16 + value: {x: 0, y: 0, z: 0, w: 1} +--- !u!114 &8554547299414943669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5571f032eb722324fac0fc908bc370bc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var17 + value: {fileID: 0} +--- !u!114 &9136408301822124161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22ca3b0d4747cfa40806a3521c5f29cf, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var18 + value: {fileID: 0} +--- !u!114 &5885514780426982157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cf67d97824e8c45c5b26fe72bfef82ed, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var19 + value: {fileID: 0} +--- !u!114 &2995839933451271312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4580f28dd8581476b810b38eea2f1316, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var20 + value: +--- !u!114 &4665366542711170054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8eb81208378624d4ba13caaef30d2b62, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var21 + value: {fileID: 0} +--- !u!114 &3931316057658757917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 633bea14077b44e19956e8113fbac7a4, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var22 + value: {fileID: 0} +--- !u!114 &3004060541595052673 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ebe929c2f37ad4b19ad9d33a77c5064a, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var23 + value: {x: 0, y: 0} +--- !u!114 &4142613776352639886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var24 + value: {x: 0, y: 0, z: 0} +--- !u!114 &6392830767839531587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 516fbed763cd80c44835637e64a1da18, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var25 + value: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2828743190546237084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 52.710968 + y: 1651.4011 + width: 120 + height: 40 + tint: {r: 1, g: 1, b: 1, a: 1} + useCustomTint: 0 + itemId: 0 + blockName: VarSets + description: + eventHandler: {fileID: 0} + commandList: + - {fileID: 3327474395627392665} + - {fileID: 7802713421411451191} + - {fileID: 6522387938227322495} + - {fileID: 8891110708966318686} + - {fileID: 9192236150366343817} + - {fileID: 4353931720465701167} + - {fileID: 2354223933289237011} + - {fileID: 8144354804674754853} + - {fileID: 2535924446719479443} + - {fileID: 3479139093719299087} + - {fileID: 228044566174188518} + - {fileID: 1870002413298583146} + - {fileID: 2890738806112199048} + - {fileID: 4206048282862398113} + - {fileID: 1949074941412235246} + - {fileID: 5918105693733394473} + - {fileID: 7517226242339437583} + - {fileID: 5731889244594351661} + - {fileID: 2086741297537307650} + - {fileID: 5908771292930012404} + - {fileID: 3698941547575487838} + - {fileID: 2242924798720466773} + - {fileID: 5970937822181193779} + - {fileID: 4635879941830729739} + - {fileID: 3670972813357082933} + - {fileID: 6564712718582447754} + - {fileID: 4682479787947274061} + - {fileID: 6551664974508807472} + - {fileID: 4596413317429807857} + - {fileID: 1190838057729547322} + - {fileID: 3133829767128170705} + - {fileID: 7056916285561566233} + - {fileID: 4968249184442825332} + - {fileID: 7057929335777992866} + - {fileID: 4449145138446997486} + - {fileID: 7842201147246685270} + - {fileID: 4443065927879269325} + - {fileID: 7783029232165608715} + - {fileID: 8233974089136438695} + - {fileID: 2456075333335827845} + - {fileID: 3495293335381451495} + - {fileID: 1393119562990955083} + suppressAllAutoSelections: 0 +--- !u!114 &3327474395627392665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + anyVar: + variable: {fileID: 4189454128208650146} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7802713421411451191 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 4189454128208650146} + b: {fileID: 2997842933218785534} + method: 0 +--- !u!95 &7316821857205532760 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 0} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &2997842933218785534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cbd0c93fbe0e46f78685c33d82bcc7b, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: VarComp + value: {fileID: 7316821857205532760} +--- !u!82 &2539901819628314990 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &8990060518578950280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe0d9dc5080b040bd8daff067b407916, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var1Comp + value: {fileID: 2539901819628314990} +--- !u!114 &670469608650659671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d02d9822eec54c98afe95bb497211b3, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var2Comp + value: 1 +--- !u!114 &3690031635381408902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4511d925e22af8c4a85a568153258f84, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var3Comp + value: {fileID: 3275089015837847617} +--- !u!114 &6522387938227322495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 + anyVar: + variable: {fileID: 8805465614666017928} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &8891110708966318686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 8805465614666017928} + b: {fileID: 8990060518578950280} + method: 0 +--- !u!114 &9192236150366343817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + indentLevel: 0 + anyVar: + variable: {fileID: 1828932151346816536} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 0} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &4353931720465701167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 1828932151346816536} + b: {fileID: 670469608650659671} + method: 0 +--- !u!114 &2354223933289237011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 7 + indentLevel: 0 + anyVar: + variable: {fileID: 2261075828735507188} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 0} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &8144354804674754853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 8 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 2261075828735507188} + b: {fileID: 3690031635381408902} + method: 0 +--- !u!114 &6180029680994114498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a3f274bcd518c0647b0d9ce7c8f3ab84, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var4Comp + value: {fileID: 5611524016588629208} +--- !u!114 &2941452226900196301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0057f41f38d80eb42994d709097bab6c, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var5Comp + value: {fileID: 4066486324188773877} +--- !u!114 &8444328666427257387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea5b85dd356214c4c92b08ec04d89927, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var8Comp + value: {r: 1, g: 1, b: 1, a: 1} +--- !u!114 &7453874730336948705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 705fa1ac97df74e3a84ff952ffd923f1, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var10Comp + value: 3.14 +--- !u!114 &3116736742800406239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1941e052c0ed4280b25507cd2e6ad8f, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var11Comp + value: {fileID: 3282095820723025708} +--- !u!114 &8379622082962960298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var12Comp + value: 7 +--- !u!114 &1249734079670282884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76ba6d244396e4c1086b8c3d18f6288b, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var13Comp + value: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} +--- !u!114 &2994228629059441923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ecbb345616367420f90d15042808304e, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var15Comp + value: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} +--- !u!114 &8870837996179087681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c0d1ebdecfe2cb147bc3558abb25d154, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var16Comp + value: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} +--- !u!114 &2104670434258827023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5571f032eb722324fac0fc908bc370bc, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var17Comp + value: {fileID: 4238428531384644721} +--- !u!114 &5311998211497219652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22ca3b0d4747cfa40806a3521c5f29cf, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var18Comp + value: {fileID: 349025186641041854} +--- !u!114 &5632239392483222896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cf67d97824e8c45c5b26fe72bfef82ed, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var19Comp + value: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} +--- !u!114 &2861589987192766990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4580f28dd8581476b810b38eea2f1316, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var20Comp + value: hello +--- !u!114 &1658843741158537153 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8eb81208378624d4ba13caaef30d2b62, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var21Comp + value: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} +--- !u!114 &3850217272920484952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 516fbed763cd80c44835637e64a1da18, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var25Comp + value: {x: 1, y: 2, z: 3, w: 4} +--- !u!114 &7445773590752646648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d769ea3513ad47aabf805db5252341d, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var24Comp + value: {x: 1, y: 2, z: 3} +--- !u!114 &4642638504608297107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ebe929c2f37ad4b19ad9d33a77c5064a, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var23Comp + value: {x: 1, y: 2} +--- !u!114 &5515409587438433481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 633bea14077b44e19956e8113fbac7a4, type: 3} + m_Name: + m_EditorClassIdentifier: + scope: 0 + key: Var22Comp + value: {fileID: 2074430884284038955} +--- !u!114 &2535924446719479443 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 9 + indentLevel: 0 + anyVar: + variable: {fileID: 1915452925065349797} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &3479139093719299087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 10 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 1915452925065349797} + b: {fileID: 6180029680994114498} + method: 0 +--- !u!114 &228044566174188518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 11 + indentLevel: 0 + anyVar: + variable: {fileID: 8564456835187278824} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1870002413298583146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 12 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 8564456835187278824} + b: {fileID: 2941452226900196301} + method: 0 +--- !u!114 &2890738806112199048 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 13 + indentLevel: 0 + anyVar: + variable: {fileID: 1163417951521406283} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 0 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &4206048282862398113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 14 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 1163417951521406283} + b: {fileID: 8444328666427257387} + method: 0 +--- !u!114 &1949074941412235246 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + indentLevel: 0 + anyVar: + variable: {fileID: 6548361248272980334} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5918105693733394473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 6548361248272980334} + b: {fileID: 7453874730336948705} + method: 0 +--- !u!114 &7517226242339437583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 17 + indentLevel: 0 + anyVar: + variable: {fileID: 2914983618718069288} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 0 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5731889244594351661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 18 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 2914983618718069288} + b: {fileID: 3116736742800406239} + method: 0 +--- !u!114 &2086741297537307650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 19 + indentLevel: 0 + anyVar: + variable: {fileID: 8530409915774343380} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &5908771292930012404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 20 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 8530409915774343380} + b: {fileID: 8379622082962960298} + method: 0 +--- !u!114 &3698941547575487838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 21 + indentLevel: 0 + anyVar: + variable: {fileID: 6493889262705578041} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0, y: 0, z: 0, w: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &2242924798720466773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 22 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 6493889262705578041} + b: {fileID: 1249734079670282884} + method: 0 +--- !u!114 &5970937822181193779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 23 + indentLevel: 0 + anyVar: + variable: {fileID: 4554336283830311097} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &4635879941830729739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 24 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 4554336283830311097} + b: {fileID: 8870837996179087681} + method: 0 +--- !u!114 &3670972813357082933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 25 + indentLevel: 0 + anyVar: + variable: {fileID: 8554547299414943669} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &6564712718582447754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 26 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 8554547299414943669} + b: {fileID: 2104670434258827023} + method: 0 +--- !u!114 &4682479787947274061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 27 + indentLevel: 0 + anyVar: + variable: {fileID: 9136408301822124161} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &6551664974508807472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 28 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 9136408301822124161} + b: {fileID: 5311998211497219652} + method: 0 +--- !u!114 &4596413317429807857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 29 + indentLevel: 0 + anyVar: + variable: {fileID: 5885514780426982157} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1190838057729547322 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 30 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 5885514780426982157} + b: {fileID: 5632239392483222896} + method: 0 +--- !u!114 &3133829767128170705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 31 + indentLevel: 0 + anyVar: + variable: {fileID: 2995839933451271312} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7056916285561566233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 32 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 2995839933451271312} + b: {fileID: 2861589987192766990} + method: 0 +--- !u!114 &4968249184442825332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 33 + indentLevel: 0 + anyVar: + variable: {fileID: 4665366542711170054} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7057929335777992866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 34 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 4665366542711170054} + b: {fileID: 1658843741158537153} + method: 0 +--- !u!114 &4449145138446997486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 35 + indentLevel: 0 + anyVar: + variable: {fileID: 3931316057658757917} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 2074430884284038955} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7842201147246685270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 36 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 3931316057658757917} + b: {fileID: 5515409587438433481} + method: 0 +--- !u!114 &4443065927879269325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 37 + indentLevel: 0 + anyVar: + variable: {fileID: 3004060541595052673} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 2074430884284038955} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 1, y: 2} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &7783029232165608715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 38 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 3004060541595052673} + b: {fileID: 4642638504608297107} + method: 0 +--- !u!114 &8233974089136438695 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 39 + indentLevel: 0 + anyVar: + variable: {fileID: 4142613776352639886} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 2074430884284038955} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 1, y: 2} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 1, y: 2, z: 3} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 0, y: 0, z: 0, w: 0} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &2456075333335827845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 40 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 4142613776352639886} + b: {fileID: 7445773590752646648} + method: 0 +--- !u!114 &3495293335381451495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 41 + indentLevel: 0 + anyVar: + variable: {fileID: 6392830767839531587} + data: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 7316821857205532760} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 2539901819628314990} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 1 + collectionData: + collectionRef: {fileID: 0} + collectionVal: {fileID: 3275089015837847617} + collider2DData: + collider2DRef: {fileID: 0} + collider2DVal: {fileID: 5611524016588629208} + colliderData: + colliderRef: {fileID: 0} + colliderVal: {fileID: 4066486324188773877} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} + floatData: + floatRef: {fileID: 0} + floatVal: 3.14 + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 3282095820723025708} + integerData: + integerRef: {fileID: 0} + integerVal: 7 + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + matrix4x4Data: + matrix4x4Ref: {fileID: 0} + matrix4x4Val: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + quaternionData: + quaternionRef: {fileID: 0} + quaternionVal: {x: 0.70710677, y: 0, z: 0, w: 0.70710677} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 4238428531384644721} + rigidbodyData: + rigidbodyRef: {fileID: 0} + rigidbodyVal: {fileID: 349025186641041854} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + stringData: + stringRef: {fileID: 0} + stringVal: hello + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 2074430884284038955} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 1, y: 2} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 1, y: 2, z: 3} + vector4Data: + vector4Ref: {fileID: 0} + vector4Val: {x: 1, y: 2, z: 3, w: 4} + setOperator: 0 + variable: {fileID: 0} + booleanData: + booleanRef: {fileID: 0} + booleanVal: 0 + integerData: + integerRef: {fileID: 0} + integerVal: 0 + floatData: + floatRef: {fileID: 0} + floatVal: 0 + stringData: + stringRef: {fileID: 0} + stringVal: + animatorData: + animatorRef: {fileID: 0} + animatorVal: {fileID: 0} + audioSourceData: + audioSourceRef: {fileID: 0} + audioSourceVal: {fileID: 0} + colorData: + colorRef: {fileID: 0} + colorVal: {r: 0, g: 0, b: 0, a: 0} + gameObjectData: + gameObjectRef: {fileID: 0} + gameObjectVal: {fileID: 0} + materialData: + materialRef: {fileID: 0} + materialVal: {fileID: 0} + objectData: + objectRef: {fileID: 0} + objectVal: {fileID: 0} + rigidbody2DData: + rigidbody2DRef: {fileID: 0} + rigidbody2DVal: {fileID: 0} + spriteData: + spriteRef: {fileID: 0} + spriteVal: {fileID: 0} + textureData: + textureRef: {fileID: 0} + textureVal: {fileID: 0} + transformData: + transformRef: {fileID: 0} + transformVal: {fileID: 0} + vector2Data: + vector2Ref: {fileID: 0} + vector2Val: {x: 0, y: 0} + vector3Data: + vector3Ref: {fileID: 0} + vector3Val: {x: 0, y: 0, z: 0} +--- !u!114 &1393119562990955083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6381672355547430666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c40b126bd148ae743b56bc8c00162589, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 42 + indentLevel: 0 + message: + stringRef: {fileID: 0} + stringVal: + a: {fileID: 6392830767839531587} + b: {fileID: 3850217272920484952} + method: 0 +--- !u!1 &6906713865859834375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6615078105556670448} + - component: {fileID: 5611524016588629208} + - component: {fileID: 4238428531384644721} + - component: {fileID: 1449818630039283507} + m_Layer: 0 + m_Name: 2dcol + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6615078105556670448 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6906713865859834375} + 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_Children: [] + m_Father: {fileID: 925070430802974285} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &5611524016588629208 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6906713865859834375} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!50 &4238428531384644721 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6906713865859834375} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!212 &1449818630039283507 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6906713865859834375} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 0 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Tests/Editor/Resources/VarSetTest.prefab.meta b/Assets/Tests/Editor/Resources/VarSetTest.prefab.meta new file mode 100644 index 00000000..2b9f08a2 --- /dev/null +++ b/Assets/Tests/Editor/Resources/VarSetTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8045e06b2be86d540b0d6d1b37d5e145 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/TestUtils.cs b/Assets/Tests/Editor/TestUtils.cs new file mode 100644 index 00000000..9ea4f4a5 --- /dev/null +++ b/Assets/Tests/Editor/TestUtils.cs @@ -0,0 +1,62 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using UnityEngine.Assertions; + +namespace Fungus.EditorUtils +{ + static public class TestUtils + { + /// + /// Loads a prefab from the resources folder, optionally waiting a preset amount of time for it to complete or until says it is done. + /// + /// Name of prefab in the editor resources folder to tunr, expects it to have a flowchart on in + /// that will try to execute at frame 0 + /// if true will run blocks in sequence until all are complete + /// max frames for the test to be allowed to run, will assert if it runs beyond this limit + /// + static public System.Collections.IEnumerator RunPrefabFlowchartTests(string prefabTestName, bool runBlocksManually = true, int maxFramesToComplete = 1000) + { + var resPrefab = UnityEngine.Resources.Load(prefabTestName); + Assert.IsNotNull(resPrefab); + var resTest = UnityEngine.Object.Instantiate(resPrefab); + + //give it a few frames to kick in + yield return null; + yield return null; + yield return null; + + // Use the Assert class to test conditions. + // Use yield to skip a frame. + var f = resTest.GetComponent(); + Assert.IsNotNull(f); + + int frame = 3; + + //ensure there isn't something already doing a job + while (f.HasExecutingBlocks()) + { + frame++; + Assert.IsTrue(frame < maxFramesToComplete); + yield return null; + } + + if (runBlocksManually) + { + var blocks = f.GetComponents(); + foreach (var block in blocks) + { + block.StartExecution(); + while (f.HasExecutingBlocks()) + { + frame++; + Assert.IsTrue(frame < maxFramesToComplete); + yield return null; + } + } + } + + UnityEngine.Object.Destroy(resTest); + } + } +} \ No newline at end of file diff --git a/Assets/Tests/Editor/TestUtils.cs.meta b/Assets/Tests/Editor/TestUtils.cs.meta new file mode 100644 index 00000000..e9e0acf6 --- /dev/null +++ b/Assets/Tests/Editor/TestUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a508e231ed2a5504cb0125cd7696739e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Editor/TextTagParserTests.cs b/Assets/Tests/Editor/TextTagParserTests.cs index 2dc6c26d..b10249bb 100644 --- a/Assets/Tests/Editor/TextTagParserTests.cs +++ b/Assets/Tests/Editor/TextTagParserTests.cs @@ -1,220 +1,222 @@ // This code is part of the Fungus library (https://github.com/snozbot/fungus) // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + using System.Collections.Generic; -using Fungus; #if UNITY_5_3_OR_NEWER using NUnit.Framework; -[TestFixture] -public class TextTagParserTests +namespace Fungus.Tests { - [Test] - public void TextTagParser_Parser() - { - // Parse an example string, generate correct sequence of tags - List tokens = TextTagParser.Tokenize("Words " + - "{b}bold test{/b}" + - "{i}italic test{/i}" + - "{color=red}color test{/color}" + - "{size=30}size test{/size}" + - "{w}{w=0.5}" + - "{wi}{wc}" + - "{wp}{wp=0.5}{/wp}" + - "{c}" + - "{s}{s=60}{/s}" + - "{x}{m=Message}" + - "{vpunch=0.5}" + - "{hpunch=0.5}" + - "{punch=0.5}" + - "{flash=0.5}" + - "{audio=Sound}" + - "{audioloop=Sound}" + - "{audiopause=Sound}" + - "{audiostop=Sound}"); - - int i = 0; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "Words "); - - i++; - Assert.That(tokens[i].type == TokenType.BoldStart); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "bold test"); - - i++; - Assert.That(tokens[i].type == TokenType.BoldEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.ItalicStart); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "italic test"); - - i++; - Assert.That(tokens[i].type == TokenType.ItalicEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.ColorStart); - Assert.That(tokens[i].paramList[0] == "red"); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "color test"); - - i++; - Assert.That(tokens[i].type == TokenType.ColorEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.SizeStart); - Assert.That(tokens[i].paramList[0] == "30"); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "size test"); - - i++; - Assert.That(tokens[i].type == TokenType.SizeEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Wait); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Wait); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.WaitForInputNoClear); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.WaitForInputAndClear); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.WaitOnPunctuationStart); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.WaitOnPunctuationStart); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.WaitOnPunctuationEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Clear); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.SpeedStart); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.SpeedStart); - Assert.That(tokens[i].paramList[0] == "60"); - - i++; - Assert.That(tokens[i].type == TokenType.SpeedEnd); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Exit); - Assert.That(tokens[i].paramList.Count == 0); - - i++; - Assert.That(tokens[i].type == TokenType.Message); - Assert.That(tokens[i].paramList[0] == "Message"); - - i++; - Assert.That(tokens[i].type == TokenType.VerticalPunch); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.HorizontalPunch); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.Punch); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.Flash); - Assert.That(tokens[i].paramList[0] == "0.5"); - - i++; - Assert.That(tokens[i].type == TokenType.Audio); - Assert.That(tokens[i].paramList[0] == "Sound"); - - i++; - Assert.That(tokens[i].type == TokenType.AudioLoop); - Assert.That(tokens[i].paramList[0] == "Sound"); - - i++; - Assert.That(tokens[i].type == TokenType.AudioPause); - Assert.That(tokens[i].paramList[0] == "Sound"); - - i++; - Assert.That(tokens[i].type == TokenType.AudioStop); - Assert.That(tokens[i].paramList[0] == "Sound"); - - Assert.That(tokens.Count == 34); - } - - [Test] - public void TextTagParser_AudioWaitBug() - { - // Parse an example string, generate correct sequence of tags - List tokens = TextTagParser.Tokenize("Play sound{audio=BeepSound}{w=1} Play loop{audioloop=BeepSound}{w=3} Stop{audiostop=BeepSound}"); - - int i = 0; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == "Play sound"); - - i++; - Assert.That(tokens[i].type == TokenType.Audio); - Assert.That(tokens[i].paramList[0] == "BeepSound"); - - i++; - Assert.That(tokens[i].type == TokenType.Wait); - Assert.That(tokens[i].paramList[0] == "1"); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == " Play loop"); - - i++; - Assert.That(tokens[i].type == TokenType.AudioLoop); - Assert.That(tokens[i].paramList[0] == "BeepSound"); - - i++; - Assert.That(tokens[i].type == TokenType.Wait); - Assert.That(tokens[i].paramList[0] == "3"); - - i++; - Assert.That(tokens[i].type == TokenType.Words); - Assert.That(tokens[i].paramList[0] == " Stop"); - - i++; - Assert.That(tokens[i].type == TokenType.AudioStop); - Assert.That(tokens[i].paramList[0] == "BeepSound"); - - Assert.That(tokens.Count == 8); - } - -} + [TestFixture] + public class TextTagParserTests + { + [Test] + public void TextTagParser_Parser() + { + // Parse an example string, generate correct sequence of tags + List tokens = TextTagParser.Tokenize("Words " + + "{b}bold test{/b}" + + "{i}italic test{/i}" + + "{color=red}color test{/color}" + + "{size=30}size test{/size}" + + "{w}{w=0.5}" + + "{wi}{wc}" + + "{wp}{wp=0.5}{/wp}" + + "{c}" + + "{s}{s=60}{/s}" + + "{x}{m=Message}" + + "{vpunch=0.5}" + + "{hpunch=0.5}" + + "{punch=0.5}" + + "{flash=0.5}" + + "{audio=Sound}" + + "{audioloop=Sound}" + + "{audiopause=Sound}" + + "{audiostop=Sound}"); + + int i = 0; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "Words "); + + i++; + Assert.That(tokens[i].type == TokenType.BoldStart); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "bold test"); + + i++; + Assert.That(tokens[i].type == TokenType.BoldEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.ItalicStart); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "italic test"); + + i++; + Assert.That(tokens[i].type == TokenType.ItalicEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.ColorStart); + Assert.That(tokens[i].paramList[0] == "red"); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "color test"); + + i++; + Assert.That(tokens[i].type == TokenType.ColorEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.SizeStart); + Assert.That(tokens[i].paramList[0] == "30"); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "size test"); + + i++; + Assert.That(tokens[i].type == TokenType.SizeEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Wait); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Wait); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.WaitForInputNoClear); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.WaitForInputAndClear); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.WaitOnPunctuationStart); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.WaitOnPunctuationStart); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.WaitOnPunctuationEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Clear); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.SpeedStart); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.SpeedStart); + Assert.That(tokens[i].paramList[0] == "60"); + + i++; + Assert.That(tokens[i].type == TokenType.SpeedEnd); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Exit); + Assert.That(tokens[i].paramList.Count == 0); + + i++; + Assert.That(tokens[i].type == TokenType.Message); + Assert.That(tokens[i].paramList[0] == "Message"); + + i++; + Assert.That(tokens[i].type == TokenType.VerticalPunch); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.HorizontalPunch); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.Punch); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.Flash); + Assert.That(tokens[i].paramList[0] == "0.5"); + + i++; + Assert.That(tokens[i].type == TokenType.Audio); + Assert.That(tokens[i].paramList[0] == "Sound"); + + i++; + Assert.That(tokens[i].type == TokenType.AudioLoop); + Assert.That(tokens[i].paramList[0] == "Sound"); + + i++; + Assert.That(tokens[i].type == TokenType.AudioPause); + Assert.That(tokens[i].paramList[0] == "Sound"); + + i++; + Assert.That(tokens[i].type == TokenType.AudioStop); + Assert.That(tokens[i].paramList[0] == "Sound"); + + Assert.That(tokens.Count == 34); + } + + [Test] + public void TextTagParser_AudioWaitBug() + { + // Parse an example string, generate correct sequence of tags + List tokens = TextTagParser.Tokenize("Play sound{audio=BeepSound}{w=1} Play loop{audioloop=BeepSound}{w=3} Stop{audiostop=BeepSound}"); + + int i = 0; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == "Play sound"); + + i++; + Assert.That(tokens[i].type == TokenType.Audio); + Assert.That(tokens[i].paramList[0] == "BeepSound"); + + i++; + Assert.That(tokens[i].type == TokenType.Wait); + Assert.That(tokens[i].paramList[0] == "1"); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == " Play loop"); + + i++; + Assert.That(tokens[i].type == TokenType.AudioLoop); + Assert.That(tokens[i].paramList[0] == "BeepSound"); + + i++; + Assert.That(tokens[i].type == TokenType.Wait); + Assert.That(tokens[i].paramList[0] == "3"); + + i++; + Assert.That(tokens[i].type == TokenType.Words); + Assert.That(tokens[i].paramList[0] == " Stop"); + + i++; + Assert.That(tokens[i].type == TokenType.AudioStop); + Assert.That(tokens[i].paramList[0] == "BeepSound"); + + Assert.That(tokens.Count == 8); + } + } #endif +} \ No newline at end of file diff --git a/Assets/Tests/PlayMode.meta b/Assets/Tests/PlayMode.meta new file mode 100644 index 00000000..8c8097a2 --- /dev/null +++ b/Assets/Tests/PlayMode.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4acdb00a01dd1704b81f757719a28f10 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/PlayMode/FungusPlayModeTest.cs b/Assets/Tests/PlayMode/FungusPlayModeTest.cs new file mode 100644 index 00000000..c29d463d --- /dev/null +++ b/Assets/Tests/PlayMode/FungusPlayModeTest.cs @@ -0,0 +1,31 @@ +// This code is part of the Fungus library (https://github.com/snozbot/fungus) +// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) + +using NUnit.Framework; +using System.Collections; +using UnityEngine.TestTools; + +namespace Fungus.Tests +{ + [TestFixture] + public class FungusPlayModeTest + { + [UnityTest] + public IEnumerator Looping() + { + yield return EditorUtils.TestUtils.RunPrefabFlowchartTests("LoopTest", true, 200); + } + + [UnityTest] + public IEnumerator ControlFlow() + { + yield return EditorUtils.TestUtils.RunPrefabFlowchartTests("FlowTest", true); + } + + [UnityTest] + public IEnumerator VariableSets() + { + yield return EditorUtils.TestUtils.RunPrefabFlowchartTests("VarSetTest", true); + } + } +} \ No newline at end of file diff --git a/Assets/Tests/PlayMode/FungusPlayModeTest.cs.meta b/Assets/Tests/PlayMode/FungusPlayModeTest.cs.meta new file mode 100644 index 00000000..406979b1 --- /dev/null +++ b/Assets/Tests/PlayMode/FungusPlayModeTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3aec7f0c484f05748a734082abc73f7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef b/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef new file mode 100644 index 00000000..24aab623 --- /dev/null +++ b/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef @@ -0,0 +1,37 @@ +{ + "name": "FungusPlayModeTests", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "Fungus", + "FungusEditor", + "FungusEditorTests" + ], + "includePlatforms": [], + "excludePlatforms": [ + "Android", + "BJM", + "iOS", + "LinuxStandalone64", + "Lumin", + "macOSStandalone", + "PS4", + "Switch", + "tvOS", + "WSA", + "WebGL", + "WindowsStandalone32", + "WindowsStandalone64", + "XboxOne" + ], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [] +} \ No newline at end of file diff --git a/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef.meta b/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef.meta new file mode 100644 index 00000000..485fc944 --- /dev/null +++ b/Assets/Tests/PlayMode/FungusPlayModeTests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e2babc96bfd54444191259bf2d0a6377 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index bfb533b4..fe001d56 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -3,7 +3,8 @@ --- !u!78 &1 TagManager: serializedVersion: 2 - tags: [] + tags: + - Collection layers: - Default - TransparentFX