diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..438ec7a --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# Contributing +If you found a bug or want to add a feature, you are more than welcome to make a Pull Request! + +When doing so, make sure to: +- Follow similar code style which is used in other scripts. +- Add tests cases under [ScriptableEventAttributeTestSource](../Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs) and [ScriptableEventTestSource](../Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs) when adding new event types. +- Add tests for additional features, for example how [SimpleScriptableEventTest](../Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs) does it for an additional method that is not covered in [ScriptableEventTest](../Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs). diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000..ce1f672 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,32 @@ +# Scriptable Events +[![Unity 2019.4+](https://img.shields.io/badge/unity-2019.4%2B-blue.svg)](https://unity3d.com/get-unity/download) +[![Actions Status](https://github.com/chark/scriptable-events/workflows/CI/badge.svg)](https://github.com/chark/scriptable-events/actions) + +Simple and extensible event system implemented via `ScriptableObject`, based on [Unite2017](https://github.com/roboryantron/Unite2017). + +

+ + +

+ +## Features +- Can be used with minimal or no code at all. +- Default event and listener implementations for commonly used types. +- Strongly typed. +- Ability to easily add custom events and inspector GUIs. + +## Installation +This package can be installed via the Unity Package Manager by [Installing from a Git URL](https://docs.unity3d.com/Manual/upm-ui-giturl.html): +```text +https://github.com/chark/scriptable-events.git#upm +``` + +Alternatively, you can also install it by adding the following dependency to `Packages/manifest.json`: +```text +"com.chark.scriptable-events": "https://github.com/chark/scriptable-events.git#upm" +``` + +## Documentation +- [Usage documentation](../Packages/com.chark.scriptable-events/Documentation~/README.md) +- [Contributing](CONTRIBUTING.md) +- [Changelog](../Packages/com.chark.scriptable-events/CHANGELOG.md) diff --git a/.github/event-listener.png b/.github/event-listener.png new file mode 100644 index 0000000..11ec95a Binary files /dev/null and b/.github/event-listener.png differ diff --git a/.github/event.png b/.github/event.png new file mode 100644 index 0000000..0c2477d Binary files /dev/null and b/.github/event.png differ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e66476c..c2dac06 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,3 +1,4 @@ +# TODO: automate based on https://medium.com/openupm/how-to-maintain-upm-package-part-1-7b4daf88d4c4 name: CI on: diff --git a/Assets/CHANGELOG.md b/Assets/CHANGELOG.md deleted file mode 100644 index f5f26bc..0000000 --- a/Assets/CHANGELOG.md +++ /dev/null @@ -1,98 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [1.1.0] - 2020-10-24 - -### Changed -- Exposed `OnValidate` and `OnEnable` methods to children of `MutableObject`. - -## [1.0.0] - 2020-10-13 - -### Changed -- Made game event editors more user-friendly. -- Naming in asset menus for game events. -- Listeners are now exposed as an unmodifiable `ICollection`. - -## [1.0.0-rc.1] - 2020-10-11 - -## [0.7.0] - 2020-10-11 - -### Added -- List of references to event listeners on game events will be drawn during play mode. -- Exposed listener enumerable. -- Editors for all built-in game event types. -- More tests! - -### Changed -- `Persisting` flag was changed to `ResetType` enum which allows more customization. - -### Removed -- Game event null checks on enable and disable. - -## [0.6.0] - 2020-10-07 - -### Changed -- Updated rendering settings for samples. -- Fixed version in `package.json`. - -## [0.5.0] - 2020-10-07 - -### Added -- Tests for game events and their listeners. -- Tests for mutable objects. - -### Changed -- **Renamed** event and listener trigger functions (`OnGameEvent` -> `RaiseGameEvent`). -- **Renamed** `GameEvents.Vector2.Vector3GameEvent` to `GameEvents.Vector2.Vector2GameEvent`, fixed typo. -- Made `MutableObjectHandler` more extensible. -- Exposed `GameEvent` and `OnGameEvent` on listeners via properties. -- `MutableObject` instances are now reset using `SceneManager.activeSceneChanged`. - -## [0.4.0] - 2020-10-06 - -### Added -- `MutableObjectHandler` which would automate the process of resetting `MutableObjects`. -- `Persisting` property on `IMutableObject` which determines how resetting should be handled. - -### Changed -- Cleaned up `MutableObject` sample. -- Updated documentation. - -### Removed -- `MutableObjectExtensions` as its purpose is now automated. - -## [0.3.0] - 2020-10-05 - -### Added -- Added `MutableBool`. - -### Changed -- Updated documentation. -- Cleaned up some classes to match the code style of the project. -- Updated assemblies. - -## [0.2.1] - 2020-10-03 - -### Added -- Images to documentation. - -## [0.2.0] - 2020-10-03 - -### Added -- Mutable objects. -- Samples for mutable objects. - -### Added -- Assembly definition for samples. - -## [0.1.0] - 2020-10-03 - -### Added -- Game events and listener components. -- Game events with arguments and listener components. -- Editors for raising game events and game events with arguments. -- Samples on how to use game events. -- Documentation. diff --git a/Assets/Documentation~/README.md b/Assets/Documentation~/README.md deleted file mode 100644 index 9eba67f..0000000 --- a/Assets/Documentation~/README.md +++ /dev/null @@ -1,126 +0,0 @@ -## Documentation - -### Game events -

- Example usage of Game Event assets - Example of a setup Game Event Listener component -

- -Game events are scriptable objects (_Right Click -> Create -> Game Events -> ..._) which can be subscribed to via listener components (_Add Component -> Game Events -> ..._). Events allow to decouple scripts and instead rely on intermediate `ScriptableObject` assets for communication. - -Available game events: -- `GameEvent` - simple event which doesn't accept any arguments. -- `BoolGameEvent` - event with a `bool` argument. -- `IntGameEvent` - event with an `int` argument. -- `FloatGameEvent` - event with a `float` argument. -- `StringGameEvent` - event with a `string` argument. -- `Vector2GameEvent` - event with a `Vector2` argument. -- `Vector3GameEvent` - event with a `Vector3` argument. -- `TransformGameEvent` - event with a `Transform` argument. -- `GameObjectGameEvent` - event with a `GameObject` argument. - -### Mutable objects -Example usage of Mutable Objects - -Mutable objects are used for storing and editing data on `ScriptableObject` assets at runtime. This data can be referenced, observed and used as a bridge by various scripts. Mutable objects are useful in situations where `ScriptableObject` data needs to be reset when the [active scene changes](https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-activeSceneChanged.html). - -Available mutable objects: -- `MutableBool` - encapsulates a `bool` value. -- `MutableInt` - encapsulates an `int` value. -- `MutableFloat` - encapsulates a `float` value. -- `MutableString` - encapsulates a `string` value. -- `MutableVector2` - encapsulates a `Vector2` value. -- `MutableVector3` - encapsulates a `Vector3` value. - -Each mutable object has a `ResetType` property. This allows specifying when data in the mutable object should be reset. The following modes are available: -- `None` - do not reset (default). -- `ActiveSceneChange` - when the active (focused) scene changes. -- `SceneUnloaded` - when the current scene gets unloaded. -- `SceneLoaded` - when the scene is loaded. - -### Custom game events -In some situations, built-in game events might not suffice. For example if a custom type needs to be passed as an argument to the event. In this case, a custom game event can be created which would carry all the necessary data. - -To create a custom game event, first create a regular `UnityEvent`: -```cs -[Serializable] -public class CustomEvent : UnityEvent -{ -} -``` - -After that is ready, create a game event by extending `GameEvents.Generic.ArgumentGameEvent`: -```cs -[CreateAssetMenu(fileName = "CustomEvent", menuName = "Game Events/Custom Event")] -public class CustomGameEvent : ArgumentGameEvent -{ -} -``` - -Finally, create a game event listener by extending `GameEvents.Generic.ArgumentGameEventListener`: -```cs -[AddComponentMenu("Game Events/Custom Game Event Listener")] -public class CustomGameEventListener : ArgumentGameEventListener -{ -} -``` - -, add a custom editor so that the event could be raised, and the listeners which reference the event get displayed in the inspector. -```cs -[CustomEditor(typeof(CustomGameEvent))] -public class GameObjectGameEventEditor : ArgumentGameEventEditor -{ - protected override Custom DrawArgumentField(Custom value) - { - var fieldValue = EditorGUILayout - .ObjectField(value, typeof(Custom), true); - - return fieldValue as Custom; - } -} -``` - -### Custom mutable objects -In some cases, littering the script code with loads of `MutableObject` references can be inconvenient. To avoid this, a single object can be used which encompasses multiple fields. - -To create a custom mutable object, extend `MutableObjects.Generic.MutableObject` and override `ResetValues()` method, e.g: -```cs -[CreateAssetMenu(fileName = "MutableCustom", menuName = "Mutable Objects/Mutable Custom")] -public class MutableCustom : MutableObject -{ - [SerializeField] - private int health = default; - - [SerializeField] - private int armor = default; - - [SerializeField] - private int xp = default; - - public int Health { get; set; } - - public int Armor { get; set; } - - public int Xp { get; set; } - - // This will set property values when mutable object is enabled or if the values change in the - // inspector. - public override void ResetValues() - { - Health = health; - Armor = armor; - Xp = xp; - } -} -``` - -[Unity Package Manager]: https://docs.unity3d.com/Packages/com.unity.package-manager-ui@2.0/manual/index.html diff --git a/Assets/Documentation~/game-events.png b/Assets/Documentation~/game-events.png deleted file mode 100644 index 1eb1443..0000000 Binary files a/Assets/Documentation~/game-events.png and /dev/null differ diff --git a/Assets/Documentation~/listeners.png b/Assets/Documentation~/listeners.png deleted file mode 100644 index 33e5cc2..0000000 Binary files a/Assets/Documentation~/listeners.png and /dev/null differ diff --git a/Assets/Documentation~/mutable-objects.png b/Assets/Documentation~/mutable-objects.png deleted file mode 100644 index b11443c..0000000 Binary files a/Assets/Documentation~/mutable-objects.png and /dev/null differ diff --git a/Assets/Editor/Chark.UnityScriptableObjects.Editor.asmdef b/Assets/Editor/Chark.UnityScriptableObjects.Editor.asmdef deleted file mode 100644 index f9e66aa..0000000 --- a/Assets/Editor/Chark.UnityScriptableObjects.Editor.asmdef +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Chark.UnityScriptableObjects.Editor", - "references": [ - "Chark.UnityScriptableObjects" - ], - "includePlatforms": [ - "Editor" - ] -} diff --git a/Assets/Editor/GameEvents/Bool.meta b/Assets/Editor/GameEvents/Bool.meta deleted file mode 100644 index 8767f2c..0000000 --- a/Assets/Editor/GameEvents/Bool.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 34167708c84442588aafd6c7ff8808dd -timeCreated: 1601721644 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Bool/BoolGameEventEditor.cs b/Assets/Editor/GameEvents/Bool/BoolGameEventEditor.cs deleted file mode 100644 index cc9a469..0000000 --- a/Assets/Editor/GameEvents/Bool/BoolGameEventEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.Bool -{ - [CustomEditor(typeof(BoolGameEvent))] - public class BoolGameEventEditor : ArgumentGameEventEditor - { - protected override bool DrawArgumentField(bool value) - { - return EditorGUILayout.Toggle(value); - } - } -} diff --git a/Assets/Editor/GameEvents/Float.meta b/Assets/Editor/GameEvents/Float.meta deleted file mode 100644 index 41f6e4f..0000000 --- a/Assets/Editor/GameEvents/Float.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 78bb1224441446668ebad91d1301bd49 -timeCreated: 1601721624 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Float/FloatGameEventEditor.cs b/Assets/Editor/GameEvents/Float/FloatGameEventEditor.cs deleted file mode 100644 index 1348e12..0000000 --- a/Assets/Editor/GameEvents/Float/FloatGameEventEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.Float -{ - [CustomEditor(typeof(FloatGameEvent))] - public class FloatGameEventEditor : ArgumentGameEventEditor - { - protected override float DrawArgumentField(float value) - { - return EditorGUILayout.FloatField(value); - } - } -} diff --git a/Assets/Editor/GameEvents/Game.meta b/Assets/Editor/GameEvents/Game.meta deleted file mode 100644 index 1654493..0000000 --- a/Assets/Editor/GameEvents/Game.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 552df535d6024270b6dbdabd6cd01ed9 -timeCreated: 1601721674 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Game/GameEventEditor.cs b/Assets/Editor/GameEvents/Game/GameEventEditor.cs deleted file mode 100644 index 8507006..0000000 --- a/Assets/Editor/GameEvents/Game/GameEventEditor.cs +++ /dev/null @@ -1,44 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; -using UnityEngine; - -namespace GameEvents.Game -{ - [CanEditMultipleObjects] - [CustomEditor(typeof(GameEvent))] - public class GameEventEditor : Editor - { - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - var gameEvent = target as GameEvent; - if (gameEvent == null) - { - return; - } - - GUI.enabled = Application.isPlaying; - EditorGUILayout.Space(); - - DrawRaise(gameEvent); - - if (!Application.isPlaying) - { - return; - } - - EditorGUILayout.Space(); - GameEventEditors.DrawReferences(gameEvent); - } - - private static void DrawRaise(IGameEvent gameEvent) - { - GameEventEditors.DrawPlaymodeLabel("Raise event"); - if (GUILayout.Button("Raise")) - { - gameEvent.RaiseGameEvent(); - } - } - } -} diff --git a/Assets/Editor/GameEvents/Game/GameEventEditor.cs.meta b/Assets/Editor/GameEvents/Game/GameEventEditor.cs.meta deleted file mode 100644 index 2cc8ebe..0000000 --- a/Assets/Editor/GameEvents/Game/GameEventEditor.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: aefbcf645ce54017af595ee80a2b6aaf -timeCreated: 1601505993 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/GameEventEditors.cs b/Assets/Editor/GameEvents/GameEventEditors.cs deleted file mode 100644 index f867f83..0000000 --- a/Assets/Editor/GameEvents/GameEventEditors.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections.Generic; -using GameEvents.Generic; -using UnityEditor; -using UnityEngine; - -namespace GameEvents -{ - public static class GameEventEditors - { - /// - /// Draw a list of argument game event listener references. - /// - public static void DrawReferences( - IArgumentGameEvent gameEvent - ) - { - DrawListeners(gameEvent.Listeners); - } - - /// - /// Draw a list of game event listener references. - /// - public static void DrawReferences(IGameEvent gameEvent) - { - DrawListeners(gameEvent.Listeners); - } - - /// - /// Draw a label which changes its suffix based on play mode state. - /// - public static void DrawPlaymodeLabel(string text) - { - var labelSuffix = Application.isPlaying ? "" : "(play mode only)"; - GUILayout.Label($"{text} {labelSuffix}"); - } - - private static void DrawListeners(ICollection listeners) - { - DrawPlaymodeLabel("Listeners"); - if (Application.isPlaying) - { - if (listeners.Count == 0) - { - EditorGUILayout.HelpBox( - "There are no listeners on this event", - MessageType.Warning - ); - - return; - } - - foreach (var listener in listeners) - { - if (listener is MonoBehaviour behaviour) - { - EditorGUILayout.ObjectField(behaviour, typeof(Object), true); - } - } - } - else - { - EditorGUILayout.HelpBox( - "Registered listeners will be displayed here", - MessageType.Info - ); - } - } - } -} diff --git a/Assets/Editor/GameEvents/GameEventEditors.cs.meta b/Assets/Editor/GameEvents/GameEventEditors.cs.meta deleted file mode 100644 index b52dc18..0000000 --- a/Assets/Editor/GameEvents/GameEventEditors.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 0b8ab43a41cc4902a452e98af8e27a04 -timeCreated: 1602580628 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs b/Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs deleted file mode 100644 index 5c17342..0000000 --- a/Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs +++ /dev/null @@ -1,18 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.GameObject -{ - [CustomEditor(typeof(GameObjectGameEvent))] - public class GameObjectGameEventEditor - : ArgumentGameEventEditor - { - protected override UnityEngine.GameObject DrawArgumentField(UnityEngine.GameObject value) - { - var fieldValue = EditorGUILayout - .ObjectField(value, typeof(UnityEngine.GameObject), true); - - return fieldValue as UnityEngine.GameObject; - } - } -} diff --git a/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs b/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs deleted file mode 100644 index 27ac0a8..0000000 --- a/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs +++ /dev/null @@ -1,49 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace GameEvents.Generic -{ - [CanEditMultipleObjects] - public abstract class ArgumentGameEventEditor : Editor - where TGameEvent : class, IArgumentGameEvent - { - private TArgument argumentValue = default; - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - if (!(target is TGameEvent gameEvent)) - { - return; - } - - GUI.enabled = Application.isPlaying; - EditorGUILayout.Space(); - - DrawRaise(gameEvent); - - EditorGUILayout.Space(); - GameEventEditors.DrawReferences(gameEvent); - } - - private void DrawRaise(TGameEvent gameEvent) - { - GameEventEditors.DrawPlaymodeLabel("Raise event"); - GUILayout.BeginHorizontal(); - - argumentValue = DrawArgumentField(argumentValue); - if (GUILayout.Button("Raise")) - { - gameEvent.RaiseGameEvent(argumentValue); - } - - GUILayout.EndHorizontal(); - } - - /// - /// Value that is entered in the argument field. - /// - protected abstract TArgument DrawArgumentField(TArgument value); - } -} diff --git a/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs.meta b/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs.meta deleted file mode 100644 index a73e45f..0000000 --- a/Assets/Editor/GameEvents/Generic/ArgumentGameEventEditor.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c1612c78d6e34250a68141b82ff6d894 -timeCreated: 1601501695 diff --git a/Assets/Editor/GameEvents/Int.meta b/Assets/Editor/GameEvents/Int.meta deleted file mode 100644 index 9f549af..0000000 --- a/Assets/Editor/GameEvents/Int.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 49b514db2c774b26a87cea2ef32b4687 -timeCreated: 1601721604 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Int/IntGameEventEditor.cs b/Assets/Editor/GameEvents/Int/IntGameEventEditor.cs deleted file mode 100644 index f9e838f..0000000 --- a/Assets/Editor/GameEvents/Int/IntGameEventEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.Int -{ - [CustomEditor(typeof(IntGameEvent))] - public class IntGameEventEditor : ArgumentGameEventEditor - { - protected override int DrawArgumentField(int value) - { - return EditorGUILayout.IntField(value); - } - } -} diff --git a/Assets/Editor/GameEvents/String.meta b/Assets/Editor/GameEvents/String.meta deleted file mode 100644 index c4b2133..0000000 --- a/Assets/Editor/GameEvents/String.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a6ec7806d24c4a288012c9db2307e9ef -timeCreated: 1601721579 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/String/StringGameEventEditor.cs b/Assets/Editor/GameEvents/String/StringGameEventEditor.cs deleted file mode 100644 index e95da81..0000000 --- a/Assets/Editor/GameEvents/String/StringGameEventEditor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.String -{ - [CustomEditor(typeof(StringGameEvent))] - public class StringGameEventEditor : ArgumentGameEventEditor - { - protected override string DrawArgumentField(string value) - { - return EditorGUILayout.TextField(value); - } - } -} diff --git a/Assets/Editor/GameEvents/Transform.meta b/Assets/Editor/GameEvents/Transform.meta deleted file mode 100644 index 22bb00f..0000000 --- a/Assets/Editor/GameEvents/Transform.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 703e3d5cb1cc43d181567521f66b2b99 -timeCreated: 1602360189 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Transform/GameObjectGameEventEditor.cs b/Assets/Editor/GameEvents/Transform/GameObjectGameEventEditor.cs deleted file mode 100644 index 48083fe..0000000 --- a/Assets/Editor/GameEvents/Transform/GameObjectGameEventEditor.cs +++ /dev/null @@ -1,18 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; - -namespace GameEvents.Transform -{ - [CustomEditor(typeof(TransformGameEvent))] - public class TransformGameEventEditor - : ArgumentGameEventEditor - { - protected override UnityEngine.Transform DrawArgumentField(UnityEngine.Transform value) - { - var fieldValue = EditorGUILayout - .ObjectField(value, typeof(UnityEngine.Transform), true); - - return fieldValue as UnityEngine.Transform; - } - } -} diff --git a/Assets/Editor/GameEvents/Vector2.meta b/Assets/Editor/GameEvents/Vector2.meta deleted file mode 100644 index 513a646..0000000 --- a/Assets/Editor/GameEvents/Vector2.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: ddf1da149e354e49867cd11e27b6dbe4 -timeCreated: 1601721543 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Vector2/Vector2GameEventEditor.cs b/Assets/Editor/GameEvents/Vector2/Vector2GameEventEditor.cs deleted file mode 100644 index 9572d82..0000000 --- a/Assets/Editor/GameEvents/Vector2/Vector2GameEventEditor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; -using UnityEngine; - -namespace GameEvents.Vector2 -{ - [CustomEditor(typeof(Vector2GameEvent))] - public class Vector2GameEventEditor - : ArgumentGameEventEditor - { - protected override UnityEngine.Vector2 DrawArgumentField(UnityEngine.Vector2 value) - { - return EditorGUILayout.Vector2Field(GUIContent.none, value); - } - } -} diff --git a/Assets/Editor/GameEvents/Vector3.meta b/Assets/Editor/GameEvents/Vector3.meta deleted file mode 100644 index 1b31307..0000000 --- a/Assets/Editor/GameEvents/Vector3.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5bc1c7979217484f816520ba3c2e374d -timeCreated: 1601721475 \ No newline at end of file diff --git a/Assets/Editor/GameEvents/Vector3/Vector3GameEventEditor.cs b/Assets/Editor/GameEvents/Vector3/Vector3GameEventEditor.cs deleted file mode 100644 index f304492..0000000 --- a/Assets/Editor/GameEvents/Vector3/Vector3GameEventEditor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using GameEvents.Generic; -using UnityEditor; -using UnityEngine; - -namespace GameEvents.Vector3 -{ - [CustomEditor(typeof(Vector3GameEvent))] - public class Vector3GameEventEditor - : ArgumentGameEventEditor - { - protected override UnityEngine.Vector3 DrawArgumentField(UnityEngine.Vector3 value) - { - return EditorGUILayout.Vector3Field(GUIContent.none, value); - } - } -} diff --git a/Assets/Runtime/Chark.UnityScriptableObjects.asmdef b/Assets/Runtime/Chark.UnityScriptableObjects.asmdef deleted file mode 100644 index e23f533..0000000 --- a/Assets/Runtime/Chark.UnityScriptableObjects.asmdef +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "Chark.UnityScriptableObjects", - "references": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Bool/BoolEvent.cs b/Assets/Runtime/GameEvents/Bool/BoolEvent.cs deleted file mode 100644 index 915028b..0000000 --- a/Assets/Runtime/GameEvents/Bool/BoolEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Bool -{ - [Serializable] - public class BoolEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Bool/BoolGameEvent.cs b/Assets/Runtime/GameEvents/Bool/BoolGameEvent.cs deleted file mode 100644 index a7d2470..0000000 --- a/Assets/Runtime/GameEvents/Bool/BoolGameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Bool -{ - [CreateAssetMenu(fileName = "BoolGameEvent", menuName = "Game Events/Bool Game Event")] - public class BoolGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Bool/BoolGameEventListener.cs b/Assets/Runtime/GameEvents/Bool/BoolGameEventListener.cs deleted file mode 100644 index 8d6112e..0000000 --- a/Assets/Runtime/GameEvents/Bool/BoolGameEventListener.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Bool -{ - [AddComponentMenu("Game Events/Bool Game Event Listener")] - public class BoolGameEventListener : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Float/FloatEvent.cs b/Assets/Runtime/GameEvents/Float/FloatEvent.cs deleted file mode 100644 index 19a4f29..0000000 --- a/Assets/Runtime/GameEvents/Float/FloatEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Float -{ - [Serializable] - public class FloatEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Float/FloatGameEvent.cs b/Assets/Runtime/GameEvents/Float/FloatGameEvent.cs deleted file mode 100644 index 03208ee..0000000 --- a/Assets/Runtime/GameEvents/Float/FloatGameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Float -{ - [CreateAssetMenu(fileName = "FloatGameEvent", menuName = "Game Events/Float Game Event")] - public class FloatGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Float/FloatGameEventListener.cs b/Assets/Runtime/GameEvents/Float/FloatGameEventListener.cs deleted file mode 100644 index aa18044..0000000 --- a/Assets/Runtime/GameEvents/Float/FloatGameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Float -{ - [AddComponentMenu("Game Events/Float Game Event Listener")] - public class - FloatGameEventListener : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Game/GameEvent.cs b/Assets/Runtime/GameEvents/Game/GameEvent.cs deleted file mode 100644 index 109fe2b..0000000 --- a/Assets/Runtime/GameEvents/Game/GameEvent.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Game -{ - [CreateAssetMenu(fileName = "GameEvent", menuName = "Game Events/Game Event")] - public class GameEvent : ScriptableObject, IGameEvent - { - [SerializeField] - [Tooltip("Should debug messages be logged for this event")] - private bool debug = false; - - private readonly ReadOnlyCollection readListeners; - - private readonly List listeners = - new List(); - - public ICollection Listeners => readListeners; - - public GameEvent() - { - readListeners = listeners.AsReadOnly(); - } - - public void RaiseGameEvent() - { - if (debug) - { - Debug.Log($"Raise event: {name}"); - } - - for (var i = listeners.Count - 1; i >= 0; i--) - { - var listener = listeners[i]; - if (debug) - { - Debug.Log($"Raise event: {name}, listener: {listener}"); - } - - try - { - listener.RaiseGameEvent(); - } - catch (Exception e) - { - Debug.Log($"Listener: {listener} of event: {name} has thrown an exception."); - Debug.LogException(e, this); - } - } - } - - public void RegisterListener(IGameEventListener listener) - { - if (debug) - { - Debug.Log($"Registering listener: {listener}"); - } - - listeners.Add(listener); - } - - public void UnregisterListener(IGameEventListener listener) - { - if (debug) - { - Debug.Log($"Unregistering listener: {listener}"); - } - - listeners.Remove(listener); - } - } -} diff --git a/Assets/Runtime/GameEvents/Game/GameEvent.cs.meta b/Assets/Runtime/GameEvents/Game/GameEvent.cs.meta deleted file mode 100644 index e3511ef..0000000 --- a/Assets/Runtime/GameEvents/Game/GameEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 21db6c450dc447148ebdd67c2a7c553d -timeCreated: 1601505560 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Game/GameEventListener.cs b/Assets/Runtime/GameEvents/Game/GameEventListener.cs deleted file mode 100644 index 9631544..0000000 --- a/Assets/Runtime/GameEvents/Game/GameEventListener.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Game -{ - [AddComponentMenu("Game Events/Game Event Listener")] - public class GameEventListener : BaseGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Game/GameEventListener.cs.meta b/Assets/Runtime/GameEvents/Game/GameEventListener.cs.meta deleted file mode 100644 index 719d6f6..0000000 --- a/Assets/Runtime/GameEvents/Game/GameEventListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a0b2f85583a54b21922069d1d0951342 -timeCreated: 1601742453 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectEvent.cs b/Assets/Runtime/GameEvents/GameObject/GameObjectEvent.cs deleted file mode 100644 index 61f48ce..0000000 --- a/Assets/Runtime/GameEvents/GameObject/GameObjectEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.GameObject -{ - [Serializable] - public class GameObjectEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEvent.cs b/Assets/Runtime/GameEvents/GameObject/GameObjectGameEvent.cs deleted file mode 100644 index 7cce532..0000000 --- a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.GameObject -{ - [CreateAssetMenu(fileName = "GameObjectEvent", menuName = "Game Events/Game Object Event")] - public class GameObjectGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEventListener.cs b/Assets/Runtime/GameEvents/GameObject/GameObjectGameEventListener.cs deleted file mode 100644 index 070afd0..0000000 --- a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.GameObject -{ - [AddComponentMenu("Game Events/Game Object Game Event Listener")] - public class GameObjectGameEventListener - : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Generic.meta b/Assets/Runtime/GameEvents/Generic.meta deleted file mode 100644 index 047b9f2..0000000 --- a/Assets/Runtime/GameEvents/Generic.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 133ae890956e447e848186dd54bab7dd -timeCreated: 1601497071 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs b/Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs deleted file mode 100644 index a89fdf0..0000000 --- a/Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using UnityEngine; - -namespace GameEvents.Generic -{ - public abstract class ArgumentGameEvent - : ScriptableObject, IArgumentGameEvent - { - [SerializeField] - [Tooltip("Should debug messages be logged for this event")] - private bool debug = false; - - private readonly ReadOnlyCollection> readListeners; - - private readonly List> listeners = - new List>(); - - public ICollection> Listeners => readListeners; - - public ArgumentGameEvent() - { - readListeners = listeners.AsReadOnly(); - } - - public void RaiseGameEvent(TArgument argument) - { - if (debug) - { - Debug.Log($"Raise event: {name} with an argument: {argument}"); - } - - for (var i = listeners.Count - 1; i >= 0; i--) - { - var listener = listeners[i]; - if (debug) - { - Debug.Log($"Raise event: {name}, listener: {listener}, argument: {argument}"); - } - - try - { - listener.RaiseGameEvent(argument); - } - catch (Exception e) - { - Debug.Log($"Listener: {listener} of event: {name} has thrown an exception."); - Debug.LogException(e, this); - } - } - } - - public void RegisterListener(IArgumentGameEventListener listener) - { - if (debug) - { - Debug.Log($"Registering listener: {listener}"); - } - - listeners.Add(listener); - } - - public void UnregisterListener(IArgumentGameEventListener listener) - { - if (debug) - { - Debug.Log($"Unregistering listener: {listener}"); - } - - listeners.Remove(listener); - } - } -} diff --git a/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs b/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs deleted file mode 100644 index 21b36f0..0000000 --- a/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs +++ /dev/null @@ -1,57 +0,0 @@ -using UnityEngine; -using UnityEngine.Events; - -namespace GameEvents.Generic -{ - public abstract class ArgumentGameEventListener - : MonoBehaviour, IArgumentGameEventListener - where TGameEvent : IArgumentGameEvent - where TUnityEvent : UnityEvent - { - [SerializeField] - [Tooltip("Game event to listen to which will trigger the onGameEvent event")] - private TGameEvent gameEvent = default; - - // ReSharper disable once Unity.RedundantSerializeFieldAttribute - // ReSharper disable once FieldCanBeMadeReadOnly.Local - [SerializeField] - [Tooltip("Called when the listener is triggered with an argument")] - private TUnityEvent onGameEvent = default; - - /// - /// Get or set the underlying GameEvent. - /// - public TGameEvent GameEvent - { - get => gameEvent; - set => gameEvent = value; - } - - /// - /// Get or set the underlying UnityEvent. - /// - public TUnityEvent OnGameEvent - { - get => onGameEvent; - set => onGameEvent = value; - } - - /// - /// Trigger this listener with an argument. - /// - public void RaiseGameEvent(TArgument argument) - { - onGameEvent.Invoke(argument); - } - - private void OnEnable() - { - gameEvent.RegisterListener(this); - } - - private void OnDisable() - { - gameEvent.UnregisterListener(this); - } - } -} diff --git a/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs.meta b/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs.meta deleted file mode 100644 index bb0294a..0000000 --- a/Assets/Runtime/GameEvents/Generic/ArgumentGameEventListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a56f032f967a4020adcd19a17ba06e54 -timeCreated: 1601496583 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs b/Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs deleted file mode 100644 index 7e40fdd..0000000 --- a/Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs +++ /dev/null @@ -1,51 +0,0 @@ -using UnityEngine; -using UnityEngine.Events; - -namespace GameEvents.Generic -{ - public abstract class BaseGameEventListener - : MonoBehaviour, IGameEventListener - where TGameEvent : IGameEvent - { - [SerializeField] - [Tooltip("Game event to listen to which will trigger the onGameEvent event")] - private TGameEvent gameEvent = default; - - [SerializeField] - [Tooltip("Called when the listener is triggered with an argument")] - private UnityEvent onGameEvent = default; - - /// - /// Get or set the underlying GameEvent. - /// - public TGameEvent GameEvent - { - get => gameEvent; - set => gameEvent = value; - } - - /// - /// Get or set the underlying UnityEvent. - /// - public UnityEvent OnGameEvent - { - get => onGameEvent; - set => onGameEvent = value; - } - - public void RaiseGameEvent() - { - onGameEvent.Invoke(); - } - - private void OnEnable() - { - gameEvent.RegisterListener(this); - } - - private void OnDisable() - { - gameEvent.UnregisterListener(this); - } - } -} diff --git a/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs b/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs deleted file mode 100644 index d473a55..0000000 --- a/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections.Generic; - -namespace GameEvents.Generic -{ - public interface IArgumentGameEvent - { - /// - /// Currently registered listeners. - /// - ICollection> Listeners { get; } - - /// - /// Raise this event with an argument. - /// - void RaiseGameEvent(TArgument argument); - - /// - /// Register a listener with an argument to this event. - /// - void RegisterListener(IArgumentGameEventListener listener); - - /// - /// Unregister a listener with an argument from this event. - /// - void UnregisterListener(IArgumentGameEventListener listener); - } -} diff --git a/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs.meta b/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs.meta deleted file mode 100644 index 943916a..0000000 --- a/Assets/Runtime/GameEvents/Generic/IArgumentGameEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a2c094d73e984a8a8c3f5c6aa06da650 -timeCreated: 1601504434 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs b/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs deleted file mode 100644 index 8bf8402..0000000 --- a/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace GameEvents.Generic -{ - public interface IArgumentGameEventListener - { - /// - /// Trigger this listener with an argument. - /// - void RaiseGameEvent(TArgument argument); - } -} diff --git a/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs.meta b/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs.meta deleted file mode 100644 index 9bfe625..0000000 --- a/Assets/Runtime/GameEvents/Generic/IArgumentGameEventListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 46728124ea394601833d952b6563f90f -timeCreated: 1601504669 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Generic/IGameEvent.cs b/Assets/Runtime/GameEvents/Generic/IGameEvent.cs deleted file mode 100644 index af1467c..0000000 --- a/Assets/Runtime/GameEvents/Generic/IGameEvent.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections.Generic; - -namespace GameEvents.Generic -{ - public interface IGameEvent - { - /// - /// Currently registered listeners. - /// - ICollection Listeners { get; } - - /// - /// Raise this event. - /// - void RaiseGameEvent(); - - /// - /// Register a listener to this event. - /// - void RegisterListener(IGameEventListener listener); - - /// - /// Unregister a listener from this event. - /// - void UnregisterListener(IGameEventListener listener); - } -} diff --git a/Assets/Runtime/GameEvents/Generic/IGameEvent.cs.meta b/Assets/Runtime/GameEvents/Generic/IGameEvent.cs.meta deleted file mode 100644 index 349f8a6..0000000 --- a/Assets/Runtime/GameEvents/Generic/IGameEvent.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: d4028bf2eaa644448f5cc6c883dfe8fb -timeCreated: 1601500047 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs b/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs deleted file mode 100644 index f248236..0000000 --- a/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace GameEvents.Generic -{ - public interface IGameEventListener - { - /// - /// Trigger this listener. - /// - void RaiseGameEvent(); - } -} diff --git a/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs.meta b/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs.meta deleted file mode 100644 index 2d28477..0000000 --- a/Assets/Runtime/GameEvents/Generic/IGameEventListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 92f33ef0400e4dc9868b6d2ba4f0336b -timeCreated: 1601500241 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Int/IntEvent.cs b/Assets/Runtime/GameEvents/Int/IntEvent.cs deleted file mode 100644 index c7c96b5..0000000 --- a/Assets/Runtime/GameEvents/Int/IntEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Int -{ - [Serializable] - public class IntEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Int/IntGameEvent.cs b/Assets/Runtime/GameEvents/Int/IntGameEvent.cs deleted file mode 100644 index 5fd24e0..0000000 --- a/Assets/Runtime/GameEvents/Int/IntGameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Int -{ - [CreateAssetMenu(fileName = "IntGameEvent", menuName = "Game Events/Int Game Event")] - public class IntGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Int/IntGameEventListener.cs b/Assets/Runtime/GameEvents/Int/IntGameEventListener.cs deleted file mode 100644 index 7259412..0000000 --- a/Assets/Runtime/GameEvents/Int/IntGameEventListener.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Int -{ - [AddComponentMenu("Game Events/Int Game Event Listener")] - public class IntGameEventListener : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/String/StringEvent.cs b/Assets/Runtime/GameEvents/String/StringEvent.cs deleted file mode 100644 index 157bd13..0000000 --- a/Assets/Runtime/GameEvents/String/StringEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.String -{ - [Serializable] - public class StringEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/String/StringGameEvent.cs b/Assets/Runtime/GameEvents/String/StringGameEvent.cs deleted file mode 100644 index cdcabd0..0000000 --- a/Assets/Runtime/GameEvents/String/StringGameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.String -{ - [CreateAssetMenu(fileName = "StringGameEvent", menuName = "Game Events/String Game Event")] - public class StringGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/String/StringGameEventListener.cs b/Assets/Runtime/GameEvents/String/StringGameEventListener.cs deleted file mode 100644 index 6d78850..0000000 --- a/Assets/Runtime/GameEvents/String/StringGameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.String -{ - [AddComponentMenu("Game Events/String Game Event Listener")] - public class - StringGameEventListener : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Transform/TransformEvent.cs b/Assets/Runtime/GameEvents/Transform/TransformEvent.cs deleted file mode 100644 index 2b79745..0000000 --- a/Assets/Runtime/GameEvents/Transform/TransformEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Transform -{ - [Serializable] - public class TransformEvent : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Transform/TransformGameEvent.cs b/Assets/Runtime/GameEvents/Transform/TransformGameEvent.cs deleted file mode 100644 index 5a0ffc0..0000000 --- a/Assets/Runtime/GameEvents/Transform/TransformGameEvent.cs +++ /dev/null @@ -1,13 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Transform -{ - [CreateAssetMenu( - fileName = "TransformGameEvent", - menuName = "Game Events/Transform Game Event" - )] - public class TransformGameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Transform/TransformGameEventListener.cs b/Assets/Runtime/GameEvents/Transform/TransformGameEventListener.cs deleted file mode 100644 index e2d086c..0000000 --- a/Assets/Runtime/GameEvents/Transform/TransformGameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Transform -{ - [AddComponentMenu("Game Events/Transform Game Event Listener")] - public class TransformGameEventListener - : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2Event.cs b/Assets/Runtime/GameEvents/Vector2/Vector2Event.cs deleted file mode 100644 index 398676f..0000000 --- a/Assets/Runtime/GameEvents/Vector2/Vector2Event.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Vector2 -{ - [Serializable] - public class Vector2Event : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2GameEvent.cs b/Assets/Runtime/GameEvents/Vector2/Vector2GameEvent.cs deleted file mode 100644 index 125d954..0000000 --- a/Assets/Runtime/GameEvents/Vector2/Vector2GameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Vector2 -{ - [CreateAssetMenu(fileName = "Vector2GameEvent", menuName = "Game Events/Vector2 Game Event")] - public class Vector2GameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2GameEventListener.cs b/Assets/Runtime/GameEvents/Vector2/Vector2GameEventListener.cs deleted file mode 100644 index e89ad9f..0000000 --- a/Assets/Runtime/GameEvents/Vector2/Vector2GameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Vector2 -{ - [AddComponentMenu("Game Events/Vector2 Game Event Listener")] - public class Vector2GameEventListener - : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3Event.cs b/Assets/Runtime/GameEvents/Vector3/Vector3Event.cs deleted file mode 100644 index b089736..0000000 --- a/Assets/Runtime/GameEvents/Vector3/Vector3Event.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using UnityEngine.Events; - -namespace GameEvents.Vector3 -{ - [Serializable] - public class Vector3Event : UnityEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3GameEvent.cs b/Assets/Runtime/GameEvents/Vector3/Vector3GameEvent.cs deleted file mode 100644 index 06316b4..0000000 --- a/Assets/Runtime/GameEvents/Vector3/Vector3GameEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Vector3 -{ - [CreateAssetMenu(fileName = "Vector3GameEvent", menuName = "Game Events/Vector3 Game Event")] - public class Vector3GameEvent : ArgumentGameEvent - { - } -} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3GameEventListener.cs b/Assets/Runtime/GameEvents/Vector3/Vector3GameEventListener.cs deleted file mode 100644 index 2fdc4f4..0000000 --- a/Assets/Runtime/GameEvents/Vector3/Vector3GameEventListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; -using UnityEngine; - -namespace GameEvents.Vector3 -{ - [AddComponentMenu("Game Events/Vector3 Game Event Listener")] - public class Vector3GameEventListener - : ArgumentGameEventListener - { - } -} diff --git a/Assets/Runtime/MutableObjects.meta b/Assets/Runtime/MutableObjects.meta deleted file mode 100644 index 4dad3c5..0000000 --- a/Assets/Runtime/MutableObjects.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2ea4f42a83854093888d1eb0445f14e7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Runtime/MutableObjects/Bool.meta b/Assets/Runtime/MutableObjects/Bool.meta deleted file mode 100644 index e773051..0000000 --- a/Assets/Runtime/MutableObjects/Bool.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 2b602cbfff2146469cc800fdfd2d77c4 -timeCreated: 1601914554 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Bool/MutableBool.cs b/Assets/Runtime/MutableObjects/Bool/MutableBool.cs deleted file mode 100644 index 895c21b..0000000 --- a/Assets/Runtime/MutableObjects/Bool/MutableBool.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.Bool -{ - [CreateAssetMenu(fileName = "MutableBool", menuName = "Mutable Objects/Mutable Bool")] - public class MutableBool : MutableObject - { - [SerializeField] - private bool value = default; - - public bool Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/Bool/MutableBool.cs.meta b/Assets/Runtime/MutableObjects/Bool/MutableBool.cs.meta deleted file mode 100644 index 3a404a9..0000000 --- a/Assets/Runtime/MutableObjects/Bool/MutableBool.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: e3b0adfed72642e4a860b3de85741e11 -timeCreated: 1601914554 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Float.meta b/Assets/Runtime/MutableObjects/Float.meta deleted file mode 100644 index b226992..0000000 --- a/Assets/Runtime/MutableObjects/Float.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: ffa1662b22ac4a6d9b9f384ba273ef48 -timeCreated: 1601743192 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Float/MutableFloat.cs b/Assets/Runtime/MutableObjects/Float/MutableFloat.cs deleted file mode 100644 index a4f149f..0000000 --- a/Assets/Runtime/MutableObjects/Float/MutableFloat.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.Float -{ - [CreateAssetMenu(fileName = "MutableFloat", menuName = "Mutable Objects/Mutable Float")] - public class MutableFloat : MutableObject - { - [SerializeField] - private float value = default; - - public float Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/Float/MutableFloat.cs.meta b/Assets/Runtime/MutableObjects/Float/MutableFloat.cs.meta deleted file mode 100644 index b3ece7c..0000000 --- a/Assets/Runtime/MutableObjects/Float/MutableFloat.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: fe56b70473a64c369b9ed218633feb0c -timeCreated: 1601743192 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Generic.meta b/Assets/Runtime/MutableObjects/Generic.meta deleted file mode 100644 index 788cdf6..0000000 --- a/Assets/Runtime/MutableObjects/Generic.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c89a661ef9e94b6ab72f968a3e2c2cc7 -timeCreated: 1601742725 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs b/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs deleted file mode 100644 index 3372983..0000000 --- a/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace MutableObjects.Generic -{ - public interface IMutableObject - { - /// - /// When this mutable object should be reset. - /// - ResetType ResetType { get; } - - /// - /// Reset values on this mutable object to their original ones. - /// - void ResetValues(); - } -} diff --git a/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs.meta b/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs.meta deleted file mode 100644 index 048cc03..0000000 --- a/Assets/Runtime/MutableObjects/Generic/IMutableObject.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 09be57a60c2b49698c09a6a1babd15b2 -timeCreated: 1601742710 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Generic/MutableObject.cs b/Assets/Runtime/MutableObjects/Generic/MutableObject.cs deleted file mode 100644 index f82c070..0000000 --- a/Assets/Runtime/MutableObjects/Generic/MutableObject.cs +++ /dev/null @@ -1,25 +0,0 @@ -using UnityEngine; - -namespace MutableObjects.Generic -{ - public abstract class MutableObject : ScriptableObject, IMutableObject - { - [SerializeField] - [Tooltip("When reset should be called for this object")] - private ResetType resetType = ResetType.None; - - public ResetType ResetType => resetType; - - public abstract void ResetValues(); - - protected virtual void OnValidate() - { - ResetValues(); - } - - protected virtual void OnEnable() - { - ResetValues(); - } - } -} diff --git a/Assets/Runtime/MutableObjects/Generic/MutableObject.cs.meta b/Assets/Runtime/MutableObjects/Generic/MutableObject.cs.meta deleted file mode 100644 index aed6db6..0000000 --- a/Assets/Runtime/MutableObjects/Generic/MutableObject.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: e1df6005a214430c9e8cbbf1366da9ff -timeCreated: 1601742868 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Generic/ResetType.cs b/Assets/Runtime/MutableObjects/Generic/ResetType.cs deleted file mode 100644 index 130de40..0000000 --- a/Assets/Runtime/MutableObjects/Generic/ResetType.cs +++ /dev/null @@ -1,19 +0,0 @@ -using UnityEngine; - -namespace MutableObjects.Generic -{ - public enum ResetType - { - [Tooltip("Do not reset")] - None, - - [Tooltip("Reset when the active (focused) scene changes")] - ActiveSceneChange, - - [Tooltip("Reset when the current scene gets unloaded")] - SceneUnloaded, - - [Tooltip("Reset when the scene is loaded")] - SceneLoaded - } -} diff --git a/Assets/Runtime/MutableObjects/Generic/ResetType.cs.meta b/Assets/Runtime/MutableObjects/Generic/ResetType.cs.meta deleted file mode 100644 index 637096d..0000000 --- a/Assets/Runtime/MutableObjects/Generic/ResetType.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: f61a23a3d27a495ba161056ee0f552e2 -timeCreated: 1602362226 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Int.meta b/Assets/Runtime/MutableObjects/Int.meta deleted file mode 100644 index d1108e8..0000000 --- a/Assets/Runtime/MutableObjects/Int.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: e245b06a03f14b96b9c89499acf5852c -timeCreated: 1601742950 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Int/MutableInt.cs b/Assets/Runtime/MutableObjects/Int/MutableInt.cs deleted file mode 100644 index d782a84..0000000 --- a/Assets/Runtime/MutableObjects/Int/MutableInt.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.Int -{ - [CreateAssetMenu(fileName = "MutableInt", menuName = "Mutable Objects/Mutable Int")] - public class MutableInt : MutableObject - { - [SerializeField] - private int value = default; - - public int Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/Int/MutableInt.cs.meta b/Assets/Runtime/MutableObjects/Int/MutableInt.cs.meta deleted file mode 100644 index a9b93e0..0000000 --- a/Assets/Runtime/MutableObjects/Int/MutableInt.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: eb4c1ad19b56486ca2a4e9514f8b7acc -timeCreated: 1601742962 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/MutableObjectHandler.cs b/Assets/Runtime/MutableObjects/MutableObjectHandler.cs deleted file mode 100644 index fbe816b..0000000 --- a/Assets/Runtime/MutableObjects/MutableObjectHandler.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using MutableObjects.Generic; - -namespace MutableObjects -{ - public class MutableObjectHandler - { - private readonly List mutableObjects; - - public MutableObjectHandler(List mutableObjects) - { - this.mutableObjects = mutableObjects; - } - - /// - /// Set initial mutable object values (ignoring reset type). - /// - public void SetInitialMutableObjectValues() - { - // Initial all mutable objects are reset (set initial values). - ResetMutableObjects(mutableObjects); - } - - /// - /// Reset objects with reset type. - /// - public void ResetActiveSceneChange() - { - ResetMutableObjects(ResetType.ActiveSceneChange); - } - - /// - /// Reset objects with reset type. - /// - public void ResetSceneUnloaded() - { - ResetMutableObjects(ResetType.SceneUnloaded); - } - - /// - /// Reset objects with reset type. - /// - public void ResetSceneLoaded() - { - ResetMutableObjects(ResetType.SceneLoaded); - } - - private void ResetMutableObjects(ResetType resetType) - { - var filteredByType = mutableObjects.Where(obj => obj.ResetType == resetType); - ResetMutableObjects(filteredByType); - } - - private static void ResetMutableObjects(IEnumerable objects) - { - foreach (var obj in objects) - { - obj.ResetValues(); - } - } - } -} diff --git a/Assets/Runtime/MutableObjects/MutableObjectHandler.cs.meta b/Assets/Runtime/MutableObjects/MutableObjectHandler.cs.meta deleted file mode 100644 index 364ecdb..0000000 --- a/Assets/Runtime/MutableObjects/MutableObjectHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6292f477634e4552b51327967ca77061 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: -1 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs b/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs deleted file mode 100644 index f54c3bb..0000000 --- a/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using MutableObjects.Generic; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace MutableObjects -{ - public static class MutableObjectHandlerInitializer - { - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] - private static void RuntimeInit() - { - var handler = new MutableObjectHandler(FindMutableObjects()); - handler.SetInitialMutableObjectValues(); - - SceneManager.activeSceneChanged += (curr, next) => handler.ResetActiveSceneChange(); - SceneManager.sceneUnloaded += scene => handler.ResetSceneUnloaded(); - SceneManager.sceneLoaded += (scene, mode) => handler.ResetSceneLoaded(); - } - - private static List FindMutableObjects() - { - return new List(Resources.FindObjectsOfTypeAll()); - } - } -} diff --git a/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs.meta b/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs.meta deleted file mode 100644 index 92dcea6..0000000 --- a/Assets/Runtime/MutableObjects/MutableObjectHandlerInitializer.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: d570fba8672849bda9af9259a474bfd2 -timeCreated: 1602408464 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/String.meta b/Assets/Runtime/MutableObjects/String.meta deleted file mode 100644 index f36f508..0000000 --- a/Assets/Runtime/MutableObjects/String.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3434047d882d4e8da1533a9432965021 -timeCreated: 1601743247 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/String/MutableString.cs b/Assets/Runtime/MutableObjects/String/MutableString.cs deleted file mode 100644 index 907496f..0000000 --- a/Assets/Runtime/MutableObjects/String/MutableString.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.String -{ - [CreateAssetMenu(fileName = "MutableString", menuName = "Mutable Objects/Mutable String")] - public class MutableString : MutableObject - { - [SerializeField] - private string value = default; - - public string Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/String/MutableString.cs.meta b/Assets/Runtime/MutableObjects/String/MutableString.cs.meta deleted file mode 100644 index 57ee3c6..0000000 --- a/Assets/Runtime/MutableObjects/String/MutableString.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a01cfddbc7254405a4b5033e723125f0 -timeCreated: 1601743247 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Vector2.meta b/Assets/Runtime/MutableObjects/Vector2.meta deleted file mode 100644 index 2fdd580..0000000 --- a/Assets/Runtime/MutableObjects/Vector2.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c11e7d9062be4ee1b5444613bdaa77c6 -timeCreated: 1601743290 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs b/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs deleted file mode 100644 index f145bf4..0000000 --- a/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.Vector2 -{ - [CreateAssetMenu(fileName = "MutableVector2", menuName = "Mutable Objects/Mutable Vector2")] - public class MutableVector2 : MutableObject - { - [SerializeField] - private UnityEngine.Vector2 value = default; - - public UnityEngine.Vector2 Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs.meta b/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs.meta deleted file mode 100644 index 2a50592..0000000 --- a/Assets/Runtime/MutableObjects/Vector2/MutableVector2.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: e180dd849b874a2f8ddccb3e49938e71 -timeCreated: 1601743290 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Vector3.meta b/Assets/Runtime/MutableObjects/Vector3.meta deleted file mode 100644 index a130579..0000000 --- a/Assets/Runtime/MutableObjects/Vector3.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c90f4745cd38454ba82bc3414c7d844e -timeCreated: 1601743335 \ No newline at end of file diff --git a/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs b/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs deleted file mode 100644 index 6e32dc8..0000000 --- a/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs +++ /dev/null @@ -1,19 +0,0 @@ -using MutableObjects.Generic; -using UnityEngine; - -namespace MutableObjects.Vector3 -{ - [CreateAssetMenu(fileName = "MutableVector3", menuName = "Mutable Objects/Mutable Vector3")] - public class MutableVector3 : MutableObject - { - [SerializeField] - private UnityEngine.Vector3 value = default; - - public UnityEngine.Vector3 Value { get; set; } - - public override void ResetValues() - { - Value = value; - } - } -} diff --git a/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs.meta b/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs.meta deleted file mode 100644 index 48d9145..0000000 --- a/Assets/Runtime/MutableObjects/Vector3/MutableVector3.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: dcac6b29d5414962b03349b9e7736761 -timeCreated: 1601743335 \ No newline at end of file diff --git a/Assets/Samples.meta b/Assets/Samples.meta deleted file mode 100644 index 54afdf1..0000000 --- a/Assets/Samples.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 840efa0530264e741bb77a42bf9866ec -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/Chark.UnityScriptableObjects.Samples.asmdef b/Assets/Samples/Chark.UnityScriptableObjects.Samples.asmdef deleted file mode 100644 index d98b321..0000000 --- a/Assets/Samples/Chark.UnityScriptableObjects.Samples.asmdef +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "Chark.UnityScriptableObjects.Samples", - "references": [ - "Chark.UnityScriptableObjects", - "Chark.UnityScriptableObjects.Editor" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Samples/GameEvents.meta b/Assets/Samples/GameEvents.meta deleted file mode 100644 index 50d8419..0000000 --- a/Assets/Samples/GameEvents.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 25b6bc34b5cf9c147b45808d933da96d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Events.meta b/Assets/Samples/GameEvents/Events.meta deleted file mode 100644 index 16956e2..0000000 --- a/Assets/Samples/GameEvents/Events.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 52c66523ac2a021439e0990d6ec0f2ad -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Materials.meta b/Assets/Samples/GameEvents/Materials.meta deleted file mode 100644 index cd5635d..0000000 --- a/Assets/Samples/GameEvents/Materials.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f7f26e1167d70f6488c790ba278c6f6d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Materials/Target.mat b/Assets/Samples/GameEvents/Materials/Target.mat deleted file mode 100644 index 74b7731..0000000 --- a/Assets/Samples/GameEvents/Materials/Target.mat +++ /dev/null @@ -1,110 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8071150190349356560 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Target - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2050 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _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} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _EnvironmentReflections: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Surface: 0 - - _UVSec: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - m_Colors: - - _BaseColor: {r: 0.9716981, g: 0.5179334, b: 0.5179334, a: 1} - - _Color: {r: 0.9716981, g: 0.5179334, b: 0.5179334, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} diff --git a/Assets/Samples/GameEvents/Materials/Wall.mat b/Assets/Samples/GameEvents/Materials/Wall.mat deleted file mode 100644 index c9e4aaa..0000000 --- a/Assets/Samples/GameEvents/Materials/Wall.mat +++ /dev/null @@ -1,110 +0,0 @@ -%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: Wall - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2050 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _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} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _EnvironmentReflections: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Surface: 0 - - _UVSec: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} ---- !u!114 &2019156213369660498 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 diff --git a/Assets/Samples/GameEvents/Materials/Wall.mat.meta b/Assets/Samples/GameEvents/Materials/Wall.mat.meta deleted file mode 100644 index 5f33c4c..0000000 --- a/Assets/Samples/GameEvents/Materials/Wall.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6721031f739529e4d9bd149a7cfc0d80 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs.meta b/Assets/Samples/GameEvents/Prefabs.meta deleted file mode 100644 index 073738a..0000000 --- a/Assets/Samples/GameEvents/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6f0a6aa25c3fac74d8d6463f1dbbe2ad -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab b/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab deleted file mode 100644 index 42d652d..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab +++ /dev/null @@ -1,97 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &131506036300085454 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 131506036300085455} - - component: {fileID: 131506036300085457} - - component: {fileID: 131506036300085456} - - component: {fileID: 131506036300085458} - m_Layer: 5 - m_Name: ScoreEffect - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &131506036300085455 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131506036300085454} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &131506036300085457 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131506036300085454} - m_CullTransparentMesh: 0 ---- !u!114 &131506036300085456 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131506036300085454} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7735849, g: 0.39004228, b: 0.13501246, a: 1} - m_RaycastTarget: 1 - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!114 &131506036300085458 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131506036300085454} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 04272e1dd140b4647a81945fd79860d0, type: 3} - m_Name: - m_EditorClassIdentifier: - floatDirection: {x: 0, y: 1, z: 0} - fadeOutColor: {r: 0, g: 0, b: 0, a: 0} - floatSpeed: 15 - floatDuration: 3 diff --git a/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab.meta b/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab.meta deleted file mode 100644 index 7baacaf..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ScoreEffect.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: afe75c613b95bbe449a605b71f6bdd67 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab b/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab deleted file mode 100644 index d58e7cb..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab +++ /dev/null @@ -1,125 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &3201492554182924235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3201492554182924232} - - component: {fileID: 3201492554182924238} - - component: {fileID: 3201492554182924233} - - component: {fileID: 3197890015597547032} - - component: {fileID: 3201492554182924239} - m_Layer: 5 - m_Name: ScoreHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3201492554182924232 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3201492554182924235} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 15} - m_SizeDelta: {x: 0, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3201492554182924238 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3201492554182924235} - m_CullTransparentMesh: 0 ---- !u!114 &3201492554182924233 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3201492554182924235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.6415094, g: 0.493236, b: 0.493236, a: 1} - m_RaycastTarget: 1 - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!114 &3197890015597547032 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3201492554182924235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a0b2f85583a54b21922069d1d0951342, type: 3} - m_Name: - m_EditorClassIdentifier: - gameEvent: {fileID: 11400000, guid: ba3e9660171fc3e499829b9d9ed8b9cb, type: 2} - onGameEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 3201492554182924239} - m_MethodName: IncreaseScore - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &3201492554182924239 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3201492554182924235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 66ebf31fba15413096990cd356aa98e6, type: 3} - m_Name: - m_EditorClassIdentifier: - scoreIncrease: 1 - scoreEffectYOffset: 10 - scoreEffectPrefab: {fileID: 131506036300085458, guid: afe75c613b95bbe449a605b71f6bdd67, - type: 3} diff --git a/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab.meta b/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab.meta deleted file mode 100644 index b841c88..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ScoreHandler.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 29b95b1c8d09d5942a41b5a2e00ec62e -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab b/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab deleted file mode 100644 index 28b91db..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab +++ /dev/null @@ -1,132 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &6785867113212262390 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6785867113212262385} - - component: {fileID: 6785867113212262384} - - component: {fileID: 6785867113212262391} - - component: {fileID: 6785867113212262386} - - component: {fileID: 3563761561003061392} - m_Layer: 0 - m_Name: ShooterCamera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6785867113212262385 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6785867113212262390} - 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!20 &6785867113212262384 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6785867113212262390} - 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: 85 - orthographic: 1 - orthographic size: 9 - 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!81 &6785867113212262391 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6785867113212262390} - m_Enabled: 1 ---- !u!114 &6785867113212262386 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6785867113212262390} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f5322d0809e6c094c9f48718decf34db, type: 3} - m_Name: - m_EditorClassIdentifier: - shotGameEvent: {fileID: 11400000, guid: d15108d9f7748d24584a3a876de12713, type: 2} - shootButton: Fire1 ---- !u!114 &3563761561003061392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6785867113212262390} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 diff --git a/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab.meta b/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab.meta deleted file mode 100644 index a632b7e..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ShooterCamera.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 39aea4008adc3114ba8ad37589825c2a -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab b/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab deleted file mode 100644 index 4b5cdda..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab +++ /dev/null @@ -1,87 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1526703896885373470 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1526703896885373471} - - component: {fileID: 1526703896885373469} - - component: {fileID: 1526703896885373468} - m_Layer: 0 - m_Name: ShotHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1526703896885373471 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1526703896885373470} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1526703896885373469 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1526703896885373470} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad65403ebd3445baad61e78877ff6ed6, type: 3} - m_Name: - m_EditorClassIdentifier: - gameEvent: {fileID: 11400000, guid: d15108d9f7748d24584a3a876de12713, type: 2} - onGameEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1526703896885373468} - m_MethodName: HandleShot - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1526703896885373468 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1526703896885373470} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1080b2340bee3cb4fa67da041bf81815, type: 3} - m_Name: - m_EditorClassIdentifier: - onShot: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 11400000, guid: ba3e9660171fc3e499829b9d9ed8b9cb, type: 2} - m_MethodName: RaiseGameEvent - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 diff --git a/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab.meta b/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab.meta deleted file mode 100644 index 008b6bb..0000000 --- a/Assets/Samples/GameEvents/Prefabs/ShotHandler.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2fef0869f9c6baf4db6f03bb350504df -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/Spawner.prefab b/Assets/Samples/GameEvents/Prefabs/Spawner.prefab deleted file mode 100644 index 52a3757..0000000 --- a/Assets/Samples/GameEvents/Prefabs/Spawner.prefab +++ /dev/null @@ -1,91 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &3952613158653746747 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3952613158653746744} - - component: {fileID: 3952613158653746750} - - component: {fileID: 1775778486484008960} - - component: {fileID: 3952613158653746745} - m_Layer: 2 - m_Name: Spawner - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3952613158653746744 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3952613158653746747} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &3952613158653746750 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3952613158653746747} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 15, y: 0.5, z: 15} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1775778486484008960 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3952613158653746747} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a0b2f85583a54b21922069d1d0951342, type: 3} - m_Name: - m_EditorClassIdentifier: - gameEvent: {fileID: 11400000, guid: ba3e9660171fc3e499829b9d9ed8b9cb, type: 2} - onGameEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 3952613158653746745} - m_MethodName: DecreaseSpawned - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &3952613158653746745 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3952613158653746747} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5916e7e0178a40ba8209ec5b7ac1d1a7, type: 3} - m_Name: - m_EditorClassIdentifier: - spawnedLimit: 10 - spawnPrefab: {fileID: 7326214114355414923, guid: 499fa445dcd1c5e4691103ff3cf960d3, - type: 3} - maxRandomScale: {x: 1, y: 2, z: 1} diff --git a/Assets/Samples/GameEvents/Prefabs/Spawner.prefab.meta b/Assets/Samples/GameEvents/Prefabs/Spawner.prefab.meta deleted file mode 100644 index 04b8d2d..0000000 --- a/Assets/Samples/GameEvents/Prefabs/Spawner.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cde315354eda1ba4fae3b0c33583e9a1 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Prefabs/Target.prefab b/Assets/Samples/GameEvents/Prefabs/Target.prefab deleted file mode 100644 index 2de0355..0000000 --- a/Assets/Samples/GameEvents/Prefabs/Target.prefab +++ /dev/null @@ -1,126 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &2144511059860342937 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1951316595536880060} - - component: {fileID: 7110850260090275822} - - component: {fileID: 4882082495510605036} - - component: {fileID: 6426669856614916432} - m_Layer: 0 - m_Name: Body - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1951316595536880060 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2144511059860342937} - 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: 7326214114355414922} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7110850260090275822 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2144511059860342937} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4882082495510605036 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2144511059860342937} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 275f385ed1d71b242ac4af4042c4974e, 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!65 &6426669856614916432 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2144511059860342937} - 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 &7326214114355414923 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7326214114355414922} - m_Layer: 0 - m_Name: Target - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7326214114355414922 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7326214114355414923} - 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: 1951316595536880060} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Samples/GameEvents/Prefabs/Target.prefab.meta b/Assets/Samples/GameEvents/Prefabs/Target.prefab.meta deleted file mode 100644 index 2061f8e..0000000 --- a/Assets/Samples/GameEvents/Prefabs/Target.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 499fa445dcd1c5e4691103ff3cf960d3 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Scenes/GameEvents.unity b/Assets/Samples/GameEvents/Scenes/GameEvents.unity deleted file mode 100644 index 3bb8a1a..0000000 --- a/Assets/Samples/GameEvents/Scenes/GameEvents.unity +++ /dev/null @@ -1,816 +0,0 @@ -%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.40784085, g: 0.41969264, b: 0.4433962, 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: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 - 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_LightProbeSampleCountMultiplier: 4 - 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 &179482124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 179482125} - m_Layer: 0 - m_Name: Environment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &179482125 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179482124} - 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: 198214860} - - {fileID: 1418809552} - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &198214858 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 198214860} - - component: {fileID: 198214859} - m_Layer: 0 - m_Name: DirectionalLight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &198214859 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 198214858} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &198214860 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 198214858} - m_LocalRotation: {x: 0.305453, y: 0.46908507, z: -0.2784701, w: 0.78045636} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 179482125} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 47.565002, y: 56.409004, z: -12.679001} ---- !u!224 &530501970 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - m_PrefabInstance: {fileID: 3201492554344253082} - m_PrefabAsset: {fileID: 0} ---- !u!1 &597545309 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 597545313} - - component: {fileID: 597545312} - - component: {fileID: 597545311} - - component: {fileID: 597545310} - m_Layer: 5 - m_Name: UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &597545310 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &597545311 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!223 &597545312 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &597545313 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 530501970} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &1418809548 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1418809552} - - component: {fileID: 1418809551} - - component: {fileID: 1418809550} - - component: {fileID: 1418809549} - m_Layer: 2 - m_Name: Wall - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!64 &1418809549 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1418809550 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 6721031f739529e4d9bd149a7cfc0d80, 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 &1418809551 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1418809552 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_LocalRotation: {x: -0.0000014603136, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 3} - m_LocalScale: {x: 10, y: 10, z: 10} - m_Children: [] - m_Father: {fileID: 179482125} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &2097392453 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - m_PrefabInstance: {fileID: 1526703894922330458} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2128261166 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2128261167} - m_Layer: 0 - m_Name: Targets - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2128261167 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2128261166} - 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: 2131695426} - - {fileID: 2097392453} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &2131695426 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - m_PrefabInstance: {fileID: 3952613157831723386} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &1526703894922330458 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2128261167} - m_Modifications: - - target: {fileID: 1526703896885373470, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_Name - value: ShotHandler - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1526703896885373471, guid: 2fef0869f9c6baf4db6f03bb350504df, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2fef0869f9c6baf4db6f03bb350504df, type: 3} ---- !u!1001 &3201492554344253082 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 597545313} - m_Modifications: - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_SizeDelta.y - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924232, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3201492554182924235, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, - type: 3} - propertyPath: m_Name - value: ScoreHandler - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 29b95b1c8d09d5942a41b5a2e00ec62e, type: 3} ---- !u!1001 &3952613157831723386 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2128261167} - m_Modifications: - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.25 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746744, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3952613158653746747, guid: cde315354eda1ba4fae3b0c33583e9a1, - type: 3} - propertyPath: m_Name - value: Spawner - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: cde315354eda1ba4fae3b0c33583e9a1, type: 3} ---- !u!1001 &6785867112939382004 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalPosition.x - value: -7 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalPosition.y - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalPosition.z - value: -7 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.35355285 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.35355288 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.1464461 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.8535539 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 45.000004 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 45.000004 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262385, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6785867113212262390, guid: 39aea4008adc3114ba8ad37589825c2a, - type: 3} - propertyPath: m_Name - value: ShooterCamera - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 39aea4008adc3114ba8ad37589825c2a, type: 3} diff --git a/Assets/Samples/GameEvents/Scripts.meta b/Assets/Samples/GameEvents/Scripts.meta deleted file mode 100644 index ed046ca..0000000 --- a/Assets/Samples/GameEvents/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2444134179ac1a748a92c6773a593e16 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs b/Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs deleted file mode 100644 index 5856bcc..0000000 --- a/Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs +++ /dev/null @@ -1,56 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace GameEvents -{ - [RequireComponent(typeof(Text))] - public class FloatFadeOutText : MonoBehaviour - { - [SerializeField] - private UnityEngine.Vector3 floatDirection = UnityEngine.Vector2.up; - - [SerializeField] - private Color fadeOutColor = Color.clear; - - [SerializeField] - private float floatSpeed = 15f; - - [SerializeField] - private float floatDuration = 3f; - - private float floatProgress; - private Text floatText; - private Color originalColor; - - private void Awake() - { - floatText = GetComponent(); - originalColor = floatText.color; - } - - private void Update() - { - floatText.rectTransform.position = GetTextPosition(); - floatText.color = GetTextColor(); - - if (floatProgress > 1f) Destroy(gameObject); - - floatProgress = GetProgress(); - } - - private UnityEngine.Vector3 GetTextPosition() - { - return floatText.rectTransform.position + floatDirection * (floatSpeed * Time.deltaTime); - } - - private Color GetTextColor() - { - return Color.LerpUnclamped(originalColor, fadeOutColor, floatProgress); - } - - private float GetProgress() - { - return floatProgress + Time.deltaTime / floatDuration; - } - } -} diff --git a/Assets/Samples/GameEvents/Scripts/Score.cs b/Assets/Samples/GameEvents/Scripts/Score.cs deleted file mode 100644 index f4e599e..0000000 --- a/Assets/Samples/GameEvents/Scripts/Score.cs +++ /dev/null @@ -1,56 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace GameEvents -{ - [RequireComponent(typeof(Text))] - public class Score : MonoBehaviour - { - [Min(0)] - [SerializeField] - private int scoreIncrease = 100; - - [SerializeField] - private float scoreEffectYOffset = 10f; - - [SerializeField] - private FloatFadeOutText scoreEffectPrefab = default; - - private int currentScore; - private Text text; - - private void Awake() - { - text = GetComponent(); - } - - public void IncreaseScore() - { - currentScore += scoreIncrease; - text.text = currentScore.ToString(); - - InstantiateEffect($"+{scoreIncrease.ToString()}"); - } - - private void InstantiateEffect(string effectText) - { - var scoreTransform = transform; - var scorePosition = scoreTransform.position; - - scorePosition.y += scoreEffectYOffset; - - var floatEffect = Instantiate( - scoreEffectPrefab, - scorePosition, - Quaternion.identity, - scoreTransform - ); - - var floatText = floatEffect.GetComponent(); - if (floatText != null) - { - floatText.text = effectText; - } - } - } -} diff --git a/Assets/Samples/GameEvents/Scripts/Score.cs.meta b/Assets/Samples/GameEvents/Scripts/Score.cs.meta deleted file mode 100644 index ae8317d..0000000 --- a/Assets/Samples/GameEvents/Scripts/Score.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 66ebf31fba15413096990cd356aa98e6 -timeCreated: 1601679745 \ No newline at end of file diff --git a/Assets/Samples/GameEvents/Scripts/Shooter.cs b/Assets/Samples/GameEvents/Scripts/Shooter.cs deleted file mode 100644 index ea6e0de..0000000 --- a/Assets/Samples/GameEvents/Scripts/Shooter.cs +++ /dev/null @@ -1,45 +0,0 @@ -using GameEvents.Transform; -using UnityEngine; - -namespace GameEvents -{ - [RequireComponent(typeof(Camera))] - public class Shooter : MonoBehaviour - { - [SerializeField] - private TransformGameEvent shotGameEvent = default; - - [SerializeField] - private string shootButton = "Fire1"; - - private new Camera camera; - - private void Awake() - { - camera = GetComponent(); - } - - private void Update() - { - if (IsShoot()) - { - Shoot(); - } - } - - private bool IsShoot() - { - return Input.GetButtonDown(shootButton); - } - - private void Shoot() - { - var ray = camera.ScreenPointToRay(Input.mousePosition); - - if (Physics.Raycast(ray, out var hit)) - { - shotGameEvent.RaiseGameEvent(hit.transform); - } - } - } -} diff --git a/Assets/Samples/GameEvents/Scripts/Shooter.cs.meta b/Assets/Samples/GameEvents/Scripts/Shooter.cs.meta deleted file mode 100644 index 59a4141..0000000 --- a/Assets/Samples/GameEvents/Scripts/Shooter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f5322d0809e6c094c9f48718decf34db -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Scripts/ShotHandler.cs b/Assets/Samples/GameEvents/Scripts/ShotHandler.cs deleted file mode 100644 index 068658b..0000000 --- a/Assets/Samples/GameEvents/Scripts/ShotHandler.cs +++ /dev/null @@ -1,17 +0,0 @@ -using UnityEngine; -using UnityEngine.Events; - -namespace GameEvents -{ - public class ShotHandler : MonoBehaviour - { - [SerializeField] - private UnityEvent onShot = default; - - public void HandleShot(UnityEngine.Transform shot) - { - Destroy(shot.parent.gameObject); - onShot.Invoke(); - } - } -} diff --git a/Assets/Samples/GameEvents/Scripts/ShotHandler.cs.meta b/Assets/Samples/GameEvents/Scripts/ShotHandler.cs.meta deleted file mode 100644 index 923c81c..0000000 --- a/Assets/Samples/GameEvents/Scripts/ShotHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1080b2340bee3cb4fa67da041bf81815 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Scripts/Spawner.cs b/Assets/Samples/GameEvents/Scripts/Spawner.cs deleted file mode 100644 index 934a974..0000000 --- a/Assets/Samples/GameEvents/Scripts/Spawner.cs +++ /dev/null @@ -1,94 +0,0 @@ -using UnityEngine; - -namespace GameEvents -{ - [RequireComponent(typeof(BoxCollider))] - public class Spawner : MonoBehaviour - { - [Min(0)] - [SerializeField] - private int spawnedLimit = 10; - - [SerializeField] - private UnityEngine.GameObject spawnPrefab = default; - - [Min(1f)] - [SerializeField] - private UnityEngine.Vector3 maxRandomScale = - new UnityEngine.Vector3(1f, 2f, 1f); - - private new BoxCollider collider; - private int spawned; - - private void Awake() - { - collider = GetComponent(); - } - - private void Update() - { - if (IsSpawn()) Spawn(); - } - - private bool IsSpawn() - { - return spawned < spawnedLimit; - } - - private void Spawn() - { - var instance = Instantiate( - spawnPrefab, - GetSpawnPosition(), - GetSpawnRotation(), - transform - ); - - instance.transform.localScale = GetSpawnScale(); - - spawned++; - } - - private UnityEngine.Vector3 GetSpawnPosition() - { - var colliderBounds = collider.bounds; - var position = new UnityEngine.Vector3( - Random.Range(colliderBounds.min.x, colliderBounds.max.x), - Random.Range(colliderBounds.min.y, colliderBounds.max.y), - Random.Range(colliderBounds.min.z, colliderBounds.max.z) - ); - - return colliderBounds.ClosestPoint(position); - } - - private static Quaternion GetSpawnRotation() - { - var angles = new UnityEngine.Vector3( - 0f, - GetRandomAngle(), - 0f - ); - - return Quaternion.Euler(angles); - } - - private static float GetRandomAngle() - { - return Random.Range(0f, 360f); - } - - private UnityEngine.Vector3 GetSpawnScale() - { - return new UnityEngine.Vector3( - Random.Range(1f, maxRandomScale.x), - Random.Range(1f, maxRandomScale.y), - Random.Range(1f, maxRandomScale.z) - ); - } - - public void DecreaseSpawned() - { - spawned--; - } - } -} diff --git a/Assets/Samples/GameEvents/Scripts/Spawner.cs.meta b/Assets/Samples/GameEvents/Scripts/Spawner.cs.meta deleted file mode 100644 index bdf0416..0000000 --- a/Assets/Samples/GameEvents/Scripts/Spawner.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5916e7e0178a40ba8209ec5b7ac1d1a7 -timeCreated: 1601678133 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects.meta b/Assets/Samples/MutableObjects.meta deleted file mode 100644 index aa3ce9d..0000000 --- a/Assets/Samples/MutableObjects.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 230132c2b31f406e8e7497f005a09812 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Materials.meta b/Assets/Samples/MutableObjects/Materials.meta deleted file mode 100644 index df94911..0000000 --- a/Assets/Samples/MutableObjects/Materials.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a211c19547981b44bb67bbe19c5aea97 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Materials/Decrease.mat b/Assets/Samples/MutableObjects/Materials/Decrease.mat deleted file mode 100644 index 9607b4e..0000000 --- a/Assets/Samples/MutableObjects/Materials/Decrease.mat +++ /dev/null @@ -1,90 +0,0 @@ -%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: Decrease - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2050 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - 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} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DstBlend: 0 - - _EnvironmentReflections: 1 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Surface: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - m_Colors: - - _BaseColor: {r: 1, g: 0.427451, b: 0.4396678, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} ---- !u!114 &8511839400332316249 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 diff --git a/Assets/Samples/MutableObjects/Materials/Decrease.mat.meta b/Assets/Samples/MutableObjects/Materials/Decrease.mat.meta deleted file mode 100644 index db2b047..0000000 --- a/Assets/Samples/MutableObjects/Materials/Decrease.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8c1ce5e4b09a8144eabd16a310666ad7 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Materials/Increase.mat b/Assets/Samples/MutableObjects/Materials/Increase.mat deleted file mode 100644 index 365a6b7..0000000 --- a/Assets/Samples/MutableObjects/Materials/Increase.mat +++ /dev/null @@ -1,90 +0,0 @@ -%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: Increase - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2050 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - 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} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _Cull: 2 - - _Cutoff: 0.5 - - _DstBlend: 0 - - _EnvironmentReflections: 1 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Surface: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - m_Colors: - - _BaseColor: {r: 0.48366186, g: 1, b: 0.4292453, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} ---- !u!114 &8511839400332316249 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 1 diff --git a/Assets/Samples/MutableObjects/Materials/Increase.mat.meta b/Assets/Samples/MutableObjects/Materials/Increase.mat.meta deleted file mode 100644 index 3df591f..0000000 --- a/Assets/Samples/MutableObjects/Materials/Increase.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 11615e5fe0ef5214e9108bfe94adb24a -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/MutableObjects.meta b/Assets/Samples/MutableObjects/MutableObjects.meta deleted file mode 100644 index ec9530b..0000000 --- a/Assets/Samples/MutableObjects/MutableObjects.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e0a0a7c34a001e84a96ecf9fd01ec5d2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset.meta b/Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset.meta deleted file mode 100644 index 5846479..0000000 --- a/Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ec8c3d68c89cc2c48ba9c5e064528ae5 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Prefabs.meta b/Assets/Samples/MutableObjects/Prefabs.meta deleted file mode 100644 index 3dfbc8b..0000000 --- a/Assets/Samples/MutableObjects/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 08907d9e17ed51541a5298d373b18eb6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab b/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab deleted file mode 100644 index 2978c84..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab +++ /dev/null @@ -1,131 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4521292253474263882 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4521292253474263862} - - component: {fileID: 4521292253474263863} - - component: {fileID: 4521292253474263880} - - component: {fileID: 4521292253474263881} - - component: {fileID: 7011280836384613342} - m_Layer: 0 - m_Name: ClickerCamera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4521292253474263862 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4521292253474263882} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!20 &4521292253474263863 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4521292253474263882} - 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: 0 - 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!81 &4521292253474263880 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4521292253474263882} - m_Enabled: 1 ---- !u!114 &4521292253474263881 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4521292253474263882} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!114 &7011280836384613342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4521292253474263882} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8801334c70052fe4f9658e19d2cec18c, type: 3} - m_Name: - m_EditorClassIdentifier: - shootButton: Fire1 diff --git a/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab.meta b/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab.meta deleted file mode 100644 index d5ac280..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/ClickerCamera.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 236964640b1e69048a86dc1a58f5f200 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab b/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab deleted file mode 100644 index e3b5ff1..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab +++ /dev/null @@ -1,109 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4095794639853462127 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4095794639853462115} - - component: {fileID: 4095794639853462114} - - component: {fileID: 4095794639853462125} - - component: {fileID: 4095794639853462124} - - component: {fileID: 4095794639853462112} - m_Layer: 0 - m_Name: DecreasingHealthHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4095794639853462115 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4095794639853462127} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5, y: 0, 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!33 &4095794639853462114 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4095794639853462127} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4095794639853462125 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4095794639853462127} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 8c1ce5e4b09a8144eabd16a310666ad7, 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!65 &4095794639853462124 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4095794639853462127} - 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!114 &4095794639853462112 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4095794639853462127} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c6c769ca15db4cadb8b3bf44b44d43f7, type: 3} - m_Name: - m_EditorClassIdentifier: - health: {fileID: 11400000, guid: ec8c3d68c89cc2c48ba9c5e064528ae5, type: 2} diff --git a/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab.meta b/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab.meta deleted file mode 100644 index 0fc54d4..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/DecreasingHealthHandler.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e9cd2045609ed8a40918c7c99227876d -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab b/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab deleted file mode 100644 index f1e4d3e..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab +++ /dev/null @@ -1,94 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &759120496304923377 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 759120496304923342} - - component: {fileID: 759120496304923340} - - component: {fileID: 759120496304923343} - - component: {fileID: 759120496304923341} - m_Layer: 5 - m_Name: HealthIndicator - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &759120496304923342 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 759120496304923377} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 64} - m_SizeDelta: {x: 608, y: 128} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &759120496304923340 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 759120496304923377} - m_CullTransparentMesh: 0 ---- !u!114 &759120496304923343 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 759120496304923377} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1} - m_RaycastTarget: 1 - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 64 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 65 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!114 &759120496304923341 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 759120496304923377} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a6862d1164704ff889a807ca193e9b4a, type: 3} - m_Name: - m_EditorClassIdentifier: - health: {fileID: 11400000, guid: ec8c3d68c89cc2c48ba9c5e064528ae5, type: 2} diff --git a/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab.meta b/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab.meta deleted file mode 100644 index cb5f1e7..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/HealthIndicator.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2060a7fd8dc817a4bb0e331dc4382989 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab b/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab deleted file mode 100644 index 97944da..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab +++ /dev/null @@ -1,109 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &2314108798820570059 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2314108798820570064} - - component: {fileID: 2314108798820570063} - - component: {fileID: 2314108798820570062} - - component: {fileID: 2314108798820570061} - - component: {fileID: 2314108798820570060} - m_Layer: 0 - m_Name: IncreasingHealthHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2314108798820570064 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2314108798820570059} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.5, y: 0, 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!33 &2314108798820570063 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2314108798820570059} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &2314108798820570062 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2314108798820570059} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11615e5fe0ef5214e9108bfe94adb24a, 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!65 &2314108798820570061 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2314108798820570059} - 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!114 &2314108798820570060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2314108798820570059} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad3c05f0f39f410fb0a841dd7eaea443, type: 3} - m_Name: - m_EditorClassIdentifier: - health: {fileID: 11400000, guid: ec8c3d68c89cc2c48ba9c5e064528ae5, type: 2} diff --git a/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab.meta b/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab.meta deleted file mode 100644 index ed6ba1f..0000000 --- a/Assets/Samples/MutableObjects/Prefabs/IncreasingHealthHandler.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 160e49e6d5ef0164ca9f54ff5f0dc68d -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Scenes.meta b/Assets/Samples/MutableObjects/Scenes.meta deleted file mode 100644 index 259d09f..0000000 --- a/Assets/Samples/MutableObjects/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 891ded32ce5f422d9f7440b506bf4868 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Scenes/MutableObjects.unity b/Assets/Samples/MutableObjects/Scenes/MutableObjects.unity deleted file mode 100644 index 4fdf18a..0000000 --- a/Assets/Samples/MutableObjects/Scenes/MutableObjects.unity +++ /dev/null @@ -1,816 +0,0 @@ -%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.5566038, g: 0.5566038, b: 0.5566038, 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: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 - 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_LightProbeSampleCountMultiplier: 4 - 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 &179482124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 179482125} - m_Layer: 0 - m_Name: Environment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &179482125 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179482124} - 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: 198214860} - - {fileID: 1418809552} - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &198214858 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 198214860} - - component: {fileID: 198214859} - m_Layer: 0 - m_Name: DirectionalLight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &198214859 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 198214858} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &198214860 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 198214858} - m_LocalRotation: {x: 0.2194982, y: 0.75679785, z: -0.3134759, w: 0.5299156} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 179482125} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 45.000004, y: 110, z: 0} ---- !u!224 &204439456 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - m_PrefabInstance: {fileID: 759120496503971182} - m_PrefabAsset: {fileID: 0} ---- !u!1 &403880565 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 403880566} - m_Layer: 0 - m_Name: HealthHandlers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &403880566 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 403880565} - 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: 503514128} - - {fileID: 1902164921} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &503514128 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - m_PrefabInstance: {fileID: 2314108798384297920} - m_PrefabAsset: {fileID: 0} ---- !u!1 &597545309 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 597545313} - - component: {fileID: 597545312} - - component: {fileID: 597545311} - - component: {fileID: 597545310} - m_Layer: 5 - m_Name: UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &597545310 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &597545311 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!223 &597545312 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &597545313 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 597545309} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 204439456} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &1418809548 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1418809552} - - component: {fileID: 1418809551} - - component: {fileID: 1418809550} - - component: {fileID: 1418809549} - m_Layer: 2 - m_Name: Wall - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!64 &1418809549 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1418809550 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 6721031f739529e4d9bd149a7cfc0d80, 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 &1418809551 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1418809552 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1418809548} - m_LocalRotation: {x: -0.0000014603138, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.5, z: 9} - m_LocalScale: {x: 10, y: 10, z: 10} - m_Children: [] - m_Father: {fileID: 179482125} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &1902164921 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - m_PrefabInstance: {fileID: 4095794639561988570} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &759120496503971182 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 597545313} - m_Modifications: - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 64 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_SizeDelta.x - value: 608 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_SizeDelta.y - value: 128 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923342, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 759120496304923377, guid: 2060a7fd8dc817a4bb0e331dc4382989, - type: 3} - propertyPath: m_Name - value: HealthIndicator - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2060a7fd8dc817a4bb0e331dc4382989, type: 3} ---- !u!1001 &2314108798384297920 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 403880566} - m_Modifications: - - target: {fileID: 2314108798820570059, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_Name - value: IncreasingHealthHandler - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalPosition.x - value: -1.5 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2314108798820570064, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 160e49e6d5ef0164ca9f54ff5f0dc68d, type: 3} ---- !u!1001 &4095794639561988570 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 403880566} - m_Modifications: - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalPosition.x - value: 1.5 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462115, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4095794639853462127, guid: e9cd2045609ed8a40918c7c99227876d, - type: 3} - propertyPath: m_Name - value: DecreasingHealthHandler - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e9cd2045609ed8a40918c7c99227876d, type: 3} ---- !u!1001 &4521292254561523063 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalPosition.x - value: -3 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalPosition.y - value: 4.25 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalPosition.z - value: -3 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.35355338 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.35355338 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.1464466 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.8535535 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 45 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 45 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263862, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4521292253474263882, guid: 236964640b1e69048a86dc1a58f5f200, - type: 3} - propertyPath: m_Name - value: ClickerCamera - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 236964640b1e69048a86dc1a58f5f200, type: 3} diff --git a/Assets/Samples/MutableObjects/Scripts.meta b/Assets/Samples/MutableObjects/Scripts.meta deleted file mode 100644 index 0ee02f6..0000000 --- a/Assets/Samples/MutableObjects/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1fac7d11b9eef4843ad18eec889cf7e9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs b/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs deleted file mode 100644 index 04b565c..0000000 --- a/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace MutableObjects -{ - public class DecreasingHealthHandler : HealthHandler - { - public override void HandleShot() - { - health.Value--; - if (health.Value <= 0) - { - health.Value = 0; - } - } - } -} diff --git a/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs.meta b/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs.meta deleted file mode 100644 index d1d176f..0000000 --- a/Assets/Samples/MutableObjects/Scripts/DecreasingHealthHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c6c769ca15db4cadb8b3bf44b44d43f7 -timeCreated: 1601744926 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs b/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs deleted file mode 100644 index 8951f99..0000000 --- a/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs +++ /dev/null @@ -1,13 +0,0 @@ -using MutableObjects.Int; -using UnityEngine; - -namespace MutableObjects -{ - public abstract class HealthHandler : MonoBehaviour - { - [SerializeField] - protected MutableInt health = default; - - public abstract void HandleShot(); - } -} diff --git a/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs.meta b/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs.meta deleted file mode 100644 index 81e7e95..0000000 --- a/Assets/Samples/MutableObjects/Scripts/HealthHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: fe051e1ed8e04d3485309b738b90e722 -timeCreated: 1601744511 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects/Scripts/HealthText.cs b/Assets/Samples/MutableObjects/Scripts/HealthText.cs deleted file mode 100644 index fa8ac4e..0000000 --- a/Assets/Samples/MutableObjects/Scripts/HealthText.cs +++ /dev/null @@ -1,42 +0,0 @@ -using MutableObjects.Int; -using UnityEngine; -using UnityEngine.UI; - -namespace MutableObjects -{ - [RequireComponent(typeof(Text))] - public class HealthText : MonoBehaviour - { - [SerializeField] - private MutableInt health = default; - - private int currentHealth; - - private Text text; - - private void Awake() - { - text = GetComponent(); - } - - private void Start() - { - currentHealth = health.Value; - SetText(); - } - - private void Update() - { - if (currentHealth != health.Value) - { - currentHealth = health.Value; - SetText(); - } - } - - private void SetText() - { - text.text = currentHealth.ToString(); - } - } -} diff --git a/Assets/Samples/MutableObjects/Scripts/HealthText.cs.meta b/Assets/Samples/MutableObjects/Scripts/HealthText.cs.meta deleted file mode 100644 index f2b7b94..0000000 --- a/Assets/Samples/MutableObjects/Scripts/HealthText.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a6862d1164704ff889a807ca193e9b4a -timeCreated: 1601744653 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs b/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs deleted file mode 100644 index 88c1364..0000000 --- a/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace MutableObjects -{ - public class IncreasingHealthHandler : HealthHandler - { - public override void HandleShot() - { - health.Value++; - } - } -} diff --git a/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs.meta b/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs.meta deleted file mode 100644 index 4b201fb..0000000 --- a/Assets/Samples/MutableObjects/Scripts/IncreasingHealthHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: ad3c05f0f39f410fb0a841dd7eaea443 -timeCreated: 1601744887 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects/Scripts/Shooter.cs b/Assets/Samples/MutableObjects/Scripts/Shooter.cs deleted file mode 100644 index afea1b6..0000000 --- a/Assets/Samples/MutableObjects/Scripts/Shooter.cs +++ /dev/null @@ -1,45 +0,0 @@ -using UnityEngine; - -namespace MutableObjects -{ - [RequireComponent(typeof(Camera))] - public class Shooter : MonoBehaviour - { - [SerializeField] - private string shootButton = "Fire1"; - - private new Camera camera; - - private void Awake() - { - camera = GetComponent(); - } - - private void Update() - { - if (IsShoot()) - { - Shoot(); - } - } - - private bool IsShoot() - { - return Input.GetButtonDown(shootButton); - } - - private void Shoot() - { - var ray = camera.ScreenPointToRay(Input.mousePosition); - - if (Physics.Raycast(ray, out var hit)) - { - var handler = hit.transform.GetComponent(); - if (handler != null) - { - handler.HandleShot(); - } - } - } - } -} diff --git a/Assets/Samples/MutableObjects/Scripts/Shooter.cs.meta b/Assets/Samples/MutableObjects/Scripts/Shooter.cs.meta deleted file mode 100644 index cb47140..0000000 --- a/Assets/Samples/MutableObjects/Scripts/Shooter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8801334c70052fe4f9658e19d2cec18c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/Settings.meta b/Assets/Samples/Settings.meta deleted file mode 100644 index c5b2ef2..0000000 --- a/Assets/Samples/Settings.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b8114d0c340d5ff4b83bdd3cea280c00 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset b/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset deleted file mode 100644 index 69cb92c..0000000 --- a/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset +++ /dev/null @@ -1,55 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} - m_Name: UniversalRenderPipelineAsset - m_EditorClassIdentifier: - k_AssetVersion: 5 - k_AssetPreviousVersion: 5 - m_RendererType: 1 - m_RendererData: {fileID: 0} - m_RendererDataList: - - {fileID: 11400000, guid: 456bfeb11c07b004a81755a6d5eb9b33, type: 2} - m_DefaultRendererIndex: 0 - m_RequireDepthTexture: 0 - m_RequireOpaqueTexture: 0 - m_OpaqueDownsampling: 1 - m_SupportsTerrainHoles: 1 - m_SupportsHDR: 1 - m_MSAA: 8 - m_RenderScale: 1 - m_MainLightRenderingMode: 1 - m_MainLightShadowsSupported: 1 - m_MainLightShadowmapResolution: 2048 - m_AdditionalLightsRenderingMode: 2 - m_AdditionalLightsPerObjectLimit: 4 - m_AdditionalLightShadowsSupported: 0 - m_AdditionalLightsShadowmapResolution: 512 - m_ShadowDistance: 20 - m_ShadowCascades: 0 - m_Cascade2Split: 0.25 - m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} - m_ShadowDepthBias: 1 - m_ShadowNormalBias: 1 - m_SoftShadowsSupported: 1 - m_UseSRPBatcher: 1 - m_SupportsDynamicBatching: 0 - m_MixedLightingSupported: 1 - m_DebugLevel: 0 - m_PostProcessingFeatureSet: 0 - m_ColorGradingMode: 1 - m_ColorGradingLutSize: 32 - m_ShadowType: 1 - m_LocalShadowsSupported: 0 - m_LocalShadowsAtlasResolution: 256 - m_MaxPixelLights: 0 - m_ShadowAtlasResolution: 256 - m_ShaderVariantLogLevel: 0 diff --git a/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset.meta b/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset.meta deleted file mode 100644 index 5010197..0000000 --- a/Assets/Samples/Settings/UniversalRenderPipelineAsset.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4cc95e0ffb4cb5b41a626555d36a9b76 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset b/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset deleted file mode 100644 index 808b47c..0000000 --- a/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset +++ /dev/null @@ -1,38 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} - m_Name: UniversalRenderPipelineAsset_Renderer - m_EditorClassIdentifier: - m_RendererFeatures: [] - m_RendererFeatureMap: - postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} - shaders: - blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} - copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} - screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, - type: 3} - samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} - fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} - m_OpaqueLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_TransparentLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_DefaultStencilState: - overrideStencilState: 0 - stencilReference: 0 - stencilCompareFunction: 8 - passOperation: 0 - failOperation: 0 - zFailOperation: 0 - m_ShadowTransparentReceive: 1 diff --git a/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset.meta b/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset.meta deleted file mode 100644 index db44d0d..0000000 --- a/Assets/Samples/Settings/UniversalRenderPipelineAsset_Renderer.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 456bfeb11c07b004a81755a6d5eb9b33 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Scenes.meta b/Assets/Scenes.meta similarity index 77% rename from Assets/Samples/GameEvents/Scenes.meta rename to Assets/Scenes.meta index f260d51..92c984a 100644 --- a/Assets/Samples/GameEvents/Scenes.meta +++ b/Assets/Scenes.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3bf78cb7fbb04e54e9e3f3dcfab4d50f +guid: 5b4bb1d52a52c284cb16662ae1cfdbda folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity new file mode 100644 index 0000000..e894b54 --- /dev/null +++ b/Assets/Scenes/TestScene.unity @@ -0,0 +1,298 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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_LightProbeSampleCountMultiplier: 4 + 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 &583905900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 583905903} + - component: {fileID: 583905902} + - component: {fileID: 583905901} + 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 &583905901 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583905900} + m_Enabled: 1 +--- !u!20 &583905902 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583905900} + 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: 0 + 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 &583905903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583905900} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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 &778170384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 778170386} + - component: {fileID: 778170385} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &778170385 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778170384} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &778170386 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778170384} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} diff --git a/Assets/Samples/GameEvents/Scenes/GameEvents.unity.meta b/Assets/Scenes/TestScene.unity.meta similarity index 74% rename from Assets/Samples/GameEvents/Scenes/GameEvents.unity.meta rename to Assets/Scenes/TestScene.unity.meta index c8a1f0b..3392e20 100644 --- a/Assets/Samples/GameEvents/Scenes/GameEvents.unity.meta +++ b/Assets/Scenes/TestScene.unity.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6a282a0d0949f8249a192188afeb9d1e +guid: cb0fbeaa842ae914ca34ab5335d680e2 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef b/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef deleted file mode 100644 index 622bc97..0000000 --- a/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Chark.UnityScriptableObjects.Tests", - "references": [ - "UnityEngine.TestRunner", - "Chark.UnityScriptableObjects" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "nunit.framework.dll" - ], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef.meta b/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef.meta deleted file mode 100644 index 075ee7d..0000000 --- a/Assets/Tests/Runtime/Chark.UnityScriptableObjects.Tests.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ce79efc602f25d24d9f8b77d7d3a6fc2 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Tests/Runtime/GameEvents.meta b/Assets/Tests/Runtime/GameEvents.meta deleted file mode 100644 index 6a449ba..0000000 --- a/Assets/Tests/Runtime/GameEvents.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 91621ed158ec436685dbaacc00db55a0 -timeCreated: 1601997578 \ No newline at end of file diff --git a/Assets/Tests/Runtime/GameEvents/GameEventTest.cs b/Assets/Tests/Runtime/GameEvents/GameEventTest.cs deleted file mode 100644 index 1ef7862..0000000 --- a/Assets/Tests/Runtime/GameEvents/GameEventTest.cs +++ /dev/null @@ -1,404 +0,0 @@ -using System; -using System.Linq; -using GameEvents.Bool; -using GameEvents.Float; -using GameEvents.Game; -using GameEvents.GameObject; -using GameEvents.Int; -using GameEvents.String; -using GameEvents.Transform; -using GameEvents.Vector2; -using GameEvents.Vector3; -using NUnit.Framework; -using UnityEngine; -using UnityEngine.Events; -using Assert = UnityEngine.Assertions.Assert; - -namespace GameEvents -{ - public class GameEventTest - { - [Test] - public void ShouldRaiseBoolGameEvent() - { - var tester = new GameEventTester< - BoolGameEventListener, - BoolGameEvent, - BoolEvent, - bool - >(); - - tester.SetActive(true); - tester.RaiseGameEvent(true); - - Assert.AreEqual(true, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(true); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterBoolGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseFloatGameEvent() - { - var tester = new GameEventTester< - FloatGameEventListener, - FloatGameEvent, - FloatEvent, - float - >(); - - tester.SetActive(true); - tester.RaiseGameEvent(10f); - - Assert.AreEqual(10f, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(10f); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterFloatGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseGameEventEvent() - { - // Given. - var gameObject = new UnityEngine.GameObject(); - gameObject.SetActive(false); - - var listener = gameObject.AddComponent(); - - listener.OnGameEvent = new UnityEvent(); - listener.GameEvent = ScriptableObject.CreateInstance(); - - var count = new int[1]; - listener.OnGameEvent.AddListener(() => count[0]++); - - // Then. - gameObject.SetActive(true); - listener.GameEvent.RaiseGameEvent(); - - Assert.AreEqual(1, count[0]); - count[0] = 0; - - gameObject.SetActive(false); - listener.GameEvent.RaiseGameEvent(); - - Assert.AreEqual(0, count[0]); - } - - - [Test] - public void ShouldNotBreakChainWhenExceptionIsThrown() - { - // Given. - var gameObject = new UnityEngine.GameObject(); - gameObject.SetActive(false); - - var listenerWithError = gameObject.AddComponent(); - var listener = gameObject.AddComponent(); - - listenerWithError.OnGameEvent = new UnityEvent(); - listenerWithError.GameEvent = ScriptableObject.CreateInstance(); - - listener.OnGameEvent = new UnityEvent(); - listener.GameEvent = listenerWithError.GameEvent; - - var count = new int[1]; - listenerWithError.OnGameEvent.AddListener(() => throw new NullReferenceException()); - listener.OnGameEvent.AddListener(() => count[0]++); - - // Then. - gameObject.SetActive(true); - listener.GameEvent.RaiseGameEvent(); - - Assert.AreEqual(1, count[0]); - count[0] = 0; - - gameObject.SetActive(false); - listener.GameEvent.RaiseGameEvent(); - - Assert.AreEqual(0, count[0]); - } - - [Test] - public void ShouldRegisterAndUnregisterGameObjectGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseGameObjectGameEventListener() - { - var tester = new GameEventTester< - GameObjectGameEventListener, - GameObjectGameEvent, - GameObjectEvent, - UnityEngine.GameObject - >(); - - tester.SetActive(true); - - var gameObject = new UnityEngine.GameObject(); - tester.RaiseGameEvent(gameObject); - - Assert.AreEqual(gameObject, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(gameObject); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseIntGameEventListener() - { - var tester = new GameEventTester< - IntGameEventListener, - IntGameEvent, - IntEvent, - int - >(); - - tester.SetActive(true); - tester.RaiseGameEvent(10); - - Assert.AreEqual(10, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(10); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterIntGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseStringGameEventListener() - { - var tester = new GameEventTester< - StringGameEventListener, - StringGameEvent, - StringEvent, - string - >(); - - tester.SetActive(true); - tester.RaiseGameEvent("foo"); - - Assert.AreEqual("foo", tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent("foo"); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterStringGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseTransformGameEventListener() - { - var tester = new GameEventTester< - TransformGameEventListener, - TransformGameEvent, - TransformEvent, - UnityEngine.Transform - >(); - - tester.SetActive(true); - - var gameObject = new UnityEngine.GameObject(); - tester.RaiseGameEvent(gameObject.transform); - - Assert.AreEqual(gameObject.transform, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(gameObject.transform); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterTransformGameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseVector2EventListener() - { - var tester = new GameEventTester< - Vector2GameEventListener, - Vector2GameEvent, - Vector2Event, - UnityEngine.Vector2 - >(); - - tester.SetActive(true); - tester.RaiseGameEvent(UnityEngine.Vector2.one); - - Assert.AreEqual(UnityEngine.Vector2.one, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(UnityEngine.Vector2.one); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterVector2GameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRaiseVector3EventListener() - { - var tester = new GameEventTester< - Vector3GameEventListener, - Vector3GameEvent, - Vector3Event, - UnityEngine.Vector3 - >(); - - tester.SetActive(true); - tester.RaiseGameEvent(UnityEngine.Vector3.one); - - Assert.AreEqual(UnityEngine.Vector3.one, tester.GetLastEventValue()); - Assert.AreEqual(1, tester.GetEventCount()); - tester.Clear(); - - tester.SetActive(false); - tester.RaiseGameEvent(UnityEngine.Vector3.one); - - Assert.AreEqual(0, tester.GetEventCount()); - } - - [Test] - public void ShouldRegisterAndUnregisterVector3GameEventListener() - { - var gameEvent = ScriptableObject.CreateInstance(); - var listener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(listener); - Assert.AreEqual(1, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(listener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - - [Test] - public void ShouldRegisterAndUnregisterGameEventMultipleListeners() - { - var gameEvent = ScriptableObject.CreateInstance(); - var firstListener = new NoOpArgumentListener(); - var secondListener = new NoOpArgumentListener(); - - gameEvent.RegisterListener(firstListener); - gameEvent.RegisterListener(secondListener); - Assert.AreEqual(2, gameEvent.Listeners.Count()); - - gameEvent.UnregisterListener(firstListener); - gameEvent.UnregisterListener(secondListener); - Assert.AreEqual(0, gameEvent.Listeners.Count()); - } - } -} diff --git a/Assets/Tests/Runtime/GameEvents/GameEventTest.cs.meta b/Assets/Tests/Runtime/GameEvents/GameEventTest.cs.meta deleted file mode 100644 index eac25f0..0000000 --- a/Assets/Tests/Runtime/GameEvents/GameEventTest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1b06e9491a735a449929c497259358bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Tests/Runtime/GameEvents/GameEventTester.cs b/Assets/Tests/Runtime/GameEvents/GameEventTester.cs deleted file mode 100644 index f6fe86a..0000000 --- a/Assets/Tests/Runtime/GameEvents/GameEventTester.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using GameEvents.Generic; -using UnityEngine; -using UnityEngine.Events; - -namespace GameEvents -{ - public class GameEventTester< - TGameEventListener, - TGameEvent, - TUnityEvent, - TArgument - > - where TGameEvent : ArgumentGameEvent - where TUnityEvent : UnityEvent, new() - where TGameEventListener : ArgumentGameEventListener< - TGameEvent, - TUnityEvent, - TArgument - > - { - private readonly List eventValues; - private readonly UnityEngine.GameObject gameObject; - private readonly TGameEvent gameEvent; - - public GameEventTester() - { - eventValues = new List(); - - gameObject = new UnityEngine.GameObject(); - gameObject.SetActive(false); - - var onGameEvent = new TUnityEvent(); - onGameEvent.AddListener(AddEventValue); - - gameEvent = ScriptableObject.CreateInstance(); - - var listener = gameObject.AddComponent(); - listener.OnGameEvent = onGameEvent; - listener.GameEvent = gameEvent; - } - - public int GetEventCount() - { - return eventValues.Count; - } - - public TArgument GetLastEventValue() - { - return eventValues.Last(); - } - - public void Clear() - { - eventValues.Clear(); - } - - public void SetActive(bool value) - { - gameObject.SetActive(value); - } - - public void RaiseGameEvent(TArgument argument) - { - gameEvent.RaiseGameEvent(argument); - } - - private void AddEventValue(TArgument value) - { - eventValues.Add(value); - } - } -} diff --git a/Assets/Tests/Runtime/GameEvents/GameEventTester.cs.meta b/Assets/Tests/Runtime/GameEvents/GameEventTester.cs.meta deleted file mode 100644 index e121f8f..0000000 --- a/Assets/Tests/Runtime/GameEvents/GameEventTester.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 44be42e5d31f47c5a3e0073e8f8c13a9 -timeCreated: 1602013695 \ No newline at end of file diff --git a/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs b/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs deleted file mode 100644 index 7b8cb39..0000000 --- a/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; - -namespace GameEvents -{ - public class NoOpArgumentListener : IArgumentGameEventListener - { - public void RaiseGameEvent(TArgument argument) - { - } - } -} diff --git a/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs.meta b/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs.meta deleted file mode 100644 index 2094a6f..0000000 --- a/Assets/Tests/Runtime/GameEvents/NoOpArgumentListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: da0499c8d9fd4fe5bc285b67c1db4a62 -timeCreated: 1602360947 \ No newline at end of file diff --git a/Assets/Tests/Runtime/GameEvents/NoOpListener.cs b/Assets/Tests/Runtime/GameEvents/NoOpListener.cs deleted file mode 100644 index ab363ae..0000000 --- a/Assets/Tests/Runtime/GameEvents/NoOpListener.cs +++ /dev/null @@ -1,11 +0,0 @@ -using GameEvents.Generic; - -namespace GameEvents -{ - public class NoOpListener : IGameEventListener - { - public void RaiseGameEvent() - { - } - } -} diff --git a/Assets/Tests/Runtime/GameEvents/NoOpListener.cs.meta b/Assets/Tests/Runtime/GameEvents/NoOpListener.cs.meta deleted file mode 100644 index efe5fae..0000000 --- a/Assets/Tests/Runtime/GameEvents/NoOpListener.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 22c3c58e7a134791932dd59f07c2cc0b -timeCreated: 1602361321 \ No newline at end of file diff --git a/Assets/Tests/Runtime/MutableObjects.meta b/Assets/Tests/Runtime/MutableObjects.meta deleted file mode 100644 index 2505d81..0000000 --- a/Assets/Tests/Runtime/MutableObjects.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d7804ba3533e92a4083df65b1905ce33 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs b/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs deleted file mode 100644 index ec475d6..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using MutableObjects.Generic; -using NUnit.Framework; -using UnityEngine.SceneManagement; -using UnityEngine.TestTools; -using Assert = UnityEngine.Assertions.Assert; - -namespace MutableObjects -{ - public class MutableObjectHandlerTest - { - [UnityTest] - public IEnumerable ShouldResetAppropriateObjects() - { - // The resetting tests must be in one test cases, otherwise problems with race - // conditions arise (while testing). - var probeNone = CreateObjectProbe(ResetType.None); - var probeActiveSceneChange = CreateObjectProbe(ResetType.ActiveSceneChange); - var probeSceneSceneLoaded = CreateObjectProbe(ResetType.SceneLoaded); - var probeSceneUnloaded = CreateObjectProbe(ResetType.SceneUnloaded); - - var handler = new MutableObjectHandler(new List - { - probeNone, - probeActiveSceneChange, - probeSceneSceneLoaded, - probeSceneUnloaded - }); - - RegisterSceneListeners(handler); - - yield return ReloadScene(); - - Assert.AreEqual(0, probeNone.ResetCount); - Assert.AreEqual(1, probeActiveSceneChange.ResetCount); - Assert.AreEqual(1, probeSceneSceneLoaded.ResetCount); - Assert.AreEqual(1, probeSceneUnloaded.ResetCount); - } - - [Test] - public void ShouldSetInitialValues() - { - var objectProbe = CreateObjectProbe(ResetType.None); - var handler = new MutableObjectHandler( - new List {objectProbe} - ); - - handler.SetInitialMutableObjectValues(); - - Assert.AreEqual(1, objectProbe.ResetCount); - } - - private static MutableObjectProbe CreateObjectProbe(ResetType resetType) - { - return new MutableObjectProbe - { - ResetType = resetType - }; - } - - private static void RegisterSceneListeners(MutableObjectHandler handler) - { - SceneManager.activeSceneChanged += (curr, next) => handler.ResetActiveSceneChange(); - SceneManager.sceneUnloaded += scene => handler.ResetSceneUnloaded(); - SceneManager.sceneLoaded += (scene, mode) => handler.ResetSceneLoaded(); - } - - private static IEnumerator ReloadScene() - { - var active = SceneManager.GetActiveScene(); - var loaded = SceneManager.LoadSceneAsync(active.name); - - loaded.allowSceneActivation = true; - - while (!loaded.isDone) - { - yield return null; - } - } - } -} diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs.meta b/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs.meta deleted file mode 100644 index e649362..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectHandlerTest.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: cef50a90e8134ff295b990b0fd805521 -timeCreated: 1602073421 \ No newline at end of file diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs b/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs deleted file mode 100644 index 46fe453..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs +++ /dev/null @@ -1,16 +0,0 @@ -using MutableObjects.Generic; - -namespace MutableObjects -{ - public class MutableObjectProbe : IMutableObject - { - public ResetType ResetType { get; set; } = ResetType.None; - - public int ResetCount { get; private set; } - - public void ResetValues() - { - ResetCount++; - } - } -} diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs.meta b/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs.meta deleted file mode 100644 index f9ba6c2..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectProbe.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: aa904f7258b34927909d68ea048ca9c4 -timeCreated: 1602073874 \ No newline at end of file diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs b/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs deleted file mode 100644 index 45a99e2..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs +++ /dev/null @@ -1,79 +0,0 @@ -using MutableObjects.Bool; -using MutableObjects.Float; -using MutableObjects.String; -using MutableObjects.Vector2; -using MutableObjects.Vector3; -using NUnit.Framework; -using UnityEngine; -using Assert = UnityEngine.Assertions.Assert; - -namespace MutableObjects -{ - public class MutableObjectTest - { - [Test] - public void ShouldSetAndResetMutableBool() - { - var mutable = ScriptableObject.CreateInstance(); - mutable.Value = true; - - Assert.AreEqual(true, mutable.Value); - - mutable.ResetValues(); - - Assert.AreEqual(false, mutable.Value); - } - - [Test] - public void ShouldSetAndResetMutableFloat() - { - var mutable = ScriptableObject.CreateInstance(); - mutable.Value = 10f; - - Assert.AreEqual(10f, mutable.Value); - - mutable.ResetValues(); - - Assert.AreEqual(0f, mutable.Value); - } - - [Test] - public void ShouldSetAndResetMutableString() - { - var mutable = ScriptableObject.CreateInstance(); - mutable.Value = "foo"; - - Assert.AreEqual("foo", mutable.Value); - - mutable.ResetValues(); - - Assert.AreEqual(null, mutable.Value); - } - - [Test] - public void ShouldSetAndResetMutableVector2() - { - var mutable = ScriptableObject.CreateInstance(); - mutable.Value = UnityEngine.Vector2.one; - - Assert.AreEqual(UnityEngine.Vector2.one, mutable.Value); - - mutable.ResetValues(); - - Assert.AreEqual(UnityEngine.Vector2.zero, mutable.Value); - } - - [Test] - public void ShouldSetAndResetMutableVector3() - { - var mutable = ScriptableObject.CreateInstance(); - mutable.Value = UnityEngine.Vector3.one; - - Assert.AreEqual(UnityEngine.Vector3.one, mutable.Value); - - mutable.ResetValues(); - - Assert.AreEqual(UnityEngine.Vector3.zero, mutable.Value); - } - } -} diff --git a/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs.meta b/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs.meta deleted file mode 100644 index b7a177b..0000000 --- a/Assets/Tests/Runtime/MutableObjects/MutableObjectTest.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5bbda50d14e74a35bd32132806e167f5 -timeCreated: 1602069656 \ No newline at end of file diff --git a/Assets/package.json b/Assets/package.json deleted file mode 100644 index 439a552..0000000 --- a/Assets/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "com.chark.unity-scriptable-objects", - "displayName": "Unity Scriptable Objects", - "author": { - "name": "Chark", - "url": "https://chark.io" - }, - "version": "1.1.0", - "unity": "2019.4", - "description": "Provides Game Events and their respective listeners. Includes Mutable Scriptable Objects for injecting and using shared data.", - "samples": [ - { - "displayName": "Game Events", - "description": "Shows how to use game events and listeners with individual prefabs.", - "path": "Samples/GameEvents" - }, - { - "displayName": "Mutable Objects", - "description": "Shows how to use mutable objects.", - "path": "Samples/MutableObjects" - } - ] -} diff --git a/Chark.UnityScriptableObjects.Editor.csproj.DotSettings b/Chark.ScriptableEvents.Editor.csproj.DotSettings similarity index 100% rename from Chark.UnityScriptableObjects.Editor.csproj.DotSettings rename to Chark.ScriptableEvents.Editor.csproj.DotSettings diff --git a/Chark.UnityScriptableObjects.Samples.csproj.DotSettings b/Chark.ScriptableEvents.Samples.csproj.DotSettings similarity index 51% rename from Chark.UnityScriptableObjects.Samples.csproj.DotSettings rename to Chark.ScriptableEvents.Samples.csproj.DotSettings index e7843ae..960f274 100644 --- a/Chark.UnityScriptableObjects.Samples.csproj.DotSettings +++ b/Chark.ScriptableEvents.Samples.csproj.DotSettings @@ -1,5 +1,3 @@  True - True - False - True \ No newline at end of file + True \ No newline at end of file diff --git a/Chark.UnityScriptableObjects.Tests.csproj.DotSettings b/Chark.ScriptableEvents.Tests.csproj.DotSettings similarity index 100% rename from Chark.UnityScriptableObjects.Tests.csproj.DotSettings rename to Chark.ScriptableEvents.Tests.csproj.DotSettings diff --git a/Chark.UnityScriptableObjects.csproj.DotSettings b/Chark.ScriptableEvents.csproj.DotSettings similarity index 100% rename from Chark.UnityScriptableObjects.csproj.DotSettings rename to Chark.ScriptableEvents.csproj.DotSettings diff --git a/LICENSE.md b/LICENSE.md index dd06153..eb92704 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 CHARK +Copyright (c) 2021 CHARK Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile deleted file mode 100644 index e24b362..0000000 --- a/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -deploy: - git subtree push --prefix Assets origin upm diff --git a/Packages/com.chark.scriptable-events/CHANGELOG.md b/Packages/com.chark.scriptable-events/CHANGELOG.md new file mode 100644 index 0000000..75b3aff --- /dev/null +++ b/Packages/com.chark.scriptable-events/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.0.0] - 2021-01-25 +Initial release, here we list changes made after moving away from [Unity Scriptable Objects](https://github.com/chark/unity-scriptable-objects). + +### Changed +- Naming of events, `*GameEvent` -> `*ScriptableEvent`. +- Rewrote event, listener and inspector GUI APIs. +- Rewrote test code. +- Documentation to only focus on events. diff --git a/Assets/CHANGELOG.md.meta b/Packages/com.chark.scriptable-events/CHANGELOG.md.meta similarity index 75% rename from Assets/CHANGELOG.md.meta rename to Packages/com.chark.scriptable-events/CHANGELOG.md.meta index 003b42d..8b04bbd 100644 --- a/Assets/CHANGELOG.md.meta +++ b/Packages/com.chark.scriptable-events/CHANGELOG.md.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 50664326471aadf4db8163c4cbf2a1a5 +guid: f5e96cf6cda85a449bb3311c0beacf61 TextScriptImporter: externalObjects: {} userData: diff --git a/Packages/com.chark.scriptable-events/Documentation~/README.md b/Packages/com.chark.scriptable-events/Documentation~/README.md new file mode 100644 index 0000000..b6dbcf6 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Documentation~/README.md @@ -0,0 +1,219 @@ +# Documentation +Most of the documented features can be imported as samples via Unity Package Manager or taken directly from [Samples](../Samples%7E) directory. + +## Table of contents +- [General](#general) +- [Simple events](#simple-events) +- [Events with arguments](#events-with-arguments) +- [Custom events](#custom-events) + +## General + +### Tips +- When creating prefabs, event assets can be referenced in them. Then when you add in your prefabs into a scene, no additional setup is necessary! +- Event assets can be used to communicate between scenes, this is particularly useful when using [Multi Scene Editing](https://docs.unity3d.com/Manual/MultiSceneEditing.html). + +### Event asset GUI +

+ +

+ +- Description - custom description for the event, what it does, etc, [Rich Text](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/StyledText.html) is also supported. +- Lock button - disables the _Description_ field, useful to avoid accidental edits. +- Suppress Exceptions - if an event has more than one listener, the first listener to throw an exception will break the chain. When enabled, the exception will get logged and other listeners will continue firing. +- Trace - enable additional logging. +- Raise Event - _Raise_ the event, available only in Play Mode. +- Added Listeners - shows listeners which are subscribed to the event, available only in Play Mode. + +## Simple Events +Simple events are useful when you need to _ping_ a `MonoBehaviour` in order to trigger an action. For example, the player loses, and the game needs to show a game over screen (complete example can be found [here](../Samples~/SimpleEvents)). + +### Event asset +To create a simple event, _right click_ in the _Project_ window, and select _Create -> Scriptable Events -> Simple Scriptable Event_. This will create a `SimpleScriptableEvent` asset file, you can name the file however you like and place it anywhere in your project. + +### Raise event +After you have prepared the event, you will want to _Raise_ it. This can be done by dragging the event asset into any `UnityEvent` available on one of your `MonoBehaviour` and selecting the `Raise` method: +

+ +

+ +Alternatively you can _Raise_ the event from within a script: +```cs +[SerializedField] +private SimpleScriptableEvent simpleScriptableEvent; + +... + +simpleScriptableEvent.Raise(); +``` + +### Event listener +Next thing you will need is a listener, select any `GameObject` in the scene, click _Add Component_ and select _Scriptable Events -> Simple Scriptable Event Listener_. Then, slot in the event asset in _Scriptable Event_ field and add a callback to the _On Raised_ `UnityEvent` under the listener which will invoke a method on a `MonoBehaviour`: +

+ +

+ +Alternatively, you can subscribe to an event via a script: +```cs +public class CustomListener : MonoBehaviour, IScriptableEventListener +{ + [SerializeField] + private SimpleScriptableEvent simpleScriptableEvent; + + public void OnRaised(SimpleArg arg) + { + // Handle event. + } + + private void OnEnable() + { + simpleScriptableEvent.Add(this); + } + + private void OnDisable() + { + simpleScriptableEvent.Remove(this); + } +} +``` + +## Events with arguments +Events with arguments are useful when you need to pass around data instead of just _pinging_. For example, the player picks up a coin, and you need to increment the score counter by a certain amount based on the coins value (complete example can be found [here](../Samples~/EventsWithArguments)). + +### Event asset +To create an event with an argument, the approach is similar to [Simple Events](#simple-events). Simply _right click_ in the _Project_ window, and select _Create -> Scriptable Events -> {Type} Scriptable Event_, where _{Type}_ is the type of the data you want to pass. + +### Raise event +To _Raise_ event with an argument, you will first need a `UnityEvent` that accepts a value of desired type. For each `ScriptableEvent` exists a `UnityEvent` with given type (see `ScriptableEvents.{Type}.{Type}UnityEvent` for existing implementations). + +After that is sorted, you will need to expose the `UnityEvent` and `Invoke` it in your script, for example a `UnityEvent` that accepts `float` would looks like: +```cs +[SerializedField] +private ScriptableEvents.Float.FloatUnityEvent floatUnityEvent; + +... + +floatUnityEvent.Invoke(1.0f); +``` + +Then, to raise the `ScriptableEvent`, drag it into the exposed `UnityEvent` of specific type and select the **Dynamic** `Raise` method. This will ensure that the value passed to the `UnityEvent` gets forwarded to the `Raise` method: +

+ +

+ +Alternatively, you can _Raise_ the event from a script: +```cs +[SerializedField] +private FloatScriptableEvent floatScriptableEvent; + +... + +floatScriptableEvent.Raise(1.0f); +``` + +### Event listener +Next thing you will need is a listener. The approach of adding a listener is similar to [Simple Events](#simple-events) as well. Select any `GameObject` in the scene, click _Add Component_ and select _Scriptable Events -> {Type} Scriptable Event Listener_. The only difference is that when selecting your method, you must select a **Dynamic** method. + +When subscribing via a script, you will also need to specify a different type argument rather than using `SimpleArg`, in this example `float` is used: +```cs +public class CustomListener : MonoBehaviour, IScriptableEventListener +{ + [SerializeField] + private FloatScriptableEvent floatScriptableEvent; + + public void OnRaised(float arg) + { + // Handle event. + } + + private void OnEnable() + { + floatScriptableEvent.Add(this); + } + + private void OnDisable() + { + floatScriptableEvent.Remove(this); + } +} +``` + +## Custom Events +You can also create custom events where you can pass any kind of data. For example, the player loses, and you want to send the reference to the player, and the enemy which collided with the player (complete example can be found [here](../Samples~/CustomEvents)). + +First define the data that you want to send: +```cs +public class CustomData +{ + public float ValueA { get; } + + public int ValueB { get; } + + public MaterialData(float valueA, int valueB) + { + ValueA = valueA; + ValueB = valueB; + } +} +``` + +Similarly to [Events with arguments](#events-with-arguments) you will need a `UnityEvent` which accepts your custom data type: +```cs +[Serializable] +public CustomDataUnityEvent : UnityEvent +{ +} +``` + +Next up, define the scriptable event: +```cs +[CreateAssetMenu( + fileName = "CustomDataScriptableEvent", + menuName = "Custom Scriptable Events/Custom Data Scriptable Event" +)] +public class CustomDataScriptableEvent : BaseScriptableEvent +{ +} +``` + +Finally, create a listener which will glue everything together: +```cs +[AddComponentMenu("Custom Scriptable Events/Custom Data Event Listener")] +public class CustomDataScriptableEventListener + : BaseScriptableEventListener< + CustomDataScriptableEvent, + CustomDataUnityEvent, + CustomData + > +{ +} +``` + +After setting everything, you can use your custom event the same way as described in [Events with arguments](#events-with-arguments). However, you will not be able to use additional GUI features as with built-in events. To solve this, define a custom editor script (make sure to place it under `Editor` directory): +```cs +[CustomEditor(typeof(CustomDataScriptableEvent))] +public class CustomDataScriptableEventEditor : BaseScriptableEventEditor +{ + protected override CustomData DrawArgField(CustomData value) + { + // Initially the value will be null as BaseScriptableEventEditor does not know how to + // construct an instance of CustomData. + if (value == null) + { + return new CustomData(0f, 0); + } + + // Add input fields under the inspector. Note that these can also be objects - you can drag + // them in from the scene window! + + // Also note that you can omit this step if your data is complex. For example, + // SimpleScriptableEvent does not render any fields. + EditorGUILayout.BeginVertical(); + var valueA = EditorGUILayout.FloatField("Value A", value.ValueA); + var valueB = EditorGUILayout.IntField("Value B", value.ValueB); + EditorGUILayout.EndVertical(); + + return new CustomData(valueA, valueB); + } +} +``` diff --git a/Packages/com.chark.scriptable-events/Documentation~/argument-event-raise.png b/Packages/com.chark.scriptable-events/Documentation~/argument-event-raise.png new file mode 100644 index 0000000..ed531f5 Binary files /dev/null and b/Packages/com.chark.scriptable-events/Documentation~/argument-event-raise.png differ diff --git a/Packages/com.chark.scriptable-events/Documentation~/simple-event-listener.png b/Packages/com.chark.scriptable-events/Documentation~/simple-event-listener.png new file mode 100644 index 0000000..21996cd Binary files /dev/null and b/Packages/com.chark.scriptable-events/Documentation~/simple-event-listener.png differ diff --git a/Packages/com.chark.scriptable-events/Documentation~/simple-event-raise.png b/Packages/com.chark.scriptable-events/Documentation~/simple-event-raise.png new file mode 100644 index 0000000..de3ef4d Binary files /dev/null and b/Packages/com.chark.scriptable-events/Documentation~/simple-event-raise.png differ diff --git a/Packages/com.chark.scriptable-events/Documentation~/simple-event.png b/Packages/com.chark.scriptable-events/Documentation~/simple-event.png new file mode 100644 index 0000000..0c6b3ce Binary files /dev/null and b/Packages/com.chark.scriptable-events/Documentation~/simple-event.png differ diff --git a/Assets/Editor.meta b/Packages/com.chark.scriptable-events/Editor.meta similarity index 100% rename from Assets/Editor.meta rename to Packages/com.chark.scriptable-events/Editor.meta diff --git a/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs new file mode 100644 index 0000000..b9ee7d9 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs @@ -0,0 +1,249 @@ +using System.Reflection; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace ScriptableEvents.Editor +{ + [CanEditMultipleObjects] + public abstract class BaseScriptableEventEditor : UnityEditor.Editor + { + #region Fields + + // Reflection. + private const BindingFlags PrivateFieldBindingFlags = + BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly; + + // Labels. + private GUIContent descriptionLabelContent; + private GUIContent suppressExceptionsLabelContent; + private GUIContent traceLabelContent; + private GUIContent raiseLabelContent; + private GUIContent listenerLabelContent; + + // Target properties. + private BaseScriptableEvent scriptableEvent; + private MonoScript monoScript; + + // Cached properties. + private SerializedProperty descriptionProperty; + private SerializedProperty lockDescriptionProperty; + private SerializedProperty suppressExceptionsProperty; + private SerializedProperty traceProperty; + + // Cached styles. + private GUIStyle descriptionLockStyle; + private GUIStyle descriptionStyle; + private float descriptionWidth; + + private TArg argValue; + + #endregion + + #region Unity Lifecycle + + public void OnEnable() + { + descriptionLabelContent = CreateLabelContent("description"); + suppressExceptionsLabelContent = CreateLabelContent("suppressExceptions"); + traceLabelContent = CreateLabelContent("trace"); + raiseLabelContent = new GUIContent( + "Raise Event", + "Raise event and trigger added listeners (play mode only)" + ); + listenerLabelContent = new GUIContent( + "Added Listeners", + "Added listeners to this event (play mode only)" + ); + + scriptableEvent = target as BaseScriptableEvent; + monoScript = MonoScript.FromScriptableObject(scriptableEvent); + + descriptionProperty = serializedObject.FindProperty("description"); + lockDescriptionProperty = serializedObject.FindProperty("lockDescription"); + suppressExceptionsProperty = serializedObject.FindProperty("suppressExceptions"); + traceProperty = serializedObject.FindProperty("trace"); + } + + public override void OnInspectorGUI() + { + DrawMonoScript(); + + EditorGUI.BeginChangeCheck(); + + SetupStyles(); + DrawDescription(); + + EditorGUILayout.Space(); + DrawSuppressExceptions(); + DrawTrace(); + + EditorGUILayout.Space(); + DrawRaise(); + + if (EditorGUI.EndChangeCheck()) + { + serializedObject.ApplyModifiedProperties(); + } + + EditorGUILayout.Space(); + DrawListeners(); + } + + #endregion + + #region Overrides + + /// + /// Value that is entered in the event argument field. + /// + protected abstract TArg DrawArgField(TArg value); + + #endregion + + #region Methods + + private static GUIContent CreateLabelContent(string fieldName) + { + var text = ObjectNames.NicifyVariableName(fieldName); + + // ReSharper disable once AssignNullToNotNullAttribute + var tooltip = typeof(BaseScriptableEvent) + .GetField(fieldName, PrivateFieldBindingFlags) + .GetCustomAttribute() + .tooltip; + + return new GUIContent(text, tooltip); + } + + private void DrawMonoScript() + { + GUI.enabled = false; + EditorGUILayout.ObjectField("Script", monoScript, scriptableEvent.GetType(), false); + GUI.enabled = true; + } + + private void SetupStyles() + { + if (descriptionLockStyle == null) + { + descriptionLockStyle = GUI.skin.GetStyle("IN LockButton"); + } + + if (descriptionStyle == null) + { + descriptionStyle = new GUIStyle(EditorStyles.textArea) + { + richText = true, + wordWrap = true + }; + } + + if (descriptionWidth <= 0) + { + var descriptionLabelSize = EditorStyles.label.CalcSize(descriptionLabelContent); + descriptionWidth = descriptionLabelSize.x; + } + } + + private void DrawDescription() + { + // Label. + EditorGUILayout.LabelField(descriptionLabelContent); + + // Label position. + var position = GUILayoutUtility.GetLastRect(); + position.width = descriptionLockStyle.fixedWidth; + position.x = position.xMin + descriptionWidth; + + // Lock button. + lockDescriptionProperty.boolValue = EditorGUI.Toggle( + position, + GUIContent.none, + lockDescriptionProperty.boolValue, + descriptionLockStyle + ); + + // Text. + GUI.enabled = !lockDescriptionProperty.boolValue; + descriptionProperty.stringValue = EditorGUILayout.TextArea( + descriptionProperty.stringValue, + descriptionStyle + ); + + GUI.enabled = true; + } + + private void DrawSuppressExceptions() + { + suppressExceptionsProperty.boolValue = EditorGUILayout.Toggle( + suppressExceptionsLabelContent, + suppressExceptionsProperty.boolValue + ); + } + + private void DrawTrace() + { + traceProperty.boolValue = EditorGUILayout.Toggle( + traceLabelContent, + traceProperty.boolValue + ); + } + + private void DrawRaise() + { + // Label. + EditorGUILayout.LabelField(raiseLabelContent); + GUI.enabled = Application.isPlaying; + + // Edit mode input. + GUILayout.BeginHorizontal(); + + argValue = DrawArgField(argValue); + if (GUILayout.Button("Raise")) + { + scriptableEvent.Raise(argValue); + } + + GUILayout.EndHorizontal(); + GUI.enabled = true; + } + + private void DrawListeners() + { + EditorGUILayout.LabelField(listenerLabelContent); + + // Edit mode info. + if (!Application.isPlaying) + { + EditorGUILayout.HelpBox( + "Added listeners will be displayed here", + MessageType.Info + ); + + return; + } + + // Play mode info. + if (scriptableEvent.Listeners.Count == 0) + { + EditorGUILayout.HelpBox( + "There are no listeners added to this event", + MessageType.Warning + ); + + return; + } + + foreach (var listener in scriptableEvent.Listeners) + { + if (listener is MonoBehaviour behaviour) + { + EditorGUILayout.ObjectField(behaviour, typeof(Object), true); + } + } + } + + #endregion + } +} diff --git a/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs.meta new file mode 100644 index 0000000..484f239 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/BaseScriptableEventEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 71bc42aedc0346228c8a9bc64767ced5 +timeCreated: 1611217275 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Editor/BoolScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/BoolScriptableEventEditor.cs new file mode 100644 index 0000000..6a71643 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/BoolScriptableEventEditor.cs @@ -0,0 +1,14 @@ +using ScriptableEvents.Bool; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(BoolScriptableEvent))] + public class BoolScriptableEventEditor : BaseScriptableEventEditor + { + protected override bool DrawArgField(bool value) + { + return EditorGUILayout.Toggle(value); + } + } +} diff --git a/Assets/Editor/GameEvents/Bool/BoolGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/BoolScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Bool/BoolGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/BoolScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/Chark.ScriptableEvents.Editor.asmdef b/Packages/com.chark.scriptable-events/Editor/Chark.ScriptableEvents.Editor.asmdef new file mode 100644 index 0000000..9b57c3a --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/Chark.ScriptableEvents.Editor.asmdef @@ -0,0 +1,10 @@ +{ + "name": "Chark.ScriptableEvents.Editor", + "rootNamespace": "ScriptableEvents.Editor", + "references": [ + "Chark.ScriptableEvents" + ], + "includePlatforms": [ + "Editor" + ] +} diff --git a/Assets/Editor/Chark.UnityScriptableObjects.Editor.asmdef.meta b/Packages/com.chark.scriptable-events/Editor/Chark.ScriptableEvents.Editor.asmdef.meta similarity index 100% rename from Assets/Editor/Chark.UnityScriptableObjects.Editor.asmdef.meta rename to Packages/com.chark.scriptable-events/Editor/Chark.ScriptableEvents.Editor.asmdef.meta diff --git a/Packages/com.chark.scriptable-events/Editor/FloatScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/FloatScriptableEventEditor.cs new file mode 100644 index 0000000..13ec164 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/FloatScriptableEventEditor.cs @@ -0,0 +1,14 @@ +using ScriptableEvents.Float; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(FloatScriptableEvent))] + public class FloatScriptableEventEditor : BaseScriptableEventEditor + { + protected override float DrawArgField(float value) + { + return EditorGUILayout.FloatField(value); + } + } +} diff --git a/Assets/Editor/GameEvents/Float/FloatGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/FloatScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Float/FloatGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/FloatScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/GameObjectScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/GameObjectScriptableEventEditor.cs new file mode 100644 index 0000000..8aae0e1 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/GameObjectScriptableEventEditor.cs @@ -0,0 +1,17 @@ +using ScriptableEvents.GameObject; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(GameObjectScriptableEvent))] + public class GameObjectScriptableEventEditor : BaseScriptableEventEditor + { + protected override UnityEngine.GameObject DrawArgField(UnityEngine.GameObject value) + { + var fieldValue = EditorGUILayout + .ObjectField(value, typeof(UnityEngine.GameObject), true); + + return fieldValue as UnityEngine.GameObject; + } + } +} diff --git a/Assets/Editor/GameEvents/Transform/GameObjectGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/GameObjectScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Transform/GameObjectGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/GameObjectScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/IntScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/IntScriptableEventEditor.cs new file mode 100644 index 0000000..bc40657 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/IntScriptableEventEditor.cs @@ -0,0 +1,14 @@ +using ScriptableEvents.Int; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(IntScriptableEvent))] + public class IntScriptableEventEditor : BaseScriptableEventEditor + { + protected override int DrawArgField(int value) + { + return EditorGUILayout.IntField(value); + } + } +} diff --git a/Assets/Editor/GameEvents/Int/IntGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/IntScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Int/IntGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/IntScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs new file mode 100644 index 0000000..eb0d955 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs @@ -0,0 +1,15 @@ +using ScriptableEvents.Simple; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(SimpleScriptableEvent))] + public class SimpleScriptableEventEditor : BaseScriptableEventEditor + { + protected override SimpleArg DrawArgField(SimpleArg value) + { + // SimpleScriptableEvent "doesn't take" an arg. + return value; + } + } +} diff --git a/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs.meta new file mode 100644 index 0000000..3da8b44 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/SimpleScriptableEventEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f53c2ce1f4654ed58dbf78ae486a448d +timeCreated: 1611217717 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Editor/StringScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/StringScriptableEventEditor.cs new file mode 100644 index 0000000..ca21e67 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/StringScriptableEventEditor.cs @@ -0,0 +1,14 @@ +using ScriptableEvents.String; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(StringScriptableEvent))] + public class StringScriptableEventEditor : BaseScriptableEventEditor + { + protected override string DrawArgField(string value) + { + return EditorGUILayout.TextField(value); + } + } +} diff --git a/Assets/Editor/GameEvents/String/StringGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/StringScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/String/StringGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/StringScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs new file mode 100644 index 0000000..00130bb --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs @@ -0,0 +1,17 @@ +using ScriptableEvents.Transform; +using UnityEditor; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(TransformScriptableEvent))] + public class TransformScriptableEventEditor : BaseScriptableEventEditor + { + protected override UnityEngine.Transform DrawArgField(UnityEngine.Transform value) + { + var fieldValue = EditorGUILayout + .ObjectField(value, typeof(UnityEngine.Transform), true); + + return fieldValue as UnityEngine.Transform; + } + } +} diff --git a/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs.meta new file mode 100644 index 0000000..34a91fe --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/TransformScriptableEventEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 63fc5c913a8f47629857734fb0765467 +timeCreated: 1611219840 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Editor/Vector2ScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/Vector2ScriptableEventEditor.cs new file mode 100644 index 0000000..d3c97e3 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/Vector2ScriptableEventEditor.cs @@ -0,0 +1,15 @@ +using ScriptableEvents.Vector2; +using UnityEditor; +using UnityEngine; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(Vector2ScriptableEvent))] + public class Vector2ScriptableEventEditor : BaseScriptableEventEditor + { + protected override UnityEngine.Vector2 DrawArgField(UnityEngine.Vector2 value) + { + return EditorGUILayout.Vector2Field(GUIContent.none, value); + } + } +} diff --git a/Assets/Editor/GameEvents/Vector2/Vector2GameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/Vector2ScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Vector2/Vector2GameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/Vector2ScriptableEventEditor.cs.meta diff --git a/Packages/com.chark.scriptable-events/Editor/Vector3ScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Editor/Vector3ScriptableEventEditor.cs new file mode 100644 index 0000000..8f46395 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Editor/Vector3ScriptableEventEditor.cs @@ -0,0 +1,15 @@ +using ScriptableEvents.Vector3; +using UnityEditor; +using UnityEngine; + +namespace ScriptableEvents.Editor +{ + [CustomEditor(typeof(Vector3ScriptableEvent))] + public class Vector3ScriptableEventEditor : BaseScriptableEventEditor + { + protected override UnityEngine.Vector3 DrawArgField(UnityEngine.Vector3 value) + { + return EditorGUILayout.Vector3Field(GUIContent.none, value); + } + } +} diff --git a/Assets/Editor/GameEvents/Vector3/Vector3GameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Editor/Vector3ScriptableEventEditor.cs.meta similarity index 100% rename from Assets/Editor/GameEvents/Vector3/Vector3GameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Editor/Vector3ScriptableEventEditor.cs.meta diff --git a/Assets/LICENSE.md b/Packages/com.chark.scriptable-events/LICENSE.md similarity index 95% rename from Assets/LICENSE.md rename to Packages/com.chark.scriptable-events/LICENSE.md index 17c3331..eb92704 100644 --- a/Assets/LICENSE.md +++ b/Packages/com.chark.scriptable-events/LICENSE.md @@ -1,6 +1,6 @@ -MIT License +MIT License -Copyright (c) 2020 CHARK +Copyright (c) 2021 CHARK Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Assets/LICENSE.md.meta b/Packages/com.chark.scriptable-events/LICENSE.md.meta similarity index 75% rename from Assets/LICENSE.md.meta rename to Packages/com.chark.scriptable-events/LICENSE.md.meta index f91af22..995a43a 100644 --- a/Assets/LICENSE.md.meta +++ b/Packages/com.chark.scriptable-events/LICENSE.md.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 08f66b2194ffc0d46a0aeb2126cf9591 +guid: 76ac805efdb30d743bfbd2659df8c200 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/Runtime.meta b/Packages/com.chark.scriptable-events/Runtime.meta similarity index 100% rename from Assets/Runtime.meta rename to Packages/com.chark.scriptable-events/Runtime.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs new file mode 100644 index 0000000..dfd506e --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace ScriptableEvents +{ + public abstract class BaseScriptableEvent : ScriptableObject, IScriptableEvent + { + #region Editor + + // ReSharper disable once NotAccessedField.Local + [SerializeField, TextArea] + [Tooltip("Custom description to provide more additional information")] + private string description; + + // ReSharper disable once NotAccessedField.Local + [SerializeField, HideInInspector] + private bool lockDescription = true; + + [SerializeField] + [Tooltip("Should exceptions not break the listener chain")] + private bool suppressExceptions; + + [SerializeField] + [Tooltip("Should additional trace information be logged")] + private bool trace; + + #endregion + + #region Fields + + [NonSerialized] + private readonly List> listeners + = new List>(); + + #endregion + + #region Unity Lifecycle + + private void OnDisable() + { + listeners.Clear(); + } + + #endregion + + #region Overrides + + public IReadOnlyList> Listeners => listeners; + + public void Raise(TArg arg) + { + for (var i = listeners.Count - 1; i >= 0; i--) + { + var listener = listeners[i]; + + if (trace) + { + Trace(listener, arg); + } + + if (suppressExceptions) + { + OnRaiseSuppressed(listener, arg); + } + else + { + OnRaise(listener, arg); + } + } + } + + public void Add(IScriptableEventListener listener) + { + if (listeners.Contains(listener)) + { + return; + } + + listeners.Add(listener); + } + + public void Remove(IScriptableEventListener listener) + { + listeners.Remove(listener); + } + + public void Clear() + { + listeners.Clear(); + } + + #endregion + + #region Methods + + private void Trace(IScriptableEventListener listener, TArg arg) + { + Debug.Log($"Raise event: {name}, listener: {listener}, arg: {arg}", this); + } + + private void OnRaiseSuppressed(IScriptableEventListener listener, TArg arg) + { + try + { + listener.OnRaised(arg); + } + catch (Exception e) + { + Debug.LogError( + $"Listener: {listener} of event: {name} has thrown an exception.", + this + ); + + Debug.LogException(e, this); + } + } + + private static void OnRaise(IScriptableEventListener listener, TArg arg) + { + listener.OnRaised(arg); + } + + #endregion + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs.meta new file mode 100644 index 0000000..4c47878 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ad7df0078c084622ad3d7be6fa67cf8d +timeCreated: 1611166943 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs new file mode 100644 index 0000000..65d17b8 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs @@ -0,0 +1,57 @@ +using UnityEngine; +using UnityEngine.Events; + +namespace ScriptableEvents +{ + public class BaseScriptableEventListener + : MonoBehaviour, IScriptableEventListener + where TScriptableEvent : BaseScriptableEvent + where TUnityEvent : UnityEvent + { + #region Editor + + [SerializeField] + private TScriptableEvent scriptableEvent; + + [Space] + [SerializeField] + private TUnityEvent onRaised; + + #endregion + + #region Unity Lifecycle + + private void OnEnable() + { + if (scriptableEvent == null) + { + Debug.LogError($"{typeof(TScriptableEvent).Name} is not assigned", this); + return; + } + + scriptableEvent.Add(this); + } + + private void OnDisable() + { + if (scriptableEvent == null) + { + // Can exit without logging as OnEnable should give enough info. + return; + } + + scriptableEvent.Remove(this); + } + + #endregion + + #region Overrides + + public void OnRaised(TArg arg) + { + onRaised.Invoke(arg); + } + + #endregion + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs.meta new file mode 100644 index 0000000..758c01b --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/BaseScriptableEventListener.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0e7519fc695046a4b4a0d24f1d1f60bf +timeCreated: 1611166971 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Bool.meta b/Packages/com.chark.scriptable-events/Runtime/Bool.meta similarity index 100% rename from Assets/Runtime/GameEvents/Bool.meta rename to Packages/com.chark.scriptable-events/Runtime/Bool.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEvent.cs new file mode 100644 index 0000000..4686836 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Bool +{ + [CreateAssetMenu( + fileName = "BoolScriptableEvent", + menuName = "Scriptable Events/Bool Scriptable Event", + order = 1 + )] + public class BoolScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Bool/BoolGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Bool/BoolGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEventListener.cs new file mode 100644 index 0000000..f405d67 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEventListener.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace ScriptableEvents.Bool +{ + [AddComponentMenu("Scriptable Events/Bool Scriptable Event Listener", 1)] + public class BoolScriptableEventListener + : BaseScriptableEventListener + { + } +} diff --git a/Assets/Runtime/GameEvents/Bool/BoolGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Bool/BoolGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Bool/BoolScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Bool/BoolUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolUnityEvent.cs new file mode 100644 index 0000000..0e391aa --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Bool +{ + [Serializable] + public class BoolUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Bool/BoolEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Bool/BoolUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Bool/BoolEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Bool/BoolUnityEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Chark.ScriptableEvents.asmdef b/Packages/com.chark.scriptable-events/Runtime/Chark.ScriptableEvents.asmdef new file mode 100644 index 0000000..efffc5c --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Chark.ScriptableEvents.asmdef @@ -0,0 +1,4 @@ +{ + "name": "Chark.ScriptableEvents", + "rootNamespace": "ScriptableEvents" +} diff --git a/Assets/Runtime/Chark.UnityScriptableObjects.asmdef.meta b/Packages/com.chark.scriptable-events/Runtime/Chark.ScriptableEvents.asmdef.meta similarity index 100% rename from Assets/Runtime/Chark.UnityScriptableObjects.asmdef.meta rename to Packages/com.chark.scriptable-events/Runtime/Chark.ScriptableEvents.asmdef.meta diff --git a/Assets/Runtime/GameEvents/Float.meta b/Packages/com.chark.scriptable-events/Runtime/Float.meta similarity index 100% rename from Assets/Runtime/GameEvents/Float.meta rename to Packages/com.chark.scriptable-events/Runtime/Float.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEvent.cs new file mode 100644 index 0000000..30e420d --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Float +{ + [CreateAssetMenu( + fileName = "FloatScriptableEvent", + menuName = "Scriptable Events/Float Scriptable Event", + order = 2 + )] + public class FloatScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Float/FloatGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Float/FloatGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEventListener.cs new file mode 100644 index 0000000..9d1506c --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEventListener.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace ScriptableEvents.Float +{ + [AddComponentMenu("Scriptable Events/Float Scriptable Event Listener", 2)] + public class FloatScriptableEventListener + : BaseScriptableEventListener + { + } +} diff --git a/Assets/Runtime/GameEvents/Float/FloatGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Float/FloatGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Float/FloatScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Float/FloatUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Float/FloatUnityEvent.cs new file mode 100644 index 0000000..ef2bd33 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Float/FloatUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Float +{ + [Serializable] + public class FloatUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Float/FloatEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Float/FloatUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Float/FloatEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Float/FloatUnityEvent.cs.meta diff --git a/Assets/Runtime/GameEvents/GameObject.meta b/Packages/com.chark.scriptable-events/Runtime/GameObject.meta similarity index 100% rename from Assets/Runtime/GameEvents/GameObject.meta rename to Packages/com.chark.scriptable-events/Runtime/GameObject.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectGameEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectGameEventListener.cs new file mode 100644 index 0000000..95e3fe4 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectGameEventListener.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ScriptableEvents.GameObject +{ + [AddComponentMenu("Scriptable Events/Game Object Scriptable Event Listener", 3)] + public class GameObjectScriptableEventListener + : BaseScriptableEventListener< + GameObjectScriptableEvent, + GameObjectUnityEvent, + UnityEngine.GameObject + > + { + } +} diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectGameEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/GameObject/GameObjectGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectGameEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectScriptableEvent.cs new file mode 100644 index 0000000..04ef807 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.GameObject +{ + [CreateAssetMenu( + fileName = "GameObjectScriptableEvent", + menuName = "Scriptable Events/Game Object Scriptable Event", + order = 3 + )] + public class GameObjectScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/GameObject/GameObjectGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectUnityEvent.cs new file mode 100644 index 0000000..c73d002 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.GameObject +{ + [Serializable] + public class GameObjectUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/GameObject/GameObjectEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/GameObject/GameObjectEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/GameObject/GameObjectUnityEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs new file mode 100644 index 0000000..37dd2c3 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace ScriptableEvents +{ + public interface IScriptableEvent + { + /// + /// List of listeners added to this event. + /// + IReadOnlyList> Listeners { get; } + + /// + /// Raise this event with an argument. + /// + void Raise(TArg arg); + + /// + /// Add a listener to this event. + /// + void Add(IScriptableEventListener listener); + + /// + /// Remove a listener from this event. + /// + void Remove(IScriptableEventListener listener); + + /// + /// Remove all listeners from this event. + /// + void Clear(); + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs.meta new file mode 100644 index 0000000..ddd7e9c --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/IScriptableEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f62ff48639d0421598a90127b09a990c +timeCreated: 1611166784 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs new file mode 100644 index 0000000..9000cf4 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs @@ -0,0 +1,10 @@ +namespace ScriptableEvents +{ + public interface IScriptableEventListener + { + /// + /// Handle raised event by accepting its argument. + /// + void OnRaised(TArg arg); + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs.meta new file mode 100644 index 0000000..ae8370c --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/IScriptableEventListener.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d3afe043ca8a4e36bbf19fe482d7ca13 +timeCreated: 1611166884 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/Int.meta b/Packages/com.chark.scriptable-events/Runtime/Int.meta similarity index 100% rename from Assets/Runtime/GameEvents/Int.meta rename to Packages/com.chark.scriptable-events/Runtime/Int.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEvent.cs new file mode 100644 index 0000000..e1a8b4e --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Int +{ + [CreateAssetMenu( + fileName = "IntScriptableEvent", + menuName = "Scriptable Events/Int Scriptable Event", + order = 4 + )] + public class IntScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Int/IntGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Int/IntGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEventListener.cs new file mode 100644 index 0000000..0ba00b6 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEventListener.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace ScriptableEvents.Int +{ + [AddComponentMenu("Scriptable Events/Int Scriptable Event Listener", 4)] + public class IntScriptableEventListener + : BaseScriptableEventListener + { + } +} diff --git a/Assets/Runtime/GameEvents/Int/IntGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Int/IntGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Int/IntScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Int/IntUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Int/IntUnityEvent.cs new file mode 100644 index 0000000..936af16 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Int/IntUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Int +{ + [Serializable] + public class IntUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Int/IntEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Int/IntUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Int/IntEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Int/IntUnityEvent.cs.meta diff --git a/Assets/Runtime/GameEvents/Game.meta b/Packages/com.chark.scriptable-events/Runtime/Simple.meta similarity index 100% rename from Assets/Runtime/GameEvents/Game.meta rename to Packages/com.chark.scriptable-events/Runtime/Simple.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs new file mode 100644 index 0000000..d57d6a8 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs @@ -0,0 +1,11 @@ +namespace ScriptableEvents.Simple +{ + public class SimpleArg + { + public static readonly SimpleArg Instance = new SimpleArg(); + + private SimpleArg() + { + } + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs.meta new file mode 100644 index 0000000..f57700f --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleArg.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b613ccfb6b6e458b94acf07de26dbbb2 +timeCreated: 1611167750 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs new file mode 100644 index 0000000..6cc08c7 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs @@ -0,0 +1,20 @@ +using UnityEngine; + +namespace ScriptableEvents.Simple +{ + [CreateAssetMenu( + fileName = "SimpleScriptableEvent", + menuName = "Scriptable Events/Simple Scriptable Event", + order = -10 + )] + public class SimpleScriptableEvent : BaseScriptableEvent + { + /// + /// Raise this event without an argument. + /// + public void Raise() + { + Raise(SimpleArg.Instance); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs.meta new file mode 100644 index 0000000..319d375 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3ca9d72c0f5043e9b9ed7e25d63422f5 +timeCreated: 1611167731 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs new file mode 100644 index 0000000..a02c8b7 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace ScriptableEvents.Simple +{ + [AddComponentMenu("Scriptable Events/Simple Scriptable Event Listener", -10)] + public class SimpleScriptableEventListener + : BaseScriptableEventListener + { + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs.meta new file mode 100644 index 0000000..e710ebe --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleScriptableEventListener.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2300d56ac22446e59de6de2fb87235d1 +timeCreated: 1611167874 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs new file mode 100644 index 0000000..f3f7fb9 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Simple +{ + [Serializable] + public class SimpleUnityEvent : UnityEvent + { + } +} diff --git a/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs.meta new file mode 100644 index 0000000..5232043 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Simple/SimpleUnityEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9aae76d7ace94aeba4f40e74b469dd82 +timeCreated: 1611167840 \ No newline at end of file diff --git a/Assets/Runtime/GameEvents/String.meta b/Packages/com.chark.scriptable-events/Runtime/String.meta similarity index 100% rename from Assets/Runtime/GameEvents/String.meta rename to Packages/com.chark.scriptable-events/Runtime/String.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEvent.cs new file mode 100644 index 0000000..e233148 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.String +{ + [CreateAssetMenu( + fileName = "StringScriptableEvent", + menuName = "Scriptable Events/String Scriptable Event", + order = 5 + )] + public class StringScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/String/StringGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/String/StringGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEventListener.cs new file mode 100644 index 0000000..215a848 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEventListener.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace ScriptableEvents.String +{ + [AddComponentMenu("Scriptable Events/String Scriptable Event Listener", 5)] + public class StringScriptableEventListener + : BaseScriptableEventListener + { + } +} diff --git a/Assets/Runtime/GameEvents/String/StringGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/String/StringGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/String/StringScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/String/StringUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/String/StringUnityEvent.cs new file mode 100644 index 0000000..90ada13 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/String/StringUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.String +{ + [Serializable] + public class StringUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/String/StringEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/String/StringUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/String/StringEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/String/StringUnityEvent.cs.meta diff --git a/Assets/Runtime/GameEvents/Transform.meta b/Packages/com.chark.scriptable-events/Runtime/Transform.meta similarity index 100% rename from Assets/Runtime/GameEvents/Transform.meta rename to Packages/com.chark.scriptable-events/Runtime/Transform.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEvent.cs new file mode 100644 index 0000000..572898b --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Transform +{ + [CreateAssetMenu( + fileName = "TransformScriptableEvent", + menuName = "Scriptable Events/Transform Scriptable Event", + order = 6 + )] + public class TransformScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Transform/TransformGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Transform/TransformGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEventListener.cs new file mode 100644 index 0000000..c548218 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEventListener.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ScriptableEvents.Transform +{ + [AddComponentMenu("Scriptable Events/Transform Scriptable Event Listener", 6)] + public class TransformScriptableEventListener + : BaseScriptableEventListener< + TransformScriptableEvent, + TransformUnityEvent, + UnityEngine.Transform + > + { + } +} diff --git a/Assets/Runtime/GameEvents/Transform/TransformGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Transform/TransformGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Transform/TransformScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Transform/TransformUnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformUnityEvent.cs new file mode 100644 index 0000000..faf3f45 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Transform +{ + [Serializable] + public class TransformUnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Transform/TransformEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Transform/TransformUnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Transform/TransformEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Transform/TransformUnityEvent.cs.meta diff --git a/Assets/Runtime/GameEvents/Vector2.meta b/Packages/com.chark.scriptable-events/Runtime/Vector2.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector2.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector2.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEvent.cs new file mode 100644 index 0000000..407177f --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Vector2 +{ + [CreateAssetMenu( + fileName = "Vector2ScriptableEvent", + menuName = "Scriptable Events/Vector2 Scriptable Event", + order = 7 + )] + public class Vector2ScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2GameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector2/Vector2GameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEventListener.cs new file mode 100644 index 0000000..a0109a6 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEventListener.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ScriptableEvents.Vector2 +{ + [AddComponentMenu("Scriptable Events/Vector2 Scriptable Event Listener", 7)] + public class Vector2ScriptableEventListener + : BaseScriptableEventListener< + Vector2ScriptableEvent, + Vector2UnityEvent, + UnityEngine.Vector2 + > + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2GameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector2/Vector2GameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2ScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2UnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2UnityEvent.cs new file mode 100644 index 0000000..ede3767 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2UnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Vector2 +{ + [Serializable] + public class Vector2UnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector2/Vector2Event.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2UnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector2/Vector2Event.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector2/Vector2UnityEvent.cs.meta diff --git a/Assets/Runtime/GameEvents/Vector3.meta b/Packages/com.chark.scriptable-events/Runtime/Vector3.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector3.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector3.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEvent.cs new file mode 100644 index 0000000..5c614f7 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEvent.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace ScriptableEvents.Vector3 +{ + [CreateAssetMenu( + fileName = "Vector3ScriptableEvent", + menuName = "Scriptable Events/Vector3 Scriptable Event", + order = 8 + )] + public class Vector3ScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3GameEvent.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector3/Vector3GameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEventListener.cs new file mode 100644 index 0000000..62b5ee9 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEventListener.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ScriptableEvents.Vector3 +{ + [AddComponentMenu("Scriptable Events/Vector3 Scriptable Event Listener", 8)] + public class Vector3ScriptableEventListener + : BaseScriptableEventListener< + Vector3ScriptableEvent, + Vector3UnityEvent, + UnityEngine.Vector3 + > + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3GameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEventListener.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector3/Vector3GameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3ScriptableEventListener.cs.meta diff --git a/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3UnityEvent.cs b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3UnityEvent.cs new file mode 100644 index 0000000..a0c35a4 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3UnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Vector3 +{ + [Serializable] + public class Vector3UnityEvent : UnityEvent + { + } +} diff --git a/Assets/Runtime/GameEvents/Vector3/Vector3Event.cs.meta b/Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3UnityEvent.cs.meta similarity index 100% rename from Assets/Runtime/GameEvents/Vector3/Vector3Event.cs.meta rename to Packages/com.chark.scriptable-events/Runtime/Vector3/Vector3UnityEvent.cs.meta diff --git a/Packages/com.chark.scriptable-events/Samples~/Chark.ScriptableEvents.Samples.asmdef b/Packages/com.chark.scriptable-events/Samples~/Chark.ScriptableEvents.Samples.asmdef new file mode 100644 index 0000000..48b9d5d --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/Chark.ScriptableEvents.Samples.asmdef @@ -0,0 +1,8 @@ +{ + "name": "Chark.ScriptableEvents.Samples", + "rootNamespace": "ScriptableEvents.Samples", + "references": [ + "Chark.ScriptableEvents", + "Chark.ScriptableEvents.Editor" + ] +} diff --git a/Assets/Samples/Chark.UnityScriptableObjects.Samples.asmdef.meta b/Packages/com.chark.scriptable-events/Samples~/Chark.ScriptableEvents.Samples.asmdef.meta similarity index 100% rename from Assets/Samples/Chark.UnityScriptableObjects.Samples.asmdef.meta rename to Packages/com.chark.scriptable-events/Samples~/Chark.ScriptableEvents.Samples.asmdef.meta diff --git a/Assets/Editor/GameEvents.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents.meta similarity index 77% rename from Assets/Editor/GameEvents.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents.meta index a6e8f61..02f97e6 100644 --- a/Assets/Editor/GameEvents.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cbcc665b02ec09a4eabb8541ac606e5b +guid: 669c792519f2e9b4996215c7db31d5ec folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity new file mode 100644 index 0000000..a3bd611 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity @@ -0,0 +1,2210 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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_LightProbeSampleCountMultiplier: 4 + 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 &77099691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 77099692} + - component: {fileID: 77099695} + - component: {fileID: 77099694} + - component: {fileID: 77099693} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &77099692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77099691} + 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: 717997524} + m_Father: {fileID: 1354972338} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &77099693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77099691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &77099694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77099691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &77099695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77099691} + m_CullTransparentMesh: 0 +--- !u!1 &141972452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 141972453} + - component: {fileID: 141972455} + - component: {fileID: 141972454} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &141972453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141972452} + 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: 505419880} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &141972454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141972452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: White +--- !u!222 &141972455 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141972452} + m_CullTransparentMesh: 0 +--- !u!1 &476993018 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 476993019} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &476993019 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476993018} + 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: 576385275} + m_Father: {fileID: 1144044471} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &505419879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 505419880} + - component: {fileID: 505419883} + - component: {fileID: 505419882} + - component: {fileID: 505419881} + m_Layer: 5 + m_Name: ColorDropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &505419880 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505419879} + 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: 141972453} + - {fileID: 1904093297} + - {fileID: 1354972338} + m_Father: {fileID: 1815001690} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 32} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &505419881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505419879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d0b652f32a2cc243917e4028fa0f046, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 505419882} + m_Template: {fileID: 1354972338} + m_CaptionText: {fileID: 141972454} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 1595682152} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: White + m_Image: {fileID: 0} + - m_Text: Red + m_Image: {fileID: 0} + - m_Text: Green + m_Image: {fileID: 0} + - m_Text: Blue + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1815001691} + m_MethodName: OnChangeColor + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_AlphaFadeSpeed: 0.15 +--- !u!114 &505419882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505419879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &505419883 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505419879} + m_CullTransparentMesh: 0 +--- !u!1 &576385274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 576385275} + - component: {fileID: 576385277} + - component: {fileID: 576385276} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &576385275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576385274} + 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: 476993019} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &576385276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576385274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &576385277 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576385274} + m_CullTransparentMesh: 0 +--- !u!1 &579522505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 579522507} + - component: {fileID: 579522506} + m_Layer: 0 + m_Name: DirectionalLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &579522506 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &579522507 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &717997523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 717997524} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &717997524 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717997523} + 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: 1600359325} + m_Father: {fileID: 77099692} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &996868308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 996868309} + - component: {fileID: 996868311} + - component: {fileID: 996868310} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &996868309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + 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: 2091594018} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &996868310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &996868311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + m_CullTransparentMesh: 0 +--- !u!1 &1144044470 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1144044471} + - component: {fileID: 1144044474} + - component: {fileID: 1144044473} + - component: {fileID: 1144044472} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1144044471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144044470} + 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: 476993019} + m_Father: {fileID: 1354972338} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1144044472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144044470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 576385276} + m_HandleRect: {fileID: 576385275} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1144044473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144044470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1144044474 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144044470} + m_CullTransparentMesh: 0 +--- !u!1 &1194471405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1194471408} + - component: {fileID: 1194471407} + - component: {fileID: 1194471406} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1194471406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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 &1194471407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 10 +--- !u!4 &1194471408 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 1711634209} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1315013218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1315013221} + - component: {fileID: 1315013220} + - component: {fileID: 1315013219} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1315013219 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_Enabled: 1 +--- !u!20 &1315013220 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + 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: 0 + 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 &1315013221 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1354972337 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1354972338} + - component: {fileID: 1354972341} + - component: {fileID: 1354972340} + - component: {fileID: 1354972339} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1354972338 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354972337} + 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: 77099692} + - {fileID: 1144044471} + m_Father: {fileID: 505419880} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1354972339 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354972337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 717997524} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 77099692} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 1144044472} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1354972340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354972337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1354972341 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354972337} + m_CullTransparentMesh: 0 +--- !u!1 &1355824719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1355824720} + - component: {fileID: 1355824722} + - component: {fileID: 1355824721} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1355824720 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + 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: 2133235091} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1355824721 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1355824722 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + m_CullTransparentMesh: 0 +--- !u!1 &1560495122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560495123} + m_Layer: 0 + m_Name: Setup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1560495123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560495122} + 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: 1315013221} + - {fileID: 579522507} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1595682150 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1595682151} + - component: {fileID: 1595682153} + - component: {fileID: 1595682152} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1595682151 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1595682150} + 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: 1600359325} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1595682152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1595682150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &1595682153 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1595682150} + m_CullTransparentMesh: 0 +--- !u!1 &1600359324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1600359325} + - component: {fileID: 1600359326} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1600359325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1600359324} + 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: 2037437775} + - {fileID: 1842968514} + - {fileID: 1595682151} + m_Father: {fileID: 717997524} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1600359326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1600359324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2037437776} + toggleTransition: 1 + graphic: {fileID: 1842968515} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &1711634208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711634209} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1711634209 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711634208} + 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: 1815001690} + - {fileID: 1194471408} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1815001686 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815001690} + - component: {fileID: 1815001689} + - component: {fileID: 1815001688} + - component: {fileID: 1815001687} + - component: {fileID: 1815001691} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1815001687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1815001688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1815001689 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1815001690 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2091594018} + - {fileID: 505419880} + m_Father: {fileID: 1711634209} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1815001691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea7d8baaa3cec734e94b4adf9dcd73fc, type: 3} + m_Name: + m_EditorClassIdentifier: + onMaterialChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 4101eb954e9cc7b4f94add4909259cf5, type: 2} + m_MethodName: Raise + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1842968513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1842968514} + - component: {fileID: 1842968516} + - component: {fileID: 1842968515} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1842968514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842968513} + 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: 1600359325} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1842968515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842968513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1842968516 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842968513} + m_CullTransparentMesh: 0 +--- !u!1 &1901124777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1901124778} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1901124778 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1901124777} + 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: 1935845758} + m_Father: {fileID: 2091594018} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1904093296 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1904093297} + - component: {fileID: 1904093299} + - component: {fileID: 1904093298} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1904093297 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1904093296} + 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: 505419880} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1904093298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1904093296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1904093299 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1904093296} + m_CullTransparentMesh: 0 +--- !u!1 &1935845757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1935845758} + - component: {fileID: 1935845760} + - component: {fileID: 1935845759} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1935845758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + 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: 1901124778} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1935845759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1935845760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + m_CullTransparentMesh: 0 +--- !u!1 &1972673856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1972673860} + - component: {fileID: 1972673859} + - component: {fileID: 1972673858} + - component: {fileID: 1972673857} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1972673857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1f39f6e9127645ad87fb98c084cd9965, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!23 &1972673858 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + 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 &1972673859 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1972673860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 2081766997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2037437774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037437775} + - component: {fileID: 2037437777} + - component: {fileID: 2037437776} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2037437775 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037437774} + 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: 1600359325} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2037437776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037437774} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2037437777 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037437774} + m_CullTransparentMesh: 0 +--- !u!1 &2081766996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2081766997} + m_Layer: 0 + m_Name: Sample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2081766997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2081766996} + 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: 1972673860} + - {fileID: 2085729137} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2085729135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085729137} + - component: {fileID: 2085729136} + m_Layer: 0 + m_Name: MaterialDataChangeEventListener + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2085729136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f129bceb33ca40bebd7a270e22fbacd9, type: 3} + m_Name: + m_EditorClassIdentifier: + scriptableEvent: {fileID: 11400000, guid: 4101eb954e9cc7b4f94add4909259cf5, type: 2} + onRaised: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1972673857} + m_MethodName: ChangeMaterial + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!4 &2085729137 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + 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: 2081766997} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2091594017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2091594018} + - component: {fileID: 2091594019} + m_Layer: 5 + m_Name: MetallicSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2091594018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091594017} + 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: 996868309} + - {fileID: 1901124778} + - {fileID: 2133235091} + m_Father: {fileID: 1815001690} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 64} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2091594019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091594017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1355824721} + m_FillRect: {fileID: 1935845758} + m_HandleRect: {fileID: 1355824720} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1815001691} + m_MethodName: OnChangeMetallic + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2133235090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2133235091} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2133235091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133235090} + 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: 1355824720} + m_Father: {fileID: 2091594018} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Samples/MutableObjects/Scenes/MutableObjects.unity.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity.meta similarity index 74% rename from Assets/Samples/MutableObjects/Scenes/MutableObjects.unity.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity.meta index 597c765..3d3ab6f 100644 --- a/Assets/Samples/MutableObjects/Scenes/MutableObjects.unity.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/CustomEventsScene.unity.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ac31d203f09bf1c4a8033c527c3d6fb2 +guid: cb809b3c415029840a2bad5c079dd504 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Editor/GameEvents/GameObject.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor.meta similarity index 77% rename from Assets/Editor/GameEvents/GameObject.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor.meta index dbf658e..c42d3ba 100644 --- a/Assets/Editor/GameEvents/GameObject.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3bd3d37f552f4556b5abcdafc361945d +guid: 9f676735a9240e5438bc8ce5764eee93 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs new file mode 100644 index 0000000..d71fedd --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs @@ -0,0 +1,25 @@ +using ScriptableEvents.Editor; +using UnityEditor; +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents.Editor +{ + [CustomEditor(typeof(MaterialDataScriptableEvent))] + public class MaterialDataScriptableEventEditor : BaseScriptableEventEditor + { + protected override MaterialData DrawArgField(MaterialData value) + { + if (value == null) + { + return new MaterialData(0f, Color.white); + } + + EditorGUILayout.BeginVertical(); + var metallic = EditorGUILayout.Slider("Metallic", value.Metallic, 0f, 1f); + var color = EditorGUILayout.ColorField("Color", value.Color); + EditorGUILayout.EndVertical(); + + return new MaterialData(metallic, color); + } + } +} diff --git a/Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs.meta similarity index 83% rename from Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs.meta index c4b1d66..e90ddca 100644 --- a/Assets/Runtime/GameEvents/Generic/ArgumentGameEvent.cs.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/Editor/MaterialDataScriptableEventEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d30ce9ddbe6ab324a958ce96f81dd13c +guid: fd23b8159f166c543a3a3433e29ae1a9 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs new file mode 100644 index 0000000..3ed8030 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents +{ + public class MaterialChanger : MonoBehaviour + { + private static readonly int Metallic = Shader.PropertyToID("_Metallic"); + private Material material; + + private void Awake() + { + material = GetComponent().material; + } + + public void ChangeMaterial(MaterialData data) + { + material.color = data.Color; + material.SetFloat(Metallic, data.Metallic); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs.meta new file mode 100644 index 0000000..4724413 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialChanger.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1f39f6e9127645ad87fb98c084cd9965 +timeCreated: 1611488611 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs new file mode 100644 index 0000000..41e1ca1 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs @@ -0,0 +1,17 @@ +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents +{ + public class MaterialData + { + public float Metallic { get; } + + public Color Color { get; } + + public MaterialData(float metallic, Color color) + { + Metallic = metallic; + Color = color; + } + } +} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs.meta new file mode 100644 index 0000000..9a54dc8 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b17a93b78ca44f78a7d5438bcf3bcebb +timeCreated: 1611488469 \ No newline at end of file diff --git a/Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset similarity index 50% rename from Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset index 63923db..b207900 100644 --- a/Assets/Samples/MutableObjects/MutableObjects/PlayerHealth.asset +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset @@ -9,7 +9,13 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb4c1ad19b56486ca2a4e9514f8b7acc, type: 3} - m_Name: PlayerHealth + m_Script: {fileID: 11500000, guid: 3ecea89908c4413b8a1c24d87c376e74, type: 3} + m_Name: MaterialDataChangeEvent m_EditorClassIdentifier: - value: 100 + description: 'Changes color and metalic property of the material. Raised when slider + or dropdown value changes. + +' + lockDescription: 1 + suppressExceptions: 0 + trace: 0 diff --git a/Assets/Samples/GameEvents/Events/ShotGameEvent.asset.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset.meta similarity index 78% rename from Assets/Samples/GameEvents/Events/ShotGameEvent.asset.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset.meta index fb5cfb8..99888d3 100644 --- a/Assets/Samples/GameEvents/Events/ShotGameEvent.asset.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataChangeEvent.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d15108d9f7748d24584a3a876de12713 +guid: 4101eb954e9cc7b4f94add4909259cf5 NativeFormatImporter: externalObjects: {} mainObjectFileID: 0 diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs new file mode 100644 index 0000000..28c7a01 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs @@ -0,0 +1,12 @@ +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents +{ + [CreateAssetMenu( + fileName = "MaterialDataScriptableEvent", + menuName = "Custom Scriptable Events/Material Data Scriptable Event" + )] + public class MaterialDataScriptableEvent : BaseScriptableEvent + { + } +} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs.meta new file mode 100644 index 0000000..fa3615f --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3ecea89908c4413b8a1c24d87c376e74 +timeCreated: 1611488685 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs new file mode 100644 index 0000000..b5893eb --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents +{ + [AddComponentMenu("Custom Scriptable Events/Material Data Event Listener")] + public class MaterialDataScriptableEventListener + : BaseScriptableEventListener< + MaterialDataScriptableEvent, + MaterialDataUnityEvent, + MaterialData + > + { + } +} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs.meta new file mode 100644 index 0000000..525d588 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataScriptableEventListener.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f129bceb33ca40bebd7a270e22fbacd9 +timeCreated: 1611488763 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs new file mode 100644 index 0000000..ffbfe76 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine.Events; + +namespace ScriptableEvents.Samples.CustomEvents +{ + [Serializable] + public class MaterialDataUnityEvent : UnityEvent + { + } +} diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs.meta new file mode 100644 index 0000000..8096ac0 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialDataUnityEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89412734c6b84b038eb55c96ae664811 +timeCreated: 1611488545 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs new file mode 100644 index 0000000..f82275d --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs @@ -0,0 +1,48 @@ +using UnityEngine; + +namespace ScriptableEvents.Samples.CustomEvents +{ + public class MaterialOptionsHandler : MonoBehaviour + { + [SerializeField] + private MaterialDataUnityEvent onMaterialChanged; + + private float metallic; + private Color color = Color.white; + + public void OnChangeMetallic(float newMetallic) + { + metallic = newMetallic; + InvokeEvent(); + } + + public void OnChangeColor(int colorIndex) + { + switch (colorIndex) + { + case 0: + color = Color.white; + break; + case 1: + color = Color.red; + break; + case 2: + color = Color.green; + break; + case 3: + color = Color.blue; + break; + default: + color = Color.black; + break; + } + + InvokeEvent(); + } + + private void InvokeEvent() + { + onMaterialChanged.Invoke(new MaterialData(metallic, color)); + } + } +} diff --git a/Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs.meta b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs.meta similarity index 83% rename from Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs.meta rename to Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs.meta index fb48634..da8d820 100644 --- a/Assets/Runtime/GameEvents/Generic/BaseGameEventListener.cs.meta +++ b/Packages/com.chark.scriptable-events/Samples~/CustomEvents/MaterialOptionsHandler.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6085baf1c9ef647428c1dde1cc5d7633 +guid: ea7d8baaa3cec734e94b4adf9dcd73fc MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Runtime/GameEvents.meta b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments.meta similarity index 77% rename from Assets/Runtime/GameEvents.meta rename to Packages/com.chark.scriptable-events/Samples~/EventsWithArguments.meta index 0aa9259..2d15ef0 100644 --- a/Assets/Runtime/GameEvents.meta +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d181c151a2755a34a9710bdbb608a9c7 +guid: 869f4106911d8f84a849ce02bdb392c7 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/GameEvents/Events/ShotGameEvent.asset b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset similarity index 52% rename from Assets/Samples/GameEvents/Events/ShotGameEvent.asset rename to Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset index ce5342a..40f8259 100644 --- a/Assets/Samples/GameEvents/Events/ShotGameEvent.asset +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset @@ -9,7 +9,13 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7d4060906d542e7a9dca07008bdc652, type: 3} - m_Name: ShotGameEvent + m_Script: {fileID: 11500000, guid: ff6c51af645c42938d2b5a26ee3e6238, type: 3} + m_Name: ChangeColorEvent m_EditorClassIdentifier: - debug: 0 + description: 'Changes red, green, and blue color components. Raised when slider + value changes. + +' + lockDescription: 1 + suppressExceptions: 0 + trace: 0 diff --git a/Assets/Samples/GameEvents/Events/TargetDeathEvent.asset.meta b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset.meta similarity index 78% rename from Assets/Samples/GameEvents/Events/TargetDeathEvent.asset.meta rename to Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset.meta index 3768c8c..d69233c 100644 --- a/Assets/Samples/GameEvents/Events/TargetDeathEvent.asset.meta +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/ChangeColorEvent.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ba3e9660171fc3e499829b9d9ed8b9cb +guid: 42d9aaec5884bc746b5e0ca61b22d5d5 NativeFormatImporter: externalObjects: {} mainObjectFileID: 0 diff --git a/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity new file mode 100644 index 0000000..8d19af7 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity @@ -0,0 +1,1103 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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_LightProbeSampleCountMultiplier: 4 + 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 &579522505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 579522507} + - component: {fileID: 579522506} + m_Layer: 0 + m_Name: DirectionalLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &579522506 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &579522507 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &996868308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 996868309} + - component: {fileID: 996868311} + - component: {fileID: 996868310} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &996868309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + 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: 2091594018} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &996868310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &996868311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996868308} + m_CullTransparentMesh: 0 +--- !u!1 &1194471405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1194471408} + - component: {fileID: 1194471407} + - component: {fileID: 1194471406} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1194471406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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 &1194471407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 10 +--- !u!4 &1194471408 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 1711634209} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1315013218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1315013221} + - component: {fileID: 1315013220} + - component: {fileID: 1315013219} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1315013219 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_Enabled: 1 +--- !u!20 &1315013220 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + 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: 0 + 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 &1315013221 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1355824719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1355824720} + - component: {fileID: 1355824722} + - component: {fileID: 1355824721} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1355824720 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + 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: 2133235091} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1355824721 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1355824722 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1355824719} + m_CullTransparentMesh: 0 +--- !u!1 &1560495122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560495123} + m_Layer: 0 + m_Name: Setup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1560495123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560495122} + 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: 1315013221} + - {fileID: 579522507} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1711634208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711634209} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1711634209 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711634208} + 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: 1815001690} + - {fileID: 1194471408} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1815001686 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815001690} + - component: {fileID: 1815001689} + - component: {fileID: 1815001688} + - component: {fileID: 1815001687} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1815001687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1815001688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1815001689 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1815001690 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2091594018} + m_Father: {fileID: 1711634209} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1901124777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1901124778} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1901124778 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1901124777} + 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: 1935845758} + m_Father: {fileID: 2091594018} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1935845757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1935845758} + - component: {fileID: 1935845760} + - component: {fileID: 1935845759} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1935845758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + 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: 1901124778} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1935845759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1935845760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935845757} + m_CullTransparentMesh: 0 +--- !u!1 &1972673856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1972673860} + - component: {fileID: 1972673859} + - component: {fileID: 1972673858} + - component: {fileID: 1972673857} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1972673857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88668e2b47742a14e88066f960d2f331, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!23 &1972673858 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + 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 &1972673859 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1972673860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 2081766997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2081766996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2081766997} + m_Layer: 0 + m_Name: Sample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2081766997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2081766996} + 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: 1972673860} + - {fileID: 2085729137} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2085729135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085729137} + - component: {fileID: 2085729136} + m_Layer: 0 + m_Name: ChangeColorEventListener + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2085729136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 46c9e0aa5c1e487e884cfba5886e0d41, type: 3} + m_Name: + m_EditorClassIdentifier: + scriptableEvent: {fileID: 11400000, guid: 42d9aaec5884bc746b5e0ca61b22d5d5, type: 2} + onRaised: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1972673857} + m_MethodName: ChangeColor + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!4 &2085729137 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + 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: 2081766997} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2091594017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2091594018} + - component: {fileID: 2091594019} + m_Layer: 5 + m_Name: ColorSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2091594018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091594017} + 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: 996868309} + - {fileID: 1901124778} + - {fileID: 2133235091} + m_Father: {fileID: 1815001690} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 32} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2091594019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091594017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1355824721} + m_FillRect: {fileID: 1935845758} + m_HandleRect: {fileID: 1355824720} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: 42d9aaec5884bc746b5e0ca61b22d5d5, type: 2} + m_MethodName: Raise + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2133235090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2133235091} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2133235091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133235090} + 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: 1355824720} + m_Father: {fileID: 2091594018} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity.meta b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity.meta new file mode 100644 index 0000000..acdc037 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/EventsWithArgumentsScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 027fa4519f13431488691c6d2bb732f5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs new file mode 100644 index 0000000..fcdc6be --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs @@ -0,0 +1,24 @@ +using UnityEngine; + +namespace ScriptableEvents.EventsWithArguments +{ + [RequireComponent(typeof(MeshRenderer))] + public class MaterialColorChanger : MonoBehaviour + { + private Material material; + + private void Awake() + { + material = GetComponent().material; + } + + public void ChangeColor(float value) + { + var color = material.color; + color.r = value; + color.g = value; + color.b = value; + material.color = color; + } + } +} diff --git a/Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs.meta b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs.meta similarity index 83% rename from Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs.meta rename to Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs.meta index ca44439..35d0059 100644 --- a/Assets/Editor/GameEvents/GameObject/GameObjectGameEventEditor.cs.meta +++ b/Packages/com.chark.scriptable-events/Samples~/EventsWithArguments/MaterialColorChanger.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a7950ca1c5ef3a74aa19eaa9bf5b26c8 +guid: 88668e2b47742a14e88066f960d2f331 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Editor/GameEvents/Generic.meta b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents.meta similarity index 77% rename from Assets/Editor/GameEvents/Generic.meta rename to Packages/com.chark.scriptable-events/Samples~/SimpleEvents.meta index b9c60dd..39e0090 100644 --- a/Assets/Editor/GameEvents/Generic.meta +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 64263b88ab86c2043913d3478aa388ea +guid: 0c484137f5ba5334eb616d7bb5f5d4e9 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs new file mode 100644 index 0000000..5f93f33 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace ScriptableEvents.SimpleEvents +{ + [RequireComponent(typeof(MeshRenderer))] + public class MaterialColorToggle : MonoBehaviour + { + private Material material; + + private void Awake() + { + material = GetComponent().material; + } + + public void ToggleColor() + { + var color = material.color; + material.color = color == Color.black + ? Color.white + : Color.black; + } + } +} diff --git a/Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs.meta b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs.meta similarity index 83% rename from Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs.meta rename to Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs.meta index b0cb724..0cd13fd 100644 --- a/Assets/Samples/GameEvents/Scripts/FloatFadeOutText.cs.meta +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/MaterialColorToggle.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 04272e1dd140b4647a81945fd79860d0 +guid: e3e861e18fd61714b8259b6e6b81974b MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity new file mode 100644 index 0000000..f3b2da4 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity @@ -0,0 +1,917 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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_LightProbeSampleCountMultiplier: 4 + 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 &579522505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 579522507} + - component: {fileID: 579522506} + m_Layer: 0 + m_Name: DirectionalLight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &579522506 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &579522507 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 579522505} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1194471405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1194471408} + - component: {fileID: 1194471407} + - component: {fileID: 1194471406} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1194471406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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 &1194471407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 10 +--- !u!4 &1194471408 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194471405} + 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: 1711634209} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1230328349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1230328350} + - component: {fileID: 1230328352} + - component: {fileID: 1230328351} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1230328350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1230328349} + 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: 1467385995} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1230328351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1230328349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Toggle color +--- !u!222 &1230328352 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1230328349} + m_CullTransparentMesh: 0 +--- !u!1 &1315013218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1315013221} + - component: {fileID: 1315013220} + - component: {fileID: 1315013219} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1315013219 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_Enabled: 1 +--- !u!20 &1315013220 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + 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: 0 + 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 &1315013221 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315013218} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1560495123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1467385994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1467385995} + - component: {fileID: 1467385998} + - component: {fileID: 1467385997} + - component: {fileID: 1467385996} + m_Layer: 5 + m_Name: ToggleColorButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1467385995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467385994} + 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: 1230328350} + m_Father: {fileID: 1815001690} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 32} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1467385996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467385994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1467385997} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: d00456c7b79fe934e94fc3ea78469b7a, type: 2} + m_MethodName: Raise + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1467385997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467385994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1467385998 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467385994} + m_CullTransparentMesh: 0 +--- !u!1 &1560495122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560495123} + m_Layer: 0 + m_Name: Setup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1560495123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560495122} + 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: 1315013221} + - {fileID: 579522507} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1711634208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711634209} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1711634209 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711634208} + 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: 1815001690} + - {fileID: 1194471408} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1815001686 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815001690} + - component: {fileID: 1815001689} + - component: {fileID: 1815001688} + - component: {fileID: 1815001687} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1815001687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1815001688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1815001689 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1815001690 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815001686} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1467385995} + m_Father: {fileID: 1711634209} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1972673856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1972673860} + - component: {fileID: 1972673859} + - component: {fileID: 1972673858} + - component: {fileID: 1972673857} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1972673857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e3e861e18fd61714b8259b6e6b81974b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!23 &1972673858 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + 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 &1972673859 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1972673860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972673856} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 2081766997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2081766996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2081766997} + m_Layer: 0 + m_Name: Sample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2081766997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2081766996} + 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: 1972673860} + - {fileID: 2085729137} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2085729135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085729137} + - component: {fileID: 2085729136} + m_Layer: 0 + m_Name: ToggleColorEventListener + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2085729136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2300d56ac22446e59de6de2fb87235d1, type: 3} + m_Name: + m_EditorClassIdentifier: + scriptableEvent: {fileID: 11400000, guid: d00456c7b79fe934e94fc3ea78469b7a, type: 2} + onRaised: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1972673857} + m_MethodName: ToggleColor + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!4 &2085729137 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085729135} + 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: 2081766997} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity.meta b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity.meta new file mode 100644 index 0000000..f7a19a4 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/SimpleEventsScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9ab50225cf365ce499a69d7011561174 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/GameEvents/Events/TargetDeathEvent.asset b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset similarity index 52% rename from Assets/Samples/GameEvents/Events/TargetDeathEvent.asset rename to Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset index 66e9a18..bd5503d 100644 --- a/Assets/Samples/GameEvents/Events/TargetDeathEvent.asset +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset @@ -9,7 +9,13 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 21db6c450dc447148ebdd67c2a7c553d, type: 3} - m_Name: TargetDeathEvent + m_Script: {fileID: 11500000, guid: 3ca9d72c0f5043e9b9ed7e25d63422f5, type: 3} + m_Name: ToggleColorEvent m_EditorClassIdentifier: - debug: 0 + description: 'Toggles between whie and black colors. Raised when color toggle button + is clicked. + +' + lockDescription: 1 + suppressExceptions: 0 + trace: 0 diff --git a/Assets/Samples/GameEvents/Materials/Target.mat.meta b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset.meta similarity index 78% rename from Assets/Samples/GameEvents/Materials/Target.mat.meta rename to Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset.meta index 74c946f..a062008 100644 --- a/Assets/Samples/GameEvents/Materials/Target.mat.meta +++ b/Packages/com.chark.scriptable-events/Samples~/SimpleEvents/ToggleColorEvent.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 275f385ed1d71b242ac4af4042c4974e +guid: d00456c7b79fe934e94fc3ea78469b7a NativeFormatImporter: externalObjects: {} mainObjectFileID: 0 diff --git a/Assets/Tests.meta b/Packages/com.chark.scriptable-events/Tests.meta similarity index 100% rename from Assets/Tests.meta rename to Packages/com.chark.scriptable-events/Tests.meta diff --git a/Packages/com.chark.scriptable-events/Tests/Editor.meta b/Packages/com.chark.scriptable-events/Tests/Editor.meta new file mode 100644 index 0000000..b0342b2 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 210cefc4ade5410aa5e1b1bd69ab9117 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef b/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef new file mode 100644 index 0000000..5e8a95d --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef @@ -0,0 +1,14 @@ +{ + "name": "Chark.ScriptableEvents.Editor.Tests", + "rootNamespace": "ScriptableEvents.Editor.Tests", + "references": [ + "Chark.ScriptableEvents", + "Chark.ScriptableEvents.Editor" + ], + "includePlatforms": [ + "Editor" + ], + "optionalUnityReferences": [ + "TestAssemblies" + ] +} diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef.meta b/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef.meta new file mode 100644 index 0000000..3a93ec1 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/Chark.ScriptableEvents.Editor.Tests.asmdef.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 615be4064e9e4487b1de6bca3ddbbb78 +timeCreated: 1611441796 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs new file mode 100644 index 0000000..509b109 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs @@ -0,0 +1,60 @@ +using System; +using System.Reflection; +using NUnit.Framework; +using UnityEngine; + +namespace ScriptableEvents.Editor.Tests +{ + [TestFixtureSource(typeof(ScriptableEventAttributeTestSource))] + public class ScriptableEventAttributeTest + { + private readonly Type eventType; + private readonly Type listenerType; + + private readonly string eventFileName; + private readonly string eventMenuName; + private readonly string listenerMenuName; + + private readonly int order; + + public ScriptableEventAttributeTest( + Type eventType, + Type listenerType, + string eventFileName, + string eventMenuName, + string listenerMenuName, + int order + ) + { + this.eventType = eventType; + this.listenerType = listenerType; + this.eventFileName = eventFileName; + this.eventMenuName = eventMenuName; + this.listenerMenuName = listenerMenuName; + this.order = order; + } + + [Test] + public void ShouldMatchEventAttributeValues() + { + var eventMenuAttribute = GetAttribute(eventType); + Assert.AreEqual(eventFileName, eventMenuAttribute.fileName); + Assert.AreEqual(eventMenuName, eventMenuAttribute.menuName); + Assert.AreEqual(order, eventMenuAttribute.order); + } + + [Test] + public void ShouldMatchListenerAttributeValues() + { + var listenerMenuAttribute = GetAttribute(listenerType); + Assert.AreEqual(listenerMenuName, listenerMenuAttribute.componentMenu); + Assert.AreEqual(order, listenerMenuAttribute.componentOrder); + } + + private static TAttribute GetAttribute(MemberInfo type) + where TAttribute : Attribute + { + return (TAttribute) type.GetCustomAttribute(typeof(TAttribute)); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs.meta b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs.meta new file mode 100644 index 0000000..4f258c5 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTest.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 13e0bf5f226f4e97a5dcaa290ca66394 +timeCreated: 1611441959 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs new file mode 100644 index 0000000..0164f22 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs @@ -0,0 +1,130 @@ +using System.Collections; +using ScriptableEvents.Bool; +using ScriptableEvents.Float; +using ScriptableEvents.GameObject; +using ScriptableEvents.Int; +using ScriptableEvents.Simple; +using ScriptableEvents.String; +using ScriptableEvents.Transform; +using ScriptableEvents.Vector2; +using ScriptableEvents.Vector3; + +namespace ScriptableEvents.Editor.Tests +{ + public class ScriptableEventAttributeTestSource : IEnumerable + { + public IEnumerator GetEnumerator() + { + yield return CreateTestCase< + BoolScriptableEvent, + BoolScriptableEventListener + >( + "BoolScriptableEvent", + "Scriptable Events/Bool Scriptable Event", + "Scriptable Events/Bool Scriptable Event Listener", + 1 + ); + + yield return CreateTestCase< + FloatScriptableEvent, + FloatScriptableEventListener + >( + "FloatScriptableEvent", + "Scriptable Events/Float Scriptable Event", + "Scriptable Events/Float Scriptable Event Listener", + 2 + ); + + yield return CreateTestCase< + GameObjectScriptableEvent, + GameObjectScriptableEventListener + >( + "GameObjectScriptableEvent", + "Scriptable Events/Game Object Scriptable Event", + "Scriptable Events/Game Object Scriptable Event Listener", + 3 + ); + + yield return CreateTestCase< + IntScriptableEvent, + IntScriptableEventListener + >( + "IntScriptableEvent", + "Scriptable Events/Int Scriptable Event", + "Scriptable Events/Int Scriptable Event Listener", + 4 + ); + + yield return CreateTestCase< + SimpleScriptableEvent, + SimpleScriptableEventListener + >( + "SimpleScriptableEvent", + "Scriptable Events/Simple Scriptable Event", + "Scriptable Events/Simple Scriptable Event Listener", + -10 + ); + + yield return CreateTestCase< + StringScriptableEvent, + StringScriptableEventListener + >( + "StringScriptableEvent", + "Scriptable Events/String Scriptable Event", + "Scriptable Events/String Scriptable Event Listener", + 5 + ); + + yield return CreateTestCase< + TransformScriptableEvent, + TransformScriptableEventListener + >( + "TransformScriptableEvent", + "Scriptable Events/Transform Scriptable Event", + "Scriptable Events/Transform Scriptable Event Listener", + 6 + ); + + yield return CreateTestCase< + Vector2ScriptableEvent, + Vector2ScriptableEventListener + >( + "Vector2ScriptableEvent", + "Scriptable Events/Vector2 Scriptable Event", + "Scriptable Events/Vector2 Scriptable Event Listener", + 7 + ); + + yield return CreateTestCase< + Vector3ScriptableEvent, + Vector3ScriptableEventListener + >( + "Vector3ScriptableEvent", + "Scriptable Events/Vector3 Scriptable Event", + "Scriptable Events/Vector3 Scriptable Event Listener", + 8 + ); + } + + private static object[] CreateTestCase< + TScriptableEvent, + TScriptableEventListener + >( + string eventFileName, + string eventMenuName, + string listenerMenuName, + int order + ) + { + return new object[] + { + typeof(TScriptableEvent), + typeof(TScriptableEventListener), + eventFileName, + eventMenuName, + listenerMenuName, + order + }; + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs.meta b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs.meta new file mode 100644 index 0000000..e6ad066 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Editor/ScriptableEventAttributeTestSource.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fcdd45780f4445de98bc82ee46433efb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Runtime.meta b/Packages/com.chark.scriptable-events/Tests/Runtime.meta similarity index 100% rename from Assets/Tests/Runtime.meta rename to Packages/com.chark.scriptable-events/Tests/Runtime.meta diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef b/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef new file mode 100644 index 0000000..9654347 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef @@ -0,0 +1,10 @@ +{ + "name": "Chark.ScriptableEvents.Tests", + "rootNamespace": "ScriptableEvents.Tests", + "references": [ + "Chark.ScriptableEvents" + ], + "optionalUnityReferences": [ + "TestAssemblies" + ] +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef.meta new file mode 100644 index 0000000..ca68477 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/Chark.ScriptableEvents.Tests.asmdef.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 81ca8701d7fd4d309754b55f4e13dd62 +timeCreated: 1611398777 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs b/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs new file mode 100644 index 0000000..ca9f3ca --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs @@ -0,0 +1,14 @@ +using System; + +namespace ScriptableEvents.Tests +{ + public class MockScriptableEventListener : IScriptableEventListener + { + public Action Action { get; set; } + + public void OnRaised(TArg arg) + { + Action?.Invoke(arg); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs.meta new file mode 100644 index 0000000..908082e --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/MockScriptableEventListener.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9842077435ff46a898175b8ad3da81df +timeCreated: 1611438003 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs b/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs new file mode 100644 index 0000000..8ddd3e7 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs @@ -0,0 +1,35 @@ +using System.Reflection; + +namespace ScriptableEvents.Tests +{ + public static class TestExtensions + { + private const BindingFlags PrivateFieldBindingFlags = + BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly; + + /// + /// Set private field value with give name on this object. + /// + public static void SetField(this object obj, string name, object value) + { + var field = obj.GetField(name); + field.SetValue(obj, value); + } + + /// + /// Private field from this this with given name. + /// + public static FieldInfo GetField(this object obj, string name) + { + var type = obj.GetType(); + + FieldInfo info; + do + { + info = type.GetField(name, PrivateFieldBindingFlags); + } while (info == null && (type = type.BaseType) != null); + + return info; + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs.meta new file mode 100644 index 0000000..b77d2bd --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ReflectionExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1fe75f7c383b466693b98cef1b66c887 +timeCreated: 1611421081 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs new file mode 100644 index 0000000..6fc2d6c --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.TestTools; + +namespace ScriptableEvents.Tests +{ + [TestFixtureSource(typeof(ScriptableEventTestSource))] + public class ScriptableEventTest< + TScriptableEvent, + TScriptableEventListener, + TUnityEvent, + TArg + > + where TScriptableEvent : ScriptableObject, IScriptableEvent + where TScriptableEventListener : Component, IScriptableEventListener + where TUnityEvent : UnityEvent, new() + { + #region Fields + + private readonly TArg arg; + + private List capturedArgs; + private TScriptableEvent scriptableEvent; + private TUnityEvent unityEvent; + private TScriptableEventListener scriptableEventListener; + + #endregion + + #region Methods + + public ScriptableEventTest(TArg arg) + { + this.arg = arg; + } + + [SetUp] + public void SetUp() + { + SetupRaisedArgs(); + SetupScriptableEvent(); + SetupUnityEvent(); + SetupScriptableEventListener(); + } + + [Test] + public void ShouldGetListeners() + { + var listeners = scriptableEvent.Listeners; + + // By default one listener is added in this test. + Assert.AreEqual(1, listeners.Count); + Assert.AreEqual(scriptableEventListener, listeners.First()); + } + + [Test] + public void ShouldRaiseEvent() + { + scriptableEvent.Raise(arg); + + Assert.AreEqual(1, capturedArgs.Count); + Assert.AreEqual(arg, capturedArgs.First()); + } + + [Test] + public void ShouldRaiseEventAndContinueListenerChain() + { + LogAssert.ignoreFailingMessages = true; + + scriptableEvent.SetField("suppressExceptions", true); + scriptableEvent.Add(new MockScriptableEventListener + { + Action = capturedArg => throw new Exception() + }); + + scriptableEvent.Raise(arg); + + Assert.AreEqual(1, capturedArgs.Count); + } + + [Test] + public void ShouldAddListenerTwiceAndRaiseEventOnce() + { + scriptableEvent.Add(scriptableEventListener); + scriptableEvent.Raise(arg); + + Assert.AreEqual(1, capturedArgs.Count); + } + + [Test] + public void ShouldRemoveListenerAndRaiseEvent() + { + scriptableEvent.Remove(scriptableEventListener); + scriptableEvent.Raise(arg); + + Assert.AreEqual(0, capturedArgs.Count); + } + + [Test] + public void ShouldClearAndRaiseEvent() + { + scriptableEvent.Clear(); + scriptableEvent.Raise(arg); + + Assert.AreEqual(0, capturedArgs.Count); + } + + private void SetupRaisedArgs() + { + capturedArgs = new List(); + } + + private void SetupScriptableEvent() + { + scriptableEvent = ScriptableObject.CreateInstance(); + } + + private void SetupUnityEvent() + { + unityEvent = new TUnityEvent(); + unityEvent.AddListener(capturedArgs.Add); + } + + private void SetupScriptableEventListener() + { + var gameObject = new UnityEngine.GameObject(); + gameObject.SetActive(false); + + scriptableEventListener = gameObject.AddComponent(); + scriptableEventListener.SetField("scriptableEvent", scriptableEvent); + scriptableEventListener.SetField("onRaised", unityEvent); + + // Add listener by triggering OnEnabled. + gameObject.SetActive(true); + } + + #endregion + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs.meta new file mode 100644 index 0000000..70a10ef --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTest.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: daa2c11fbd9541b89b5d1cd38e37dfad +timeCreated: 1611399015 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs new file mode 100644 index 0000000..e11de2e --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs @@ -0,0 +1,95 @@ +using System.Collections; +using NUnit.Framework; +using NUnit.Framework.Internal; +using ScriptableEvents.Bool; +using ScriptableEvents.Float; +using ScriptableEvents.GameObject; +using ScriptableEvents.Int; +using ScriptableEvents.Simple; +using ScriptableEvents.String; +using ScriptableEvents.Transform; +using ScriptableEvents.Vector2; +using ScriptableEvents.Vector3; + +namespace ScriptableEvents.Tests +{ + public class ScriptableEventTestSource : IEnumerable + { + public IEnumerator GetEnumerator() + { + yield return CreateTestCase< + BoolScriptableEvent, + BoolScriptableEventListener, + BoolUnityEvent + >(true); + + yield return CreateTestCase< + FloatScriptableEvent, + FloatScriptableEventListener, + FloatUnityEvent + >(1.0f); + + yield return CreateTestCase< + GameObjectScriptableEvent, + GameObjectScriptableEventListener, + GameObjectUnityEvent + >(new UnityEngine.GameObject()); + + yield return CreateTestCase< + IntScriptableEvent, + IntScriptableEventListener, + IntUnityEvent + >(1); + + yield return CreateTestCase< + SimpleScriptableEvent, + SimpleScriptableEventListener, + SimpleUnityEvent + >(SimpleArg.Instance); + + yield return CreateTestCase< + StringScriptableEvent, + StringScriptableEventListener, + StringUnityEvent + >("hello"); + + yield return CreateTestCase< + TransformScriptableEvent, + TransformScriptableEventListener, + TransformUnityEvent + >(new UnityEngine.GameObject().transform); + + yield return CreateTestCase< + Vector2ScriptableEvent, + Vector2ScriptableEventListener, + Vector2UnityEvent + >(UnityEngine.Vector2.one); + + yield return CreateTestCase< + Vector3ScriptableEvent, + Vector3ScriptableEventListener, + Vector3UnityEvent + >(UnityEngine.Vector3.one); + } + + private static TestFixtureParameters CreateTestCase< + TScriptableEvent, + TScriptableEventListener, + TUnityEvent + >(object arg) + { + var attribute = new TestFixtureAttribute(arg) + { + TypeArgs = new[] + { + typeof(TScriptableEvent), + typeof(TScriptableEventListener), + typeof(TUnityEvent), + arg.GetType() + } + }; + + return new TestFixtureParameters(attribute); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs.meta new file mode 100644 index 0000000..52c34a1 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/ScriptableEventTestSource.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d9d62e2b5a72460483706b5b707a7de4 +timeCreated: 1611419836 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs b/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs new file mode 100644 index 0000000..97a9242 --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using System.Linq; +using NUnit.Framework; +using ScriptableEvents.Simple; +using UnityEngine; + +namespace ScriptableEvents.Tests +{ + [TestFixture] + public class SimpleScriptableEventTest + { + // Requires additional test case as SimpleScriptableEvent introduces a new method. + [Test] + public void ShouldRaiseEventWithoutArgument() + { + var capturedArgs = new List(); + var mockScriptableEventListener = new MockScriptableEventListener + { + Action = capturedArgs.Add + }; + + var simpleScriptableEvent = ScriptableObject.CreateInstance(); + simpleScriptableEvent.Add(mockScriptableEventListener); + + simpleScriptableEvent.Raise(); + + Assert.AreEqual(1, capturedArgs.Count); + Assert.AreEqual(SimpleArg.Instance, capturedArgs.First()); + } + } +} diff --git a/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs.meta b/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs.meta new file mode 100644 index 0000000..44883dd --- /dev/null +++ b/Packages/com.chark.scriptable-events/Tests/Runtime/SimpleScriptableEventTest.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0de27fa351484c83ad39fcd1c746e3ce +timeCreated: 1611441400 \ No newline at end of file diff --git a/Packages/com.chark.scriptable-events/package.json b/Packages/com.chark.scriptable-events/package.json new file mode 100644 index 0000000..5f674e2 --- /dev/null +++ b/Packages/com.chark.scriptable-events/package.json @@ -0,0 +1,35 @@ +{ + "name": "com.chark.scriptable-events", + "displayName": "Scriptable Events", + "author": { + "name": "CHARK", + "url": "https://chark.io" + }, + "version": "1.0.0", + "unity": "2019.4", + "description": "Simple and extensible event system implemented via ScriptableObject.", + "keywords": [ + "event", + "listener", + "scriptableobject", + "unity", + "architecture" + ], + "samples": [ + { + "displayName": "Simple Events", + "description": "Shows how to use events without passing any arguments.", + "path": "Samples~/SimpleEvents" + }, + { + "displayName": "Events With Arguments", + "description": "Shows how to use events with arguments.", + "path": "Samples~/EventsWithArguments" + }, + { + "displayName": "Custom Events", + "description": "Shows how to create custom events, editors and pass custom data via events.", + "path": "Samples~/CustomEvents" + } + ] +} diff --git a/Assets/package.json.meta b/Packages/com.chark.scriptable-events/package.json.meta similarity index 100% rename from Assets/package.json.meta rename to Packages/com.chark.scriptable-events/package.json.meta diff --git a/Packages/manifest.json b/Packages/manifest.json index 3819415..ddd1fdf 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,9 +1,9 @@ { "dependencies": { "com.unity.ide.rider": "1.1.4", - "com.unity.ide.vscode": "1.2.1", - "com.unity.render-pipelines.universal": "7.3.1", - "com.unity.test-framework": "1.1.16", + "com.unity.ide.vscode": "1.2.3", + "com.unity.package-validation-suite": "0.19.2-preview", + "com.unity.test-framework": "1.1.20", "com.unity.ugui": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index c70904d..e000a49 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,7 +1,13 @@ { "dependencies": { + "com.chark.scriptable-events": { + "version": "file:com.chark.scriptable-events", + "depth": 0, + "source": "embedded", + "dependencies": {} + }, "com.unity.ext.nunit": { - "version": "1.0.0", + "version": "1.0.6", "depth": 1, "source": "registry", "dependencies": {}, @@ -17,46 +23,36 @@ "url": "https://packages.unity.com" }, "com.unity.ide.vscode": { - "version": "1.2.1", + "version": "1.2.3", "depth": 0, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, - "com.unity.render-pipelines.core": { - "version": "7.3.1", + "com.unity.nuget.mono-cecil": { + "version": "0.1.6-preview.2", "depth": 1, "source": "registry", "dependencies": { - "com.unity.ugui": "1.0.0" + "nuget.mono-cecil": "0.1.6-preview" }, "url": "https://packages.unity.com" }, - "com.unity.render-pipelines.universal": { - "version": "7.3.1", + "com.unity.package-validation-suite": { + "version": "0.19.2-preview", "depth": 0, "source": "registry", "dependencies": { - "com.unity.render-pipelines.core": "7.3.1", - "com.unity.shadergraph": "7.3.1" - }, - "url": "https://packages.unity.com" - }, - "com.unity.shadergraph": { - "version": "7.3.1", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.render-pipelines.core": "7.3.1" + "com.unity.nuget.mono-cecil": "0.1.6-preview.2" }, "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.16", + "version": "1.1.20", "depth": 0, "source": "registry", "dependencies": { - "com.unity.ext.nunit": "1.0.0", + "com.unity.ext.nunit": "1.0.6", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" }, @@ -71,6 +67,13 @@ "com.unity.modules.imgui": "1.0.0" } }, + "nuget.mono-cecil": { + "version": "0.1.6-preview", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.modules.animation": { "version": "1.0.0", "depth": 1, diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 841a23c..7b627d9 100644 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -42,8 +42,7 @@ GraphicsSettings: m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_CustomRenderPipeline: {fileID: 11400000, guid: 4cc95e0ffb4cb5b41a626555d36a9b76, - type: 2} + m_CustomRenderPipeline: {fileID: 0} m_TransparencySortMode: 0 m_TransparencySortAxis: {x: 0, y: 0, z: 1} m_DefaultRenderingPath: 1 diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset index 9418901..6920e3a 100644 --- a/ProjectSettings/PackageManagerSettings.asset +++ b/ProjectSettings/PackageManagerSettings.asset @@ -9,9 +9,9 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 0} + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} m_Name: - m_EditorClassIdentifier: UnityEditor:UnityEditor.PackageManager.UI:PackageManagerProjectSettings + m_EditorClassIdentifier: m_ScopedRegistriesSettingsExpanded: 1 oneTimeWarningShown: 0 m_Registries: diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 0fa50c3..66a5264 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -12,8 +12,8 @@ PlayerSettings: targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 - companyName: chark - productName: com.chark.unity-scriptable-objects + companyName: CHARK + productName: com.chark.scriptable-events defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -124,7 +124,7 @@ PlayerSettings: 16:10: 1 16:9: 1 Others: 1 - bundleVersion: 0.1.0 + bundleVersion: 1.0.0 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index ae9c8eb..d8ee6b5 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2019.4.12f1 -m_EditorVersionWithRevision: 2019.4.12f1 (225e826a680e) +m_EditorVersion: 2019.4.18f1 +m_EditorVersionWithRevision: 2019.4.18f1 (3310a4d4f880) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index 4219f4b..0600089 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -95,7 +95,7 @@ QualitySettings: skinWeights: 2 textureQuality: 0 anisotropicTextures: 1 - antiAliasing: 8 + antiAliasing: 0 softParticles: 0 softVegetation: 1 realtimeReflectionProbes: 1 @@ -114,8 +114,7 @@ QualitySettings: asyncUploadBufferSize: 16 asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0, - type: 2} + customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] m_PerPlatformDefaultQuality: Android: 1 diff --git a/README.md b/README.md deleted file mode 100644 index 2daa55b..0000000 --- a/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# Unity Scriptable Objects -[![Unity 2019.4+](https://img.shields.io/badge/unity-2019.4%2B-blue.svg)](https://unity3d.com/get-unity/download) -[![Actions Status](https://github.com/chark/unity-scriptable-objects/workflows/CI/badge.svg)](https://github.com/chark/unity-scriptable-objects/actions) - -This package provides utilities for implementing game architecture which is oriented around `ScriptableObject` assets and game events. Most of these ideas are based on [Unite2017](https://github.com/roboryantron/Unite2017). - -## Features -- Game events - allows transferring of data between scripts using `ScriptableObject` event assets. -- Game event listeners - listener components which allow subscribing to various events. -- Mutable objects - eases up sharing of mutable data via `ScriptableObject` assets. - -## Installation -This package can be installed by using the [Unity Package Manager]. To install this package, add the following to `manifest.json`: -```json -{ - "dependencies": { - "com.chark.unity-scriptable-objects": "https://github.com/chark/unity-scriptable-objects.git#upm" - } -} -``` - -## Samples -Example usage of game events and mutable objects can be found in [Assets/Samples](Assets/Samples) directory. These samples can also be imported via [Unity Package Manager]. - -## Documentation - -### Game events -

- Example usage of Game Event assets - Example of a setup Game Event Listener component -

- -Game events are scriptable objects (_Right Click -> Create -> Game Events -> ..._) which can be subscribed to via listener components (_Add Component -> Game Events -> ..._). Events allow to decouple scripts and instead rely on intermediate `ScriptableObject` assets for communication. - -Available game events: -- `GameEvent` - simple event which doesn't accept any arguments. -- `BoolGameEvent` - event with a `bool` argument. -- `IntGameEvent` - event with an `int` argument. -- `FloatGameEvent` - event with a `float` argument. -- `StringGameEvent` - event with a `string` argument. -- `Vector2GameEvent` - event with a `Vector2` argument. -- `Vector3GameEvent` - event with a `Vector3` argument. -- `TransformGameEvent` - event with a `Transform` argument. -- `GameObjectGameEvent` - event with a `GameObject` argument. - -### Mutable objects -Example usage of Mutable Objects - -Mutable objects are used for storing and editing data on `ScriptableObject` assets at runtime. This data can be referenced, observed and used as a bridge by various scripts. Mutable objects are useful in situations where `ScriptableObject` data needs to be reset when the [active scene changes](https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-activeSceneChanged.html). - -Available mutable objects: -- `MutableBool` - encapsulates a `bool` value. -- `MutableInt` - encapsulates an `int` value. -- `MutableFloat` - encapsulates a `float` value. -- `MutableString` - encapsulates a `string` value. -- `MutableVector2` - encapsulates a `Vector2` value. -- `MutableVector3` - encapsulates a `Vector3` value. - -Each mutable object has a `ResetType` property. This allows specifying when data in the mutable object should be reset. The following modes are available: -- `None` - do not reset (default). -- `ActiveSceneChange` - when the active (focused) scene changes. -- `SceneUnloaded` - when the current scene gets unloaded. -- `SceneLoaded` - when the scene is loaded. - -### Custom game events -In some situations, built-in game events might not suffice. For example if a custom type needs to be passed as an argument to the event. In this case, a custom game event can be created which would carry all the necessary data. - -To create a custom game event, first create a regular `UnityEvent`: -```cs -[Serializable] -public class CustomEvent : UnityEvent -{ -} -``` - -After that is ready, create a game event by extending `GameEvents.Generic.ArgumentGameEvent`: -```cs -[CreateAssetMenu(fileName = "CustomEvent", menuName = "Game Events/Custom Event")] -public class CustomGameEvent : ArgumentGameEvent -{ -} -``` - -Finally, create a game event listener by extending `GameEvents.Generic.ArgumentGameEventListener`: -```cs -[AddComponentMenu("Game Events/Custom Game Event Listener")] -public class CustomGameEventListener : ArgumentGameEventListener -{ -} -``` - -, add a custom editor so that the event could be raised, and the listeners which reference the event get displayed in the inspector. -```cs -[CustomEditor(typeof(CustomGameEvent))] -public class GameObjectGameEventEditor : ArgumentGameEventEditor -{ - protected override Custom DrawArgumentField(Custom value) - { - var fieldValue = EditorGUILayout - .ObjectField(value, typeof(Custom), true); - - return fieldValue as Custom; - } -} -``` - -### Custom mutable objects -In some cases, littering the script code with loads of `MutableObject` references can be inconvenient. To avoid this, a single object can be used which encompasses multiple fields. - -To create a custom mutable object, extend `MutableObjects.Generic.MutableObject` and override `ResetValues()` method, e.g: -```cs -[CreateAssetMenu(fileName = "MutableCustom", menuName = "Mutable Objects/Mutable Custom")] -public class MutableCustom : MutableObject -{ - [SerializeField] - private int health = default; - - [SerializeField] - private int armor = default; - - [SerializeField] - private int xp = default; - - public int Health { get; set; } - - public int Armor { get; set; } - - public int Xp { get; set; } - - // This will set property values when mutable object is enabled or if the values change in the - // inspector. - public override void ResetValues() - { - Health = health; - Armor = armor; - Xp = xp; - } -} -``` - -[Unity Package Manager]: https://docs.unity3d.com/Packages/com.unity.package-manager-ui@2.0/manual/index.html