diff --git a/Assets/Cinema Director/ChangeLog.txt b/Assets/Cinema Director/ChangeLog.txt new file mode 100644 index 0000000..54dbf8a --- /dev/null +++ b/Assets/Cinema Director/ChangeLog.txt @@ -0,0 +1,229 @@ +v1.4.6.2 +============= +Bug Fix: (Unity 2017.2) More curve fixes. + +v1.4.6.1 +============= +Bug Fix: (Unity 2017.2) Additional fixes for issue with rotation curves. + +v1.4.6.0 +============= +Bug Fix: (Unity 2017.2) Fixes for issue with rotation curves that prevented having keyframes go beyond 360 degrees. +Bug Fix: Updated code for Unity 2017. +Added: Updated our 3rd Party support for Cinemachine 2. +Added: User-submitted Crossfade event, found under the Third Party folder. + +v1.4.5.4 +============= +Bug Fix: Fixed issue where using the 'Snap Scrubber' when not in preview mode would cause your actor's initial state to be altered to the state at the time you snapped to, causes them to revert to this state after leaving Preview Mode instead of reverting back to their state before the cutscene. +Bug Fix: Fixed issue with the Skip cutscene logic. +Bug Fix: The changes made in our Unity 5.5 version of Director are now included in our regular versions (4.6.1 & 5.0.4), and should only load when necessary. This means we don't need a 5.5 specific upload for these changes. + +v1.4.5.3 +============= +Bug Fix: Fixed issue where some .DLLs would interfere and break the Director window. Now also prints a debug message telling the user which .DLL is causing the issue. +Bug Fix: Fixed a styling issue in Unity 5.5 caused by the renaming of an internal editor style. +Bug Fix: Missed some resource loading calls for our GUI. +Bug Fix: Fixed issue where clicking the 'Add New Action' button in the Global Item Track's inspector would throw an error. +Bug Fix: Cleaned up various warnings when using various versions of Unity. +Added: A new timeline item the change an object's texture. + +v1.4.5.2 +============= +Added: New folder structure; About window, documentation, and examples are now separate from the core product folders, and can be safetly deleted. +Added: Editor GUI icon images moved to special Unity folder, "Editor Default Resources". Our icons in this folder will automatically no longer be included in your builds. +Added: Additional options to the Director window's create drop-down (Default Cutscene, Empty Cutscene, New Cutscene Trigger) to help get up and running with a few less clicks. +Bug Fix: Cinemachine Integration - Changed the CinemachineShot item to only accept current and future Cinemachine cameras. +Bug Fix: Curve Clip no longer throws errors when right-clicking them if the actor has a missing script attached. +Bug Fix: Updated a few scripts to work with Unity 5.4 + +v1.4.5.1 +============= +Bug Fix: Cinemachine Integration - CinemachineShots should now properly blend. +Bug Fix: The Looping and Skippable checkboxes in the Cutscene Creator should now work. +Bug Fix: Missing GUI icons should no longer freeze Director and have it throw exceptions. +Bug Fix: Some items such as SetPosition should now properly revert. +Added: SetRotation and SetScale timeline actions. +Added: CutsceneStarted event, subscribe to it to call a method when a cutscene starts. + +v1.4.5.0 +============= +Added: Cinemachine Integration. +Added: Can now create RevertInfo objects that call methods with any number of parameters. +Added: Tracks can now be locked. Locked tracks cannot be edited. +Bug Fix: Cutscene items should now properly Trigger/End once, regardless if they are at the start/end of a cutscene, in play/edit mode, or if the cutscene is looped. +Bug Fix: Cutscene items should now properly cache their states before the cutscene is previewed/played, and will now proplery revert to their initial states. +Bug Fix: Curves can now work with integer values. Curves will still display floating point numbers, but will round them before being applied. (X.5 will round to nearest even integer) +Bug Fix: Actor item tracks will now pause any pausable items. +Bug Fix: Cutscenes now play when being built to UWP with master build settings. + +v1.4.4.0 +============= +Added: Events to manipulate uGUI elements. +Added: Custom inspector for the SendMessage event, allowing the user to select the type and value of the parameter they wish to pass to the specified method. +Bug Fix: Fixed issue preventing Cutscenes from being played in UWP. +Bug Fix: Rotation curves no longer create keyframes while scrubbing in preview mode. +Bug Fix: Fixed issue where the "Play Animation" action would not allow for clip length to be trimmed. +Bug Fix: Implemented SetParent event. +Bug Fix: Fixed issue where events would not trigger during consecutive plays of a cutscene if the firetime was set to 0. + +v1.4.3.0 +============= +Added: New help window. +Added: link.xml file to help with builds for iOS. +Fixed: Bug where demo scene was sometime crashing due to revert info problems. +Fixed: Bug in Unity 5.3 where Cutscene could no longer find parents in hierarchy. This temporary fix means the Cutscene hierarchy must be strictly followed. + +v1.4.2.1 +============= +Cutscene will take the necessary time to initialize (if not called beforehand) on Play, before beginning playback. This helps avoid some lag at the beginning of playback. +When editing curves, changes take effect immediately on target actor, instead of waiting for mouse-up. +Fixed bug where "Add Key" option was no longer working. +Can now build to NETFX_CORE. +Load Level Event now has options for additive, async, additive+async and to load by index or name. + +v1.4.1.0 +============= +Track Groups and Tracks' collapsed state is maintained between sessions. +Fixed bug where Unity 4.6 users couldn't open demo scene. +Fixed one scenario where CharacterTrackGroup was causing Unity to crash. +Added Settings Window. +Added ability to toggle Beta Features in settings panel. Users who wish to try out new features at the risk of loss of stability can opt to enable them. + +v1.4.0.6 +============= +Playmaker integration. +NodeCanvas integration. +Sidebar can now be re-sized. +Game Objects can now be dragged from the Hierarchy panel into the Director panel to create an Actor Track Group. +Track Groups and Tracks can now be renamed/duplicated/deleted in the Director panel by context clicking label. +Shift/Ctrl select now multi-selects items in sidebar. +Added box-select in working area for timeline items. +Ctrl-select now toggles timeline item selection. +Added the ability to move multiple selected timeline items. +Context clicking in an empty track space now presents Add menu and newly created items are added at that time. +Fixed bug where Cutscene sometimes didn't start from time 0. +Added option to open the Director panel from Cutscene's inspector, focusing the selected Cutscene. +Double-clicking a Curve Clip toggles it between edit mode and done. + +v1.3.4.0 +============= +Scroll wheel now controls vertical scroll. Ctrl+scroll now controls zoom (Can also zoom with alt+right click+mouse move). +Updated Resources folder to stop conflicts with other extensions, by adding Director_ prefix to most assets. +Added TransformLookAtAction. +Made Cutscene.state non-serialized. + +v1.3.3.1 +============= +Quick Fix: Cutscene drop down selector now correlates to the proper cutscene. + +v1.3.3.0 +============= +Solved issue where edit-mode playback speed was slower than real time. +Fixed fade to black transitions for Unity5. +Fixed problem where audio playback wasn't exact in preview mode. +Fixed issue in Unity5 where error was shown for setting incorrect audio time values. +Cutscenes in dropdown selector are now shown alphabetically. +Added Transform Track for Character Track Groups. +Curve Editor: Tangent Mode is now maintained through sessions. +Curve Editor: When Keyframes are alered/deleted/added, neighbours are updated according to tangent mode automatically. +Curve Editor: Changing tangent mode can now be undone. +Curve Editor: Automatic Keyframing can now be undone. +Curve Editor: Fixed undo not working in some cases. +Curve Editor: Master keys can now be used to delete all children keys. +Curve Editor: The threshold for altering auto key values has now been changed to 0.000001 + +v1.3.2.0 +============= +Support for Behavior Designer. +Added timecode to toolbar. +GC Alloc for the Cutscene behaviour is now 0. +Fixed issue where scrubber wouldn't work after exiting playmode in Unity5. +Audio items now adapt when audio clips are changed in the AudioSource component. +Fixed error when prefab cutscenes are added to the scene. +Fixed error where editing curve items was not possible when the Actor for the track group was not set. + +v1.3.1.1 +============= +Unity 5 Compatability. +Current selected Cutscene in Director panel is maintained between playmode changes. + +v1.3.0.4 +============= +New Character Track Group, made specifically for Humanoid characters. +New Mecanim Track for controlling AnimationControllers and allowing mecanim animation previewing in Edit Mode. +New Dialogue Track for Character Track Groups. +All events/actions that manipulate scene data now have Revert options for both editor and runtime mode. +Manually skipping/jumping to frames now handles cases where multiple tracks reference the same data. +Cutscene.Optimize() is a new method that should be called during scene load, to cache all cutscene components for fast execution. +Cutscene.Skip() implemented. CutsceneTrigger now has an option for Skipping. Default to "Jump" (Space bar by default). +Cutscene can now be set to loop. Make sure to setup the ability to skip! +New selector button on Director toolbar to quickly select current Cutscene. +New refresh button, to re-bake all Mecanim previews. +Keyframe tangent handles now look different than Keyframes. +The 'Create' button now looks up any custom made Track Group and adds it to the list. +The play button in the toolbar now works when in runtime as a method to trigger the Cutscene to play. + +Added DirectorRuntimeHelper.cs, a helper class for determining which tracks and track items belong to their proper parents. +Added TimelineTrackAttribute, attribute for tracks to define which track group it belongs to and what type of track items it can hold. +Added TrackGroupAttribute, an attribute for track groups to define which types of tracks it can hold +Added RevertInfo.cs, used to capture state data of any item manipulated by the Cutscene. +Added IBakeable, to be implemented in any track/item that needs to be baked and used for previewing. +Added IOptimizable, to be implemented in any track/item that needs to perform some optimization process on Cutscene load. +Added IRevertable, to be implemented in any track/item that manipulates scene data. +Added IActorTrack.cs, to be implemented by any extended track that manipulates an Actor. +Added IMultiActorTrack.cs, to be implemented by any extended track that manipulates multiple actors. +Added GenericTrackGroupControl.cs, as an implementation with basic features for a track group control. +Added CharacterTrackGroupControl.cs for character track groups. +Added GenericTrackControl.cs as an implementation with basic features for track controls (copy/paste/etc). +Added DialogueTrackControl.cs for dialogue tracks. +Added DialogueTrackInspector.cs +Added CutsceneControlHelper.cs, as a helper class for Cutscene Controls. +Added new method SetDefaults() to TimelineItem.cs, override to set defaults to newly created items. +Deleted ActorTrack.cs. No longer necessary with TrackAttributes. +Deleted GlobalTrack.cs. No longer necessary with TrackAttributes. +All existing CutsceneItems have been given a CutsceneItemGenre. +All existing Cutscene Items that manipulate data now implement IRevertable. +All existing Track Group Controls now inherit from GenericTrackGroupControl. +All existing Track Controls now inherit from GenericTrackControl. +Added new property EndTime to TimelineAction.cs +Fixed issue where audio item control sometimes doesn't show wave form. +CutsceneItemFactory now creates Cutscene Items generically. +Renamed SetColorLight class name to match filename. +Timeline Items no longer need to be a direct child of a Track in the hierarchy, but can be further down in the hierarchy. +Tracks no longer need to be a direct child of a TrackGroup in the hierarchy, but can be further down in the hierarchy. + +Suggestions for people with Custom extensions: +Custom Cutscene Items should now be given a CutsceneItemGenre in their CutsceneItemAttributes to be assigned to tracks. +Custom Cutscene Item should override SetDefaults() which is called when a new instance is created. +Custom Cutscene Items that manipulate scene data should implement the IRevertable interface. +Custom TrackGroupControls should consider extending from GenericTrackGroupControl. +Custom TrackControls shoulder consider extending from GenericTrackControl. +Custom Tracks and TrackGroups shoulder consider implementing IOptimizable and caching children data. + + + +v1.2.1.2 +============= +Fixed bug Unity Free users were experiencing with editing Curve Clips. + +v1.2.1.1. +============= +Fancy new ReadMe.txt file! +Exciting new Help panel! +Timeline library for manipulating other Cutscenes. +Fixed bug where undesired keyframes were being added. +Fixed bug where you could select non-visible keyframes. +Fixed bug where Actors animated through curve clips sometimes return to Origin unexpectedly. +Fixed "Enable/Disable Behaviour" to work for any Component that has an "enabled" property. + +v1.2.0.0. +============= +Copy and Paste for track items. +Cutscene.Play() to be implemented as co-routine. +Cutscene API improved with callback events. +Tick marks in Time Ruler flicker black/white when camera preview is shown. +Multi-Actor curve clips were attempting to assign values to properties which were not defined in inspector causing exceptions. +In director panel, track headers are not indented to the right of parents. +Timeline Items don't trigger on first/last frame of cutscene. +"Mass Disable" doesn't turn tagged objects back on. \ No newline at end of file diff --git a/Assets/Cinema Director/ChangeLog.txt.meta b/Assets/Cinema Director/ChangeLog.txt.meta new file mode 100644 index 0000000..5d3c1fd --- /dev/null +++ b/Assets/Cinema Director/ChangeLog.txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f844faee935154e47b81b9f2f6005977 +TextScriptImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items.meta b/Assets/Cinema Director/Cutscene Items.meta new file mode 100644 index 0000000..b2205fc --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 26bbd23b0c1c9004e9088dbff58e90fc +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items.meta b/Assets/Cinema Director/Cutscene Items/Actor Items.meta new file mode 100644 index 0000000..d2010cf --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a58895460d2a43a458de9e8077c51765 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation.meta new file mode 100644 index 0000000..1f63600 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: b3a48675b86e5d1458b6ec177d2eb77c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs new file mode 100644 index 0000000..d24c19c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Blend Animation", CutsceneItemGenre.ActorItem)] + public class BlendAnimationEvent : CinemaActorEvent + { + public string Animation = string.Empty; + public float TargetWeight = 1f; + public float FadeLength = 0.3f; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Animation animation = actor.GetComponent(); + if (!animation) + { + return; + } + + animation.Blend(Animation, TargetWeight, FadeLength); + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs.meta new file mode 100644 index 0000000..cbacfd7 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/BlendAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f3c5183c6865704888dcc42bf7cfc4a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs new file mode 100644 index 0000000..8351bb6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Cross Fade Animation", CutsceneItemGenre.ActorItem)] + public class CrossFadeAnimationEvent : CinemaActorEvent + { + public string Animation = string.Empty; + public float TargetWeight = 1f; + public PlayMode PlayMode = PlayMode.StopSameLayer; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Animation animation = actor.GetComponent(); + if (!animation) + { + return; + } + + animation.CrossFade(Animation, TargetWeight, PlayMode); + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs.meta new file mode 100644 index 0000000..e9edc22 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/CrossFadeAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d694a8b76bf1bdb4d9bb85dc9f0a283a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs new file mode 100644 index 0000000..aeee8a9 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Play Animation", CutsceneItemGenre.ActorItem)] + public class PlayAnimationEvent : CinemaActorAction + { + public AnimationClip animationClip = null; + + public WrapMode wrapMode; + + public void Update() + { + if (wrapMode != WrapMode.Loop && animationClip) + base.Duration = animationClip.length; + } + + public override void Trigger(GameObject Actor) + { + Animation animation = Actor.GetComponent(); + if (!animationClip || !animation) + { + return; + } + + animation.wrapMode = wrapMode; + //animation.Play(animationClip.name); + } + + public override void UpdateTime(GameObject Actor, float runningTime, float deltaTime) + { + Animation animation = Actor.GetComponent(); + + if (!animation || animationClip == null) + { + return; + } + + if (animation[animationClip.name] == null) + { + animation.AddClip(animationClip, animationClip.name); + } + + AnimationState state = animation[animationClip.name]; + + if (!animation.IsPlaying(animationClip.name)) + { + animation.wrapMode = wrapMode; + animation.Play(animationClip.name); + } + + state.time = runningTime; + state.enabled = true; + animation.Sample(); + state.enabled = false; + } + + public override void End(GameObject Actor) + { + Animation animation = Actor.GetComponent(); + if (animation) + animation.Stop(); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs.meta new file mode 100644 index 0000000..2c0eec9 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/PlayAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68e1ae1c496bc0b4d86051ae0f8a22b3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs new file mode 100644 index 0000000..cbf7823 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Audio; + +public class ReloadLevelStart : MonoBehaviour +{ + + public AudioMixer masterMixer; + + // Start is called before the first frame update + void Start() + { + + + masterMixer.SetFloat("masterVol", 0); + + Application.LoadLevel(1); + } + + +} diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs.meta new file mode 100644 index 0000000..c755ff5 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/ReloadLevelStart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 97b313339f311584996cffa05b5f1051 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs new file mode 100644 index 0000000..ad6f358 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Rewind Animation", CutsceneItemGenre.ActorItem)] + public class RewindAnimationEvent : CinemaActorEvent + { + public string Animation = string.Empty; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Animation animation = actor.GetComponent(); + if (!animation) + { + return; + } + + animation.Rewind(Animation); + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs.meta new file mode 100644 index 0000000..0e86bd8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/RewindAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6e50d9ad3413b446be3a89a81f3e981 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs new file mode 100644 index 0000000..a9fea1c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Sample Animation", CutsceneItemGenre.ActorItem)] + public class SampleAnimationEvent : CinemaActorEvent + { + public string Animation = string.Empty; + public float Time = 0f; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Animation animation = actor.GetComponent(); + if (!animation) + { + return; + } + + animation[Animation].time = Time; + animation[Animation].enabled = true; + animation.Sample(); + animation[Animation].enabled = false; + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs.meta new file mode 100644 index 0000000..22d5ad4 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/SampleAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b7e5cf5bb9bac949a553537e6242ccb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs new file mode 100644 index 0000000..1b9be70 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animation", "Stop Animation", CutsceneItemGenre.ActorItem)] + public class StopAnimationEvent : CinemaActorEvent + { + public string Animation = string.Empty; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Animation animation = actor.GetComponent(); + if (!animation) + { + return; + } + + animation.Stop(Animation); + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs.meta new file mode 100644 index 0000000..4346c4f --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animation/StopAnimationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4262f74c2654f74c96e1f7f5bdfd514 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator.meta new file mode 100644 index 0000000..0bac761 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e3a26f05c7c9ce44290196673ca45b5e +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs new file mode 100644 index 0000000..35c968d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs @@ -0,0 +1,25 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Cross Fade Animator", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class CrossFadeAnimatorEvent : CinemaActorEvent + { + public string AnimationStateName = string.Empty; + public float TransitionDuration = 1f; + public int Layer = -1; + float NormalizedTime = float.NegativeInfinity; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.CrossFade(AnimationStateName, TransitionDuration, Layer, NormalizedTime); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs.meta new file mode 100644 index 0000000..b586461 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/CrossFadeAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eac17bef6b45d5643947c61fccec8257 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs new file mode 100644 index 0000000..014bca4 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Look At Target", CutsceneItemGenre.ActorItem)] + public class LookAtTarget : CinemaActorAction + { + public Transform LookAtPosition; + + public float Weight; + public float BodyWeight = 0f; + public float HeadWeight = 1f; + public float EyesWeight = 0f; + public float ClampWeight = 0.5f; + + public override void Trigger(GameObject Actor) + { + Animator animator = Actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetLookAtPosition(LookAtPosition.position); + } + + + public override void UpdateTime(GameObject Actor, float runningTime, float deltaTime) + { + Animator animator = Actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetLookAtPosition(LookAtPosition.position); + animator.SetLookAtWeight(Weight, BodyWeight, HeadWeight, EyesWeight, ClampWeight); + } + + public override void End(GameObject Actor) + { + Animator animator = Actor.GetComponent(); + if (animator) + { + animator.SetLookAtWeight(0); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs.meta new file mode 100644 index 0000000..e3d3800 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/LookAtTarget.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4d689de1a1ecfe4b8af215becc4a44e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs new file mode 100644 index 0000000..e694a2f --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs @@ -0,0 +1,27 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Match Target",CutsceneItemGenre.MecanimItem)] + public class MatchTargetEvent : CinemaActorEvent + { + public GameObject target; + public AvatarTarget avatarTarget; + public float startTime; + public float targetTime; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + MatchTargetWeightMask weightMask = new MatchTargetWeightMask(Vector3.one, 0); + animator.MatchTarget(target.transform.position, target.transform.rotation, avatarTarget, weightMask, startTime, targetTime); + + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs.meta new file mode 100644 index 0000000..518b0a9 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/MatchTargetEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ff346f0a50707ac4c891c3f186d4758c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs new file mode 100644 index 0000000..fdfea9b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Play Mecanim Animation", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class PlayAnimatorEvent : CinemaActorEvent + { + public string StateName; + public int Layer = -1; + float Normalizedtime = float.NegativeInfinity; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.Play(StateName, Layer, Normalizedtime); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs.meta new file mode 100644 index 0000000..5f43723 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/PlayAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3683488bb6fdb6c4f9184179af5faaab +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs new file mode 100644 index 0000000..2a7f473 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs @@ -0,0 +1,21 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Bool", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetBoolAnimatorEvent : CinemaActorEvent + { + public string BoolName; + public bool Value = false; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator != null) + { + animator.SetBool(BoolName, Value); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs.meta new file mode 100644 index 0000000..1edade9 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetBoolAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ba55441d5ac24242a78750cf55eb17f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs new file mode 100644 index 0000000..58e745b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Float", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetFloatAnimatorEvent : CinemaActorEvent + { + public string FloatName; + public float Value = 0f; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetFloat(FloatName, Value); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs.meta new file mode 100644 index 0000000..9dee23e --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetFloatAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50ba73e02cee270489e2d9c85cd9ca4f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs new file mode 100644 index 0000000..04a7b73 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set IK Position", CutsceneItemGenre.ActorItem)] + public class SetIKPositionAnimatorEvent : CinemaActorEvent + { + public AvatarIKGoal Goal; + public Vector3 GoalPosition; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetIKPosition(Goal, GoalPosition); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs.meta new file mode 100644 index 0000000..a1dea8d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7cb6b8221c1b61545971b5f94203d89e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs new file mode 100644 index 0000000..d926d14 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set IK Position Weight", CutsceneItemGenre.ActorItem)] + public class SetIKPositionWeightAnimatorEvent : CinemaActorEvent + { + public AvatarIKGoal Goal; + public float Value; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetIKPositionWeight(Goal, Value); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs.meta new file mode 100644 index 0000000..17819c2 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKPositionWeightAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7e826a7a32b5264d8bf544882d9a49f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs new file mode 100644 index 0000000..22761dd --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set IK Rotation", CutsceneItemGenre.ActorItem)] + public class SetIKRotationAnimatorEvent : CinemaActorEvent + { + public AvatarIKGoal Goal; + public Quaternion GoalRotation; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetIKRotation(Goal, GoalRotation); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs.meta new file mode 100644 index 0000000..cd4a0c8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0e170bc7aafcbbb4d8bb573276eb0a4f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs new file mode 100644 index 0000000..114560b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set IK Rotation Weight", CutsceneItemGenre.ActorItem)] + public class SetIKRotationWeightAnimatorEvent : CinemaActorEvent + { + public AvatarIKGoal Goal; + public float Value; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetIKRotationWeight(Goal, Value); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs.meta new file mode 100644 index 0000000..2e669df --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIKRotationWeightAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b7ade7af9e0a0f4ea1d622472408879 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs new file mode 100644 index 0000000..6092111 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Integer", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetIntegerAnimatorEvent : CinemaActorEvent + { + public string IntName; + public int Value = 0; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetInteger(IntName, Value); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs.meta new file mode 100644 index 0000000..2256bbd --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetIntegerAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 408a9e082a395b948b3cac6e991ae341 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs new file mode 100644 index 0000000..d2d0d5a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Layer Weight", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetLayerWeightAnimatorEvent : CinemaActorEvent + { + public int LayerIndex; + public float Weight = 0f; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetLayerWeight(LayerIndex, Weight); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs.meta new file mode 100644 index 0000000..09a1e77 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLayerWeightAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00caaf5aeea0bc045936a059b817d778 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs new file mode 100644 index 0000000..f874efb --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs @@ -0,0 +1,22 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Look At Position", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetLookAtPositionAnimatorEvent : CinemaActorEvent + { + public Transform LookAtPosition; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetLookAtPosition(LookAtPosition.position); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs.meta new file mode 100644 index 0000000..6b112f4 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtPositionAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b90bac225ed7c2340a7d0911569d5018 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs new file mode 100644 index 0000000..8d5f8fb --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs @@ -0,0 +1,26 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Look At Weight", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetLookAtWeightAnimatorEvent : CinemaActorEvent + { + public float Weight; + public float BodyWeight = 0f; + public float HeadWeight = 1f; + public float EyesWeight = 0f; + public float ClampWeight = 0.5f; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetLookAtWeight(Weight, BodyWeight, HeadWeight, EyesWeight, ClampWeight); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs.meta new file mode 100644 index 0000000..ea524e8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetLookAtWeightAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7ff3238f7db62843849f479828f2faa +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs new file mode 100644 index 0000000..b6b30b0 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Target", CutsceneItemGenre.ActorItem)] + public class SetTargetAnimatorEvent : CinemaActorEvent + { + public AvatarTarget TargetIndex; + public float TargetNormalizedTime; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetTarget(TargetIndex, TargetNormalizedTime); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs.meta new file mode 100644 index 0000000..da9bc09 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTargetAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 025b25e38a6c7a1409b3a79854e1987e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs new file mode 100644 index 0000000..f320dbf --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs @@ -0,0 +1,22 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Animator", "Set Trigger", CutsceneItemGenre.ActorItem, CutsceneItemGenre.MecanimItem)] + public class SetTriggerAnimatorEvent : CinemaActorEvent + { + public string Name; + + public override void Trigger(GameObject actor) + { + Animator animator = actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.SetTrigger(Name); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs.meta new file mode 100644 index 0000000..f427425 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Animator/SetTriggerAnimatorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cf3feabd4a1df584ea17f311e94e2a2e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource.meta new file mode 100644 index 0000000..8a94840 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d4cb51eb32b63d640a179d1f0486206a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs new file mode 100644 index 0000000..5fdd808 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; +namespace CinemaDirector +{ + [CutsceneItemAttribute("Audio Source", "Pause Audio", CutsceneItemGenre.ActorItem)] + public class PauseAudioEvent : CinemaActorEvent + { + public override void Trigger(GameObject actor) + { + if (actor != null) + { + AudioSource audio = actor.GetComponent(); + if (!audio) + { + return; + } + + audio.Pause(); + } + } + + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs.meta new file mode 100644 index 0000000..1a019a0 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PauseAudioEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07200f278b47f704abf8a0f10ae29519 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs new file mode 100644 index 0000000..e7feb2c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs @@ -0,0 +1,94 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Audio Source", "Play Audio", CutsceneItemGenre.ActorItem)] + public class PlayAudioEvent : CinemaActorAction + { + public AudioClip audioClip = null; + public bool loop = false; + + private bool wasPlaying = false; + + public void Update() + { + if (!loop && audioClip) + Duration = audioClip.length; + else + Duration = -1; + } + + public override void Trigger(GameObject Actor) + { + AudioSource audio = Actor.GetComponent(); + if (!audio) + { + audio = Actor.AddComponent(); + audio.playOnAwake = false; + } + + if (audio.clip != audioClip) + audio.clip = audioClip; + + audio.time = 0.0f; + audio.loop = loop; + audio.Play(); + } + + public override void UpdateTime(GameObject Actor, float runningTime, float deltaTime) + { + AudioSource audio = Actor.GetComponent(); + if (!audio) + { + audio = Actor.AddComponent(); + audio.playOnAwake = false; + } + + if (audio.clip != audioClip) + audio.clip = audioClip; + + if (audio.isPlaying) + return; + + audio.time = deltaTime; + + + audio.Play(); + + } + + public override void Resume(GameObject Actor) + { + AudioSource audio = Actor.GetComponent(); + if (!audio) + return; + + audio.time = Cutscene.RunningTime - Firetime; + + if (wasPlaying) + audio.Play(); + } + + public override void Pause(GameObject Actor) + { + AudioSource audio = Actor.GetComponent(); + + wasPlaying = false; + if (audio && audio.isPlaying) + wasPlaying = true; + + if (audio) + audio.Pause(); + } + + public override void End(GameObject Actor) + { + AudioSource audio = Actor.GetComponent(); + if (audio) + audio.Stop(); + } + + } + +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs.meta new file mode 100644 index 0000000..f58cdea --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayAudioEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7325078cc186f574684607acb59901e1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs new file mode 100644 index 0000000..ca04b4b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs @@ -0,0 +1,28 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Audio Source", "Play One Shot", CutsceneItemGenre.ActorItem)] + public class PlayOneShotAudioEvent : CinemaActorEvent + { + public AudioClip Clip; + public float VolumeScale = 1f; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + AudioSource audio = actor.GetComponent(); + if (!audio) + { + return; + } + + audio.PlayOneShot(Clip, VolumeScale); + } + } + + } + +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs.meta new file mode 100644 index 0000000..f54716f --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/PlayOneShotAudioEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2630293c17e32d146836819265374047 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs new file mode 100644 index 0000000..fdc6015 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Audio Source", "Stop Audio", CutsceneItemGenre.ActorItem)] + public class StopAudioEvent : CinemaActorEvent + { + public override void Trigger(GameObject actor) + { + if (actor != null) + { + AudioSource audio = actor.GetComponent(); + if (!audio) + { + return; + } + + audio.Stop(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs.meta new file mode 100644 index 0000000..25668ee --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/AudioSource/StopAudioEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d320cdb68d39e14893bd6371a680a57 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject.meta new file mode 100644 index 0000000..d4c3bb6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: aebb5a7d4b22fad4998602a33e901775 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs new file mode 100644 index 0000000..d3ce4db --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs @@ -0,0 +1,70 @@ +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An Event for disabling any behaviour that has an "enabled" property. + /// + [CutsceneItemAttribute("Game Object", "Disable Behaviour", CutsceneItemGenre.ActorItem)] + public class DisableBehaviour : CinemaActorEvent + { + public Component Behaviour; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Trigger this event and Disable the chosen Behaviour. + /// + /// The actor to perform the behaviour disable on. + public override void Trigger(GameObject actor) + { + Component b = actor.GetComponent(Behaviour.GetType()) as Component; + if (b != null) + { + Behaviour.GetType().GetMember("enabled"); + + PropertyInfo fieldInfo = Behaviour.GetType().GetProperty("enabled"); + fieldInfo.SetValue(Behaviour, false, null); + } + } + + /// + /// Reverse trigger this event and Enable the chosen Behaviour. + /// + /// The actor to perform the behaviour enable on. + public override void Reverse(GameObject actor) + { + Component b = actor.GetComponent(Behaviour.GetType()) as Component; + if (b != null) + { + PropertyInfo fieldInfo = Behaviour.GetType().GetProperty("enabled"); + fieldInfo.SetValue(b, true, null); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs.meta new file mode 100644 index 0000000..0e9d6d6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableBehaviour.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aacd68dc9407b5f49ae49ac4a45267f8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs new file mode 100644 index 0000000..86aade1 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs @@ -0,0 +1,82 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An Actor event for disabling the Actor + /// + [CutsceneItemAttribute("Game Object", "Disable", CutsceneItemGenre.ActorItem)] + public class DisableGameObject : CinemaActorEvent, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + reverts.Add(new RevertInfo(this, go.gameObject, "SetActive", go.gameObject.activeSelf)); + } + } + + return reverts.ToArray(); + } + + /// + /// Trigger this event and disable the given actor. + /// + /// The actor to be disabled. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.SetActive(false); + } + } + + /// + /// Reverse the event by settings the game object to the previous state. + /// + /// The actor whose active state will be reversed. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + actor.SetActive(true); // ToDo: Implement reversing with cacheing previous state. + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs.meta new file mode 100644 index 0000000..19d88df --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/DisableGameObject.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45a64e88ccdf4ca44b2f4cb2114f88da +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs new file mode 100644 index 0000000..71f4ccd --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs @@ -0,0 +1,99 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An Event for enabling any behaviour that has an "enabled" property. + /// + [CutsceneItemAttribute("Game Object", "Enable Behaviour", CutsceneItemGenre.ActorItem)] + public class EnableBehaviour : CinemaActorEvent, IRevertable + { + // The Component/Behaviour to Enable. + public Component Behaviour; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// All the revert info related to this event. + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + Component b = go.GetComponent(Behaviour.GetType()) as Component; + if (b != null) + { + PropertyInfo pi = Behaviour.GetType().GetProperty("enabled"); + bool value = (bool)pi.GetValue(b, null); + + reverts.Add(new RevertInfo(this, Behaviour, "enabled", value)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Trigger this event and Enable the chosen Behaviour. + /// + /// The actor to perform the behaviour enable on. + public override void Trigger(GameObject actor) + { + Component b = actor.GetComponent(Behaviour.GetType()) as Component; + if (b != null) + { + Behaviour.GetType().GetMember("enabled"); + + PropertyInfo fieldInfo = Behaviour.GetType().GetProperty("enabled"); + fieldInfo.SetValue(Behaviour, true, null); + } + } + + /// + /// Reverse trigger this event and Disable the chosen Behaviour. + /// + /// The actor to perform the behaviour disable on. + public override void Reverse(GameObject actor) + { + Component b = actor.GetComponent(Behaviour.GetType()) as Component; + if (b != null) + { + PropertyInfo fieldInfo = Behaviour.GetType().GetProperty("enabled"); + fieldInfo.SetValue(b, false, null); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs.meta new file mode 100644 index 0000000..6b273ad --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableBehaviour.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 937b9eb698794dd4bba21a2b0979a901 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs new file mode 100644 index 0000000..854dc6d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs @@ -0,0 +1,82 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Enable the Actor related to this event. + /// + [CutsceneItemAttribute("Game Object", "Enable", CutsceneItemGenre.ActorItem)] + public class EnableGameObject : CinemaActorEvent, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// All the revert info related to this event. + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + reverts.Add(new RevertInfo(this, go.gameObject, "SetActive", go.gameObject.activeSelf)); + } + } + + return reverts.ToArray(); + } + + /// + /// Enable the given actor. + /// + /// The actor to be enabled. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.SetActive(true); + } + } + + /// + /// Reverse this triggered event and place the actor back in it's previous state. + /// + /// The actor. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + actor.SetActive(false); // ToDo: Implement reversing with cacheing previous state. + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs.meta new file mode 100644 index 0000000..9f49fb6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObject.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 449468d1ced06564a8786a9426c6fe68 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs new file mode 100644 index 0000000..7f65a42 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs @@ -0,0 +1,114 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Enable the Actor related to this event. + /// + [CutsceneItemAttribute("Game Object", "Temporary Enable", CutsceneItemGenre.ActorItem)] + public class EnableGameObjectAction : CinemaActorAction, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// All the revert info related to this event. + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + reverts.Add(new RevertInfo(this, go.gameObject, "SetActive", go.gameObject.activeSelf)); + } + } + + return reverts.ToArray(); + } + + /// + /// Enable the given actor temporarily. + /// + /// The actor to be enabled. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.SetActive(true); + } + } + + /// + /// End the action and disable the game object. + /// + /// The actor. + public override void End(GameObject actor) + { + if (actor != null) + { + actor.SetActive(false); + } + } + + /// + /// The trigger time has been hit while playing in reverse. disable the action. + /// + /// The actor to disable + public override void ReverseTrigger(GameObject Actor) + { + this.End(Actor); + } + + /// + /// The end time has been hit while playing in reverse. enable the action. + /// + /// The actor to enable + public override void ReverseEnd(GameObject Actor) + { + Trigger(Actor); + } + + /// + /// Set the action to an arbitrary time. + /// + /// The current actor. + /// the running time of the action + /// The deltaTime since the last update call. + public override void SetTime(GameObject actor, float time, float deltaTime) + { + if (actor != null) + { + actor.SetActive(time >= 0 && time < Duration); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs.meta new file mode 100644 index 0000000..dbb42fe --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/EnableGameObjectAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 583d7ed8fdca89a41a2161926b0f9c45 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs new file mode 100644 index 0000000..5c517a1 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An event for calling the game object send message method. + /// Cannot be reversed. + /// + [CutsceneItemAttribute("Game Object", "Send Message", CutsceneItemGenre.ActorItem)] + public class SendMessageGameObject : CinemaActorEvent + { + public string MethodName = string.Empty; + public object Parameter = null; + public SendMessageOptions SendMessageOptions = SendMessageOptions.DontRequireReceiver; + + /// + /// Trigger this event and send the message. + /// + /// the actor to send the message to. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.SendMessage(MethodName, Parameter, SendMessageOptions); + } + } + + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs.meta new file mode 100644 index 0000000..49e2111 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/GameObject/SendMessageGameObject.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc5e0a476ab20344cbe5a6de035967b1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Light.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Light.meta new file mode 100644 index 0000000..e5a14a5 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Light.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 0a8d49f3c481f3841b4b29efb9ea662a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs new file mode 100644 index 0000000..fbec758 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs @@ -0,0 +1,113 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Set the colour of a light component of a given actor. + /// + [CutsceneItemAttribute("Light", "Set Light Colour", CutsceneItemGenre.ActorItem)] + public class SetLightColour : CinemaActorEvent, IRevertable + { + // The new color. + public Color Color; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + private Color previousColor; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null ) + { + Light light = go.GetComponent(); + if (light != null) + { + reverts.Add(new RevertInfo(this, light, "color", light.color)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Initialize and save the original colour state. + /// + /// The actor to initialize the light colour with. + public override void Initialize(GameObject actor) + { + Light light = actor.GetComponent(); + if (light != null) + { + previousColor = light.color; + } + } + + /// + /// Trigger this event and change the Color of a given actor's light component. + /// + /// The actor with the light component to be altered. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Light light = actor.GetComponent(); + if (light != null) + { + previousColor = light.color; + light.color = Color; + } + } + } + + /// + /// Reverse setting the light colour. + /// + /// The actor to reverse the light setting on. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + Light light = actor.GetComponent(); + if (light != null) + { + light.color = previousColor; + } + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs.meta new file mode 100644 index 0000000..3723a5c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetColorLight.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ddfba2783b7e49e4aa0678ffbe4ec4f2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs new file mode 100644 index 0000000..fa18f08 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs @@ -0,0 +1,107 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Set the intensity of a light component of a given actor. + /// + [CutsceneItemAttribute("Light", "Set Intensity", CutsceneItemGenre.ActorItem)] + public class SetIntensityLight : CinemaActorEvent, IRevertable + { + // The new intensity to be set. + public float Intensity; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + private float previousIntensity; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + Light light = go.GetComponent(); + if (light != null) + { + reverts.Add(new RevertInfo(this, light, "intensity", light.intensity)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Initialize and save the original intensity state. + /// + /// The actor to initialize the light intensity with. + public override void Initialize(GameObject actor) + { + Light light = actor.GetComponent(); + if (light != null) + { + previousIntensity = light.intensity; + } + } + + /// + /// Trigger this event and change the intensity of a given actor's light component. + /// + /// The actor with the light component to be altered. + public override void Trigger(GameObject actor) + { + Light light = actor.GetComponent(); + if (light != null) + { + previousIntensity = light.intensity; + light.intensity = Intensity; + } + } + + /// + /// Reverse setting the light intensity. + /// + /// The actor to reverse the light setting on. + public override void Reverse(GameObject actor) + { + Light light = actor.GetComponent(); + if (light != null) + { + light.intensity = previousIntensity; + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs.meta new file mode 100644 index 0000000..37af9ed --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Light/SetIntensityLight.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96e4258c397fddd4d94575eb12818ed0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation.meta new file mode 100644 index 0000000..2994e4c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: ebdb208a3f19b374cafc2e565aad5a5c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs new file mode 100644 index 0000000..803b723 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using UnityEngine.AI; + +namespace CinemaDirector +{ + /// + /// An event for setting a navigation destination. + /// Only executes in runtime. Not reversable. + /// + [CutsceneItemAttribute("Navigation", "Set Destination", CutsceneItemGenre.ActorItem)] + public class SetDestinationEvent : CinemaActorEvent + { + // The destination target + public Vector3 target; + + /// + /// Trigger this event and set a new destination. + /// + /// The actor with a NavMeshAgent to set a new destination for. + public override void Trigger(GameObject actor) + { + NavMeshAgent agent = actor.GetComponent(); + if (agent != null) + { + agent.SetDestination(target); + } + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs.meta new file mode 100644 index 0000000..e44bd95 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Navigation/SetDestinationEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cda6033a0d7d81943b6ed92293d137a5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles.meta new file mode 100644 index 0000000..a07c733 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d87c41905647b4d4694feccd33047391 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs new file mode 100644 index 0000000..08c6ef8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs @@ -0,0 +1,29 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Enable the Actor related to this event. + /// + [CutsceneItemAttribute("Particle System", "Pause", CutsceneItemGenre.ActorItem)] + public class PauseParticleSystemEvent : CinemaActorEvent + { + /// + /// Trigger this event and pause the particle system component. + /// + /// The actor to be triggered. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + ParticleSystem ps = actor.GetComponent(); + if (ps != null) + { + ps.Pause(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs.meta new file mode 100644 index 0000000..63cd177 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PauseParticleSystemEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59f01268b291fe54ca0fea47febbb63c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs new file mode 100644 index 0000000..eb8693a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs @@ -0,0 +1,45 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Enable the Actor related to this event. + /// + [CutsceneItemAttribute("Particle System", "Play", CutsceneItemGenre.ActorItem)] + public class PlayParticleSystemEvent : CinemaActorEvent + { + /// + /// Trigger the particle system to play. + /// + /// The actor to be triggered. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + ParticleSystem ps = actor.GetComponent(); + if (ps != null) + { + ps.Play(); + } + } + } + + /// + /// Reverse this event and stop the particle system. + /// + /// The actor to reverse this event on. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + ParticleSystem ps = actor.GetComponent(); + if (ps != null) + { + ps.Stop(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs.meta new file mode 100644 index 0000000..5365689 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/PlayParticleSystemEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5793536dba5d97047b7a26b997fabae8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs new file mode 100644 index 0000000..a4569b4 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs @@ -0,0 +1,45 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Enable the Actor related to this event. + /// + [CutsceneItemAttribute("Particle System", "Stop", CutsceneItemGenre.ActorItem)] + public class StopParticleSystemEvent : CinemaActorEvent + { + /// + /// Trigger the particle system to stop. + /// + /// The actor to be triggered. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + ParticleSystem ps = actor.GetComponent(); + if (ps != null) + { + ps.Stop(); + } + } + } + + /// + /// Reverse this event and play the particle system. + /// + /// The actor to reverse this event on. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + ParticleSystem ps = actor.GetComponent(); + if (ps != null) + { + ps.Play(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs.meta new file mode 100644 index 0000000..2403674 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Particles/StopParticleSystemEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0fbd9802c0eb8349b0a15120ef98e34 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody.meta new file mode 100644 index 0000000..2d1f7d8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 5072097751c8aa34ab8a4b6be550a7bf +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs new file mode 100644 index 0000000..07aaded --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An Event for applying force to a rigidbody. + /// Can only be triggered in Runtime. + /// + [CutsceneItemAttribute("Physics", "Apply Force", CutsceneItemGenre.ActorItem)] + public class ApplyForceEvent : CinemaActorEvent + { + // The amount of Force. + public Vector3 Force = Vector3.forward; + + // The Force Mode of the add force action. + public ForceMode ForceMode = ForceMode.Impulse; + + /// + /// Trigger this event and Apply force to the RigidBody component of the Actor + /// + /// The Actor of the RigidBody + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Rigidbody affectedObjectRigidBody = actor.GetComponent(); + + if (affectedObjectRigidBody != null) + { + affectedObjectRigidBody.AddForce(Force, ForceMode); + } + } + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs.meta new file mode 100644 index 0000000..eacc67b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyForceEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9df18f58265dc5b4281a9a1c24606b66 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs new file mode 100644 index 0000000..3c14e5d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs @@ -0,0 +1,34 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An Event for applying torque to a rigidbody. + /// Can only be triggered in Runtime. + /// + [CutsceneItemAttribute("Physics", "Apply Torque", CutsceneItemGenre.ActorItem)] + public class ApplyTorqueEvent : CinemaActorEvent + { + // The Torque to be applied + public Vector3 Torque = Vector3.forward; + + // the ForceMode + public ForceMode ForceMode = ForceMode.Impulse; + + /// + /// Trigger this event and apple torque to the RigidBody component of the Actor + /// + /// The Actor with a RigidBody to apply to torque to. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Rigidbody affectedObjectRigidBody = actor.GetComponent(); + if (affectedObjectRigidBody != null) + { + affectedObjectRigidBody.AddTorque(Torque, ForceMode); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs.meta new file mode 100644 index 0000000..764d60e --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ApplyTorqueEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7b2c3e68a2a1234dbe7fbc234225b63 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs new file mode 100644 index 0000000..b494fa4 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Event to set the rigidbody of a given actor into sleep mode. + /// + [CutsceneItemAttribute("Physics", "Sleep", CutsceneItemGenre.ActorItem)] + public class RigidbodySleepEvent : CinemaActorEvent + { + /// + /// Trigger this event and set the rigidbody of the actor to sleep. + /// + /// The actor to put to sleep. + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Rigidbody rb = actor.GetComponent(); + if (rb != null) + { + rb.Sleep(); + } + } + } + + /// + /// Trigger this event and wake up the rigidbody component of the given actor. + /// + /// The actor to wake up. + public override void Reverse(GameObject actor) + { + if (actor != null) + { + Rigidbody rb = actor.GetComponent(); + if (rb != null) + { + rb.WakeUp(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs.meta new file mode 100644 index 0000000..ffd5c17 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodySleepEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1f474cbd94238f4683f4d4f542d496b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs new file mode 100644 index 0000000..6ea518c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs @@ -0,0 +1,37 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Event to wake up the rigidbody of a given actor. + /// + [CutsceneItemAttribute("Physics", "Wake Up", CutsceneItemGenre.ActorItem)] + public class RigidbodyWakeUpEvent : CinemaActorEvent + { + /// + /// Trigger this event and wake up the rigidbody component of the given actor. + /// + /// The actor to wake up. + public override void Trigger(GameObject actor) + { + Rigidbody rb = actor.GetComponent(); + if (rb != null) + { + rb.WakeUp(); + } + } + + /// + /// Trigger this event and wake up the rigidbody component of the given actor. + /// + /// The actor to wake up. + public override void Reverse(GameObject actor) + { + Rigidbody rb = actor.GetComponent(); + if (rb != null) + { + rb.Sleep(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs.meta new file mode 100644 index 0000000..a5706a8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/RigidbodyWakeUpEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a09dafba508d9ea469dd2b42c146ccf4 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs new file mode 100644 index 0000000..3d3a787 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs @@ -0,0 +1,81 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An event to set the mass of the rigidbody of a given actor. + /// + [CutsceneItemAttribute("Physics", "Set Mass", CutsceneItemGenre.ActorItem)] + public class SetMassEvent : CinemaActorEvent, IRevertable + { + // The new mass. + public float Mass = 1f; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// All the revert info related to this event. + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + Rigidbody rb = go.GetComponent(); + if (rb != null) + { + reverts.Add(new RevertInfo(this, rb, "mass", rb.mass)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Trigger this event and set a new mass for the actor's rigidbody. + /// + /// The actor whose mass will be set. + public override void Trigger(GameObject actor) + { + if (actor == null) return; + + Rigidbody affectedObjectRigidBody = actor.GetComponent(); + + if (affectedObjectRigidBody != null) + { + affectedObjectRigidBody.mass = Mass; + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs.meta new file mode 100644 index 0000000..c49c834 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/SetMassEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ec608ab9e51cfc4b839e9fcab9025b3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs new file mode 100644 index 0000000..b8d23fb --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs @@ -0,0 +1,85 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An event to toggle the gravity of a given rigidbody. + /// + [CutsceneItemAttribute("Physics", "Toggle Gravity", CutsceneItemGenre.ActorItem)] + public class ToggleGravityEvent : CinemaActorEvent, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + foreach (Transform go in actors) + { + if (go != null) + { + Rigidbody rb = go.GetComponent(); + if (rb != null) + { + reverts.Add(new RevertInfo(this, rb, "useGravity", rb.useGravity)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Toggle gravity for the given actor's rigidbody component. + /// + /// The actor with a ridigbody to toggle gravity for. + public override void Trigger(GameObject actor) + { + Rigidbody affectedObjectRigidBody = actor.GetComponent(); + + if (affectedObjectRigidBody != null) + { + affectedObjectRigidBody.useGravity = !affectedObjectRigidBody.useGravity; + } + } + + /// + /// Reverse the toggle of gravity for the given actor's rigidbody component. + /// + /// The actor with a ridigbody to toggle gravity for. + public override void Reverse(GameObject actor) + { + Trigger(actor); + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs.meta new file mode 100644 index 0000000..115ba0a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Rigidbody/ToggleGravityEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6715b23a877b1c42b6b4cb6cd87a322 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform.meta new file mode 100644 index 0000000..b205600 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 66d720a8d75a13246b8e48bfeff9a6aa +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs new file mode 100644 index 0000000..dd795ac --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Detaches all children in hierarchy from this Parent. + /// + [CutsceneItemAttribute("Transform", "Attach Children", CutsceneItemGenre.ActorItem)] + public class AttachChildrenEvent : CinemaActorEvent + { + public GameObject[] Children; + public override void Trigger(GameObject actor) + { + if (actor != null && Children != null) + { + foreach (GameObject child in Children) + { + child.transform.parent = actor.transform; + } + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs.meta new file mode 100644 index 0000000..f37969a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/AttachChildrenEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 822a3d84428d72a48923d0aa93fbfc3e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs new file mode 100644 index 0000000..bfad31a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Detaches all children in hierarchy from this Parent. + /// + [CutsceneItemAttribute("Transform", "Detach Children", CutsceneItemGenre.ActorItem)] + public class DetachChildrenEvent : CinemaActorEvent + { + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.transform.DetachChildren(); + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs.meta new file mode 100644 index 0000000..5d0d369 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/DetachChildrenEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 283ce824fb2efa74d8d71faaceca143d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs new file mode 100644 index 0000000..b34fe23 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs @@ -0,0 +1,16 @@ +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Transform", "Set Parent", CutsceneItemGenre.ActorItem)] + public class SetParent : CinemaActorEvent + { + public override void Trigger(GameObject actor) + { + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs.meta new file mode 100644 index 0000000..460ead6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetParent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e27fe34fc453934fb78e2ced2f4d770 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs new file mode 100644 index 0000000..02872c7 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Detaches all children in hierarchy from this Parent. + /// + [CutsceneItemAttribute("Transform", "Set Position", CutsceneItemGenre.ActorItem)] + public class SetPositionEvent : CinemaActorEvent + { + public Vector3 Position; + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.transform.position = Position; + } + } + + public override void Reverse(GameObject actor) + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs.meta new file mode 100644 index 0000000..1a086ac --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetPositionEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2ea3aae9dd90394aa649052b553f45a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs new file mode 100644 index 0000000..66ebe7b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs @@ -0,0 +1,77 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Sets the transform of the Actor to that of another Game Object's Transform. + /// + [CutsceneItemAttribute("Transform", "Set Transform", CutsceneItemGenre.ActorItem, CutsceneItemGenre.TransformItem)] + public class SetTransformEvent : CinemaActorEvent, IRevertable + { + public Transform Transform; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Transform t = go.GetComponent(); + if (t != null) + { + reverts.Add(new RevertInfo(this, t, "localPosition", t.localPosition)); + reverts.Add(new RevertInfo(this, t, "localRotation", t.localRotation)); + reverts.Add(new RevertInfo(this, t, "localScale", t.localScale)); + } + } + } + + return reverts.ToArray(); + } + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + actor.transform.position = Transform.position; + actor.transform.rotation = Transform.rotation; + actor.transform.localScale = Transform.localScale; + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs.meta new file mode 100644 index 0000000..7b69168 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/SetTransformEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b4e269716d93b549b25cac3286ba0ee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs new file mode 100644 index 0000000..41b6fa5 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs @@ -0,0 +1,100 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An action that updates the transform of the Actor to look at a target game object. + /// + [CutsceneItem("Transform", "Look At", CutsceneItemGenre.ActorItem, CutsceneItemGenre.TransformItem)] + public class TransformLookAtAction : CinemaActorAction, IRevertable + { + [SerializeField] + [Tooltip("The target that the Actor should look at.")] + GameObject LookAtTarget; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + + /// + /// Cache the state of all actors related to this event. + /// + /// Info to revert rotation + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Transform t = go.GetComponent(); + if (t != null) + { + reverts.Add(new RevertInfo(this, t, "localRotation", t.localRotation)); + } + } + } + + return reverts.ToArray(); + } + + /// + /// Trigger this action and have the actor look at the target. + /// + /// The actor to update the transform of. + public override void Trigger(GameObject actor) + { + if (actor == null || LookAtTarget == null) return; + actor.transform.LookAt(LookAtTarget.transform); + } + + /// + /// Continue to update the transform to look at the target. + /// + /// The actor being updated. + /// The running time of the cutscene. + /// The deltaTime since last call. + public override void UpdateTime(GameObject actor, float runningTime, float deltaTime) + { + if (actor == null || LookAtTarget == null) return; + actor.transform.LookAt(LookAtTarget.transform); + } + + /// + /// End the action. + /// + /// The actor of this action. + public override void End(GameObject actor) + { + // Do nothing. + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs.meta new file mode 100644 index 0000000..1e9924c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/Transform/TransformLookAtAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a67ca75c46868e47adbc4d11cef9706 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI.meta new file mode 100644 index 0000000..ceae4b8 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d0269ba345418564288c9a7400485d4e +folderAsset: yes +timeCreated: 1461606314 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs new file mode 100644 index 0000000..93c6f0d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs @@ -0,0 +1,51 @@ +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Switch Canvas Camera", CutsceneItemGenre.ActorItem)] + public class CanvasCameraSwitchEvent : CinemaActorEvent + { + public Camera Camera; + Camera initialCamera; + + public override void Trigger(GameObject actor) + { + Canvas canvasComponent = actor.GetComponent(); + + if (actor != null && Camera != null && canvasComponent != null) + { + if (canvasComponent.renderMode == RenderMode.ScreenSpaceOverlay) + { + Debug.LogWarning("Current canvas render mode does not target a camera"); + initialCamera = Camera.main; + } + else + { + initialCamera = canvasComponent.worldCamera; + canvasComponent.worldCamera = Camera; + } + } + } + + public override void Reverse(GameObject actor) + { + Canvas canvasComponent = actor.GetComponent(); + + if (actor != null && Camera != null && canvasComponent != null) + { + if (canvasComponent.renderMode == RenderMode.ScreenSpaceOverlay) + Debug.LogWarning("Current canvas render mode does not target a camera"); + else + canvasComponent.worldCamera = initialCamera; + } + } + + public override void Stop(GameObject actor) + { + Canvas canvasComponent = actor.GetComponent(); + + if (actor != null && canvasComponent != null) + canvasComponent.worldCamera = initialCamera; + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs.meta new file mode 100644 index 0000000..44576ab --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/CanvasCameraSwitchEvent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8e297e568da2d874182a7f737aa46cc9 +timeCreated: 1453902314 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs new file mode 100644 index 0000000..ea54411 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs @@ -0,0 +1,130 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine.UI; +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Change Color", CutsceneItemGenre.ActorItem)] + public class ColorChange : CinemaActorAction, IRevertable + { + [SerializeField] + Color colorValue = Color.white; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + Color initialColor; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Graphic clr = go.GetComponent(); + if (clr != null) + { + reverts.Add(new RevertInfo(this, clr, "color", clr.color)); + } + } + } + return reverts.ToArray(); + } + + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Graphic UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + initialColor = UIcomponent.color; + } + } + } + + public override void SetTime(GameObject actor, float time, float deltaTime) + { + if (actor != null) + { + if (time > 0 && time <= Duration) + { + UpdateTime(actor, time, deltaTime); + } + } + } + + public override void UpdateTime(GameObject actor, float runningTime, float deltaTime) + { + if (actor != null) + { + float transition = runningTime / Duration; + + Graphic UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + Color lerpedColor = Color.Lerp(initialColor, colorValue, transition); + UIcomponent.color = lerpedColor; + + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + } + } + + public override void End(GameObject actor) + { + if (actor != null) + { + Graphic UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + UIcomponent.color = colorValue; + + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs.meta new file mode 100644 index 0000000..7acd271 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChange.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bc2174a3762776e44b29df34d2482719 +timeCreated: 1453975893 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs new file mode 100644 index 0000000..9e8430a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs @@ -0,0 +1,184 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine.UI; +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Change Color Selectable", CutsceneItemGenre.ActorItem)] + public class ColorChangeSelectable : CinemaActorAction, IRevertable + { + enum ColorBlockChoices {normalColor,highlightedColor,pressedColor, disabledColor}; + [SerializeField] + ColorBlockChoices colorField; + + [SerializeField] + Color colorValue = Color.white; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + Color initialColor; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Selectable clr = go.GetComponent(); + if (clr != null) + { + reverts.Add(new RevertInfo(this, clr, "colors", clr.colors)); + } + } + } + return reverts.ToArray(); + } + + + public override void Trigger(GameObject actor) + { + if (actor != null) + { + Selectable UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + switch ((int)colorField) + { + case 0: + initialColor = UIcomponent.colors.normalColor; + break; + case 1: + initialColor = UIcomponent.colors.highlightedColor; + break; + case 2: + initialColor = UIcomponent.colors.pressedColor; + break; + case 3: + initialColor = UIcomponent.colors.disabledColor; + break; + } + } + } + } + + public override void SetTime(GameObject actor, float time, float deltaTime) + { + if (actor != null) + { + if (time > 0 && time <= Duration) + { + UpdateTime(actor, time, deltaTime); + } + } + } + + public override void UpdateTime(GameObject actor, float runningTime, float deltaTime) + { + if (actor != null) + { + float transition = runningTime / Duration; + + Selectable UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + ColorBlock tempValue = UIcomponent.colors; + Color lerpedColor = Color.Lerp(initialColor, colorValue, transition); + + switch ((int)colorField) + { + case 0: + tempValue.normalColor = lerpedColor; + break; + case 1: + tempValue.highlightedColor = lerpedColor; + break; + case 2: + tempValue.pressedColor = lerpedColor; + break; + case 3: + tempValue.disabledColor = lerpedColor; + break; + } + + UIcomponent.colors = tempValue; + + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + } + } + + public override void End(GameObject actor) + { + if (actor != null) + { + Selectable UIcomponent = actor.GetComponent(); + + if (UIcomponent != null) + { + ColorBlock tempValue = UIcomponent.colors; + + switch ((int)colorField) + { + case 0: + tempValue.normalColor = colorValue; + break; + case 1: + tempValue.highlightedColor = colorValue; + break; + case 2: + tempValue.pressedColor = colorValue; + break; + case 3: + tempValue.disabledColor = colorValue; + break; + } + + if (UIcomponent != null) + UIcomponent.colors = tempValue; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs.meta new file mode 100644 index 0000000..511bdff --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/ColorChangeSelectable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 86c92bd70e0d627469414cb93dffff60 +timeCreated: 1455833507 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs new file mode 100644 index 0000000..c339c82 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs @@ -0,0 +1,80 @@ +using UnityEngine.UI; +using UnityEngine; +using CinemaDirector.Helpers; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif + + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Interactable", CutsceneItemGenre.ActorItem)] + public class SetIsInteractable : CinemaActorEvent, IRevertable + { + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + + public override void Trigger(GameObject actor) + { + Selectable UIcomponent = actor.GetComponent(); + if (UIcomponent != null) + UIcomponent.interactable = !UIcomponent.interactable; + + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + + public override void Reverse(GameObject actor) + { + Selectable UIcomponent = actor.GetComponent(); + + if (UIcomponent != null && runtimeRevertMode == RevertMode.Revert && Application.isPlaying) + UIcomponent.interactable = !UIcomponent.interactable; + + if (UIcomponent != null && editorRevertMode == RevertMode.Revert && Application.isEditor && !Application.isPlaying) + UIcomponent.interactable = !UIcomponent.interactable; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponent()); + #endif + } + + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Selectable UIcomponent = go.GetComponent(); + if (UIcomponent != null) + { + reverts.Add(new RevertInfo(this, UIcomponent, "interactable", UIcomponent.interactable)); + } + } + } + return reverts.ToArray(); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs.meta new file mode 100644 index 0000000..6ea3ebd --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/SetIsInteractable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 487a011191725e94ab44a13a508908a1 +timeCreated: 1453902329 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs new file mode 100644 index 0000000..49993e3 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs @@ -0,0 +1,102 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine.UI; +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Text Remover", CutsceneItemGenre.ActorItem)] + public class TextDegenerationEvent : CinemaActorAction, IRevertable + { + + string textValue; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Text txt = go.GetComponentInChildren(); + if (txt != null) + { + reverts.Add(new RevertInfo(this, txt, "text", txt.text)); + } + } + } + return reverts.ToArray(); + } + + public override void Trigger(GameObject actor) + { + textValue= actor.GetComponentInChildren().text; + } + + public override void SetTime(GameObject actor, float time, float deltaTime) + { + if (actor != null) + if (time > 0 && time <= Duration) + UpdateTime(actor, time, deltaTime); + } + + public override void UpdateTime(GameObject actor, float runningTime, float deltaTime) + { + float transition = runningTime / Duration; + int numericalValue; + + if (textValue!=null) + { + numericalValue = (int)Mathf.Round(Mathf.Lerp(textValue.Length,0, transition)); + + actor.GetComponentInChildren().text = textValue.Substring(0, numericalValue); + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + } + + public override void End(GameObject actor) + { + actor.GetComponentInChildren().text = ""; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs.meta new file mode 100644 index 0000000..dc003d0 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextDegenerationEvent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9ee87daec25885a46b9b1107c82bd734 +timeCreated: 1454006440 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs new file mode 100644 index 0000000..92b3760 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs @@ -0,0 +1,115 @@ +using CinemaDirector.Helpers; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif +using UnityEngine.UI; +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("uGUI", "Text Generator", CutsceneItemGenre.ActorItem)] + public class TextGenerationEvent : CinemaActorAction, IRevertable + { + + [TextArea(3, 10)] + public string textValue; + private string initialTextValue; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the state of all actors related to this event. + /// + /// + public RevertInfo[] CacheState() + { + List actors = new List(GetActors()); + List reverts = new List(); + for (int i = 0; i < actors.Count; i++) + { + Transform go = actors[i]; + if (go != null) + { + Text txt = go.GetComponentInChildren(); + if (txt != null) + { + reverts.Add(new RevertInfo(this, txt, "text", txt.text)); + } + } + } + return reverts.ToArray(); + } + + public override void Trigger(GameObject actor) + { + initialTextValue = actor.GetComponentInChildren().text; + actor.GetComponentInChildren().text = ""; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + + public override void ReverseTrigger(GameObject actor) + { + actor.GetComponentInChildren().text = initialTextValue; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + + public override void SetTime(GameObject actor, float time, float deltaTime) + { + if (actor != null) + if (time > 0 && time <= Duration) + UpdateTime(actor, time, deltaTime); + } + + public override void UpdateTime(GameObject actor, float runningTime, float deltaTime) + { + float transition = runningTime / Duration; + int numericalValue; + + if (textValue!=null) + { + numericalValue = (int)Mathf.Round(Mathf.Lerp(0, textValue.Length, transition)); + actor.GetComponentInChildren().text = textValue.Substring(0, numericalValue); + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + } + + public override void End(GameObject actor) + { + actor.GetComponentInChildren().text= textValue; + #if UNITY_EDITOR + EditorUtility.SetDirty(actor.GetComponentInChildren()); + #endif + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs.meta new file mode 100644 index 0000000..ea071da --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Actor Items/uGUI/TextGenerationEvent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ab1f28727c36d2845afef267781d9730 +timeCreated: 1453999894 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Cutscene Items/Core.meta b/Assets/Cinema Director/Cutscene Items/Core.meta new file mode 100644 index 0000000..369cbb6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Core.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9aab8cd5078f356468db4c8b2314b9a1 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs b/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs new file mode 100644 index 0000000..83fdbeb --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs @@ -0,0 +1,98 @@ +using System.Collections.Generic; +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItemAttribute("Audio", "Play Audio", typeof(AudioClip), CutsceneItemGenre.AudioClipItem)] + public class CinemaAudio : TimelineActionFixed + { + private bool wasPlaying = false; + + public void Trigger(){ + } + + public void End() + { + Stop(); + } + + public void UpdateTime(float time, float deltaTime) + { + AudioSource audio = gameObject.GetComponent(); + if (audio != null) + { + audio.mute = false; + if (Cutscene.State == CinemaDirector.Cutscene.CutsceneState.Scrubbing) + { + audio.time = time + InTime; + } + if (!audio.isPlaying) + { + audio.time = time + InTime; + audio.Play(); + } + } + } + + public void Resume() + { + AudioSource audio = gameObject.GetComponent(); + if (audio != null) + { + if (wasPlaying) + { + audio.Play(); + } + } + } + + public void Pause() + { + AudioSource audio = gameObject.GetComponent(); + if (audio != null) + { + wasPlaying = false; + if (audio.isPlaying) + { + wasPlaying = true; + } + + audio.Pause(); + } + } + + public override void Stop() + { + AudioSource audio = gameObject.GetComponent(); + if (audio) + audio.Stop(); + } + + public void SetTime(float audioTime) + { + AudioSource audio = gameObject.GetComponent(); + if (audio != null) + { + audio.time = audioTime; + } + } + + public override void SetDefaults(Object PairedItem) + { + AudioClip clip = PairedItem as AudioClip; + if (clip != null) + { + AudioSource source = gameObject.AddComponent(); + source.clip = clip; + + Firetime = 0; + Duration = clip.length; + InTime = 0; + OutTime = clip.length; + ItemLength = clip.length; + source.playOnAwake = false; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs.meta b/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs.meta new file mode 100644 index 0000000..60eaffc --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Core/CinemaAudio.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1422ff3df485774eb5b60d1178f1672 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs b/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs new file mode 100644 index 0000000..6dad0a0 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs @@ -0,0 +1,72 @@ +// Cinema Suite +using System; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The representation of a Shot. + /// + [CutsceneItemAttribute("Shots", "Shot", CutsceneItemGenre.CameraShot)] + public class CinemaShot : CinemaGlobalAction + { + public Camera shotCamera; + private bool cachedState; + + public override void Initialize() + { + if (shotCamera != null) + { + cachedState = shotCamera.gameObject.activeInHierarchy; + } + } + + public override void Trigger() + { + if (this.shotCamera != null) + { + this.shotCamera.gameObject.SetActive(true); + } + } + + + public override void End() + { + if (this.shotCamera != null) + { + this.shotCamera.gameObject.SetActive(false); + } + } + + public override void Stop() + { + if (shotCamera != null) + { + this.shotCamera.gameObject.SetActive(cachedState); + } + } + + #region Properties + + /// + /// Accesses the time that the cut takes place + /// + public float CutTime + { + get { return this.Firetime; } + set { this.Firetime = value; } + } + + /// + /// The length of this shot in seconds. + /// + public float ShotLength + { + get { return this.Duration; } + set { this.Duration = value; } + } + + #endregion + + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs.meta b/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs.meta new file mode 100644 index 0000000..cc7be7c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Core/CinemaShot.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a14086d9fe0c27b4cba8d7ccad7972e5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items.meta b/Assets/Cinema Director/Cutscene Items/Global Items.meta new file mode 100644 index 0000000..2af6848 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 06c52ccd81fb72b409abdd19c82f0811 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource.meta b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource.meta new file mode 100644 index 0000000..c7c4744 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9acef83b5d7021940868edda2ea8032c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs new file mode 100644 index 0000000..0dadcd5 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs @@ -0,0 +1,29 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Event to trigger playing an audio clip at a point in space. + /// + [CutsceneItemAttribute("Audio Source", "Play Clip At Point", CutsceneItemGenre.GlobalItem)] + public class PlayClipAtPointAudioEvent : CinemaGlobalEvent + { + // The Audio Clip to be played. + public AudioClip Clip; + + // The position to be played at. + public Vector3 Position; + + // The volume. + public float VolumeScale = 1f; + + /// + /// Trigger the audio clip to be played at a position. + /// + public override void Trigger() + { + AudioSource.PlayClipAtPoint(Clip, Position, VolumeScale); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs.meta new file mode 100644 index 0000000..06e275e --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/AudioSource/PlayClipAtPointAudioEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20db811cd86175e4cbc22119825f6833 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene.meta new file mode 100644 index 0000000..832886c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e52c2ec8236c0fa4bab8ef584956824b +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs new file mode 100644 index 0000000..0f3286b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs @@ -0,0 +1,26 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Pause a given Cutscene. + /// + [CutsceneItem("Cutscene", "Pause Cutscene", CutsceneItemGenre.GlobalItem)] + public class PauseCutscene : CinemaGlobalEvent + { + // The cutscene to be paused. + public Cutscene cutscene; + + /// + /// Pause the given Cutscene. + /// + public override void Trigger() + { + if (cutscene != null) + { + cutscene.Pause(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs.meta new file mode 100644 index 0000000..6be3ce6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PauseCutscene.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3211878c884309d4eabae9678d91be9d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs new file mode 100644 index 0000000..b02a911 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs @@ -0,0 +1,26 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Play a given Cutscene. + /// + [CutsceneItem("Cutscene", "Play Cutscene", CutsceneItemGenre.GlobalItem)] + public class PlayCutscene : CinemaGlobalEvent + { + // The Cutscene to be played. + public Cutscene cutscene; + + /// + /// Trigger this event and Play the given Cutscene. + /// + public override void Trigger() + { + if (cutscene != null) + { + cutscene.Play(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs.meta new file mode 100644 index 0000000..2677274 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/PlayCutscene.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c95963228dbbea48941bf865ce99cfa +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs new file mode 100644 index 0000000..e109d14 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs @@ -0,0 +1,26 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Stop a given Cutscene from playing. + /// + [CutsceneItem("Cutscene", "Stop Cutscene", CutsceneItemGenre.GlobalItem)] + public class StopCutscene : CinemaGlobalEvent + { + // The cutscene to be stopped. + public Cutscene cutscene; + + /// + /// Trigger this event and stop the given Cutscene from playing. + /// + public override void Trigger() + { + if (cutscene != null) + { + cutscene.Stop(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs.meta new file mode 100644 index 0000000..1879653 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Cutscene/StopCutscene.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c65b26ed8e5dcbb47a28d37896eeeeb5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Debug.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Debug.meta new file mode 100644 index 0000000..987e7d7 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Debug.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 0899e0a8471cb3f409cd83e74940d6be +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture.meta b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture.meta new file mode 100644 index 0000000..bbc4c0c --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 16992084efa50ed4da4e191784d7f30d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs new file mode 100644 index 0000000..33ee223 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs @@ -0,0 +1,134 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An action that fades in a texture over the first 25% of length, shows for 50% of time length + /// and fades away over the final 25%. + /// + [CutsceneItem("GUITexture", "Fade Texture", CutsceneItemGenre.GlobalItem)] + public class FadeTexture : CinemaGlobalAction + { + // The GUITexture to show + public GUITexture target; + + // Optional Tint + public Color tint = Color.grey; + + /// + /// Disable the Texture and make it clear. + /// + void Awake() + { + if (this.target != null) + { + this.target.enabled = false; + this.target.color = Color.clear; + } + } + + /// + /// Trigger this event, enable the texture and make it clear. + /// + public override void Trigger() + { + if (this.target != null) + { + this.target.enabled = true; + this.target.color = Color.clear; + } + } + + /// + /// Reverse the start of this action by disabling the texture. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the fading/showing of this texture. + /// + /// The time of this action. + /// The deltaTime since last update. + public override void UpdateTime(float time, float deltaTime) + { + if (this.target != null) + { + float transition = time / Duration; + if (transition <= 0.25f) + { + FadeToColor(Color.clear, tint, (transition / 0.25f)); + } + else if (transition >= 0.75f) + { + FadeToColor(tint, Color.clear, (transition - 0.75f) / .25f); + } + } + } + + /// + /// Update this action to an arbitrary time. + /// + /// The new time. + /// The deltaTime since last update. + public override void SetTime(float time, float deltaTime) + { + if (this.target != null) + { + this.target.enabled = true; + if (time >= 0 && time <= Duration) + { + UpdateTime(time, deltaTime); + } + else if (target.enabled) + { + this.target.enabled = false; + } + } + } + + /// + /// End this action and disable the texture. + /// + public override void End() + { + if (this.target != null) + { + this.target.enabled = false; + } + } + + /// + /// Trigger the action from the end in reverse. + /// + public override void ReverseEnd() + { + Trigger(); + } + + /// + /// Stop this action and disable its texture. + /// + public override void Stop() + { + if (this.target != null) + { + this.target.enabled = false; + } + } + + /// + /// Fade between two colours over a transition value. + /// + /// The start color. + /// The end color. + /// The transition amount. + private void FadeToColor(Color from, Color to, float transition) + { + this.target.color = Color.Lerp(from, to, transition); + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs.meta new file mode 100644 index 0000000..6aee0b2 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GUITexture/FadeTexture.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 116e9b43ace58834d9c6364b256a61e2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GameObject.meta b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject.meta new file mode 100644 index 0000000..39e50ff --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 15829f6bfa69af545982693d50470de6 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs new file mode 100644 index 0000000..f893fbc --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs @@ -0,0 +1,80 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A simple event for Disabling a Game Object. + /// + [CutsceneItemAttribute("Game Object", "Disable Game Object", CutsceneItemGenre.GlobalItem)] + public class DisableGameObjectGlobal : CinemaGlobalEvent, IRevertable + { + // The target Game Object + public GameObject target; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + // Keep track of the GameObject's previous state when calling Trigger. + private bool previousState; + + /// + /// Cache the initial state of the target GameObject's active state. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + if (target != null) + return new RevertInfo[] { new RevertInfo(this, target, "SetActive", target.activeInHierarchy) }; + + return null; + } + + /// + /// Trigger this event and set the given GameObject to disabled. + /// + public override void Trigger() + { + if (target != null) + { + previousState = target.activeInHierarchy; + target.SetActive(false); + } + } + + /// + /// Reverse this Event and put the GameObject into its' previous state. + /// + public override void Reverse() + { + if (target != null) + { + target.SetActive(previousState); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs.meta new file mode 100644 index 0000000..ec72e0d --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/DisableGameObjectGlobal.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c88a020fb298dfa4f9dda082a3f62f2e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs new file mode 100644 index 0000000..27aca0a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs @@ -0,0 +1,80 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A simple event for Enabling a Game Object + /// + [CutsceneItemAttribute("Game Object", "Enable Game Object", CutsceneItemGenre.GlobalItem)] + public class EnableGameObjectGlobal : CinemaGlobalEvent, IRevertable + { + // The target GameObject + public GameObject target; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + // Keep track of the GameObject's previous state when calling Trigger. + private bool previousState; + + /// + /// Cache the initial state of the target GameObject's active state. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + if (target != null) + return new RevertInfo[]{new RevertInfo(this, target, "SetActive", target.activeInHierarchy)}; + + return null; + } + + /// + /// Trigger this event and set the given GameObject to enabled. + /// + public override void Trigger() + { + if (target != null) + { + previousState = target.activeInHierarchy; + target.SetActive(true); + } + } + + /// + /// Reverse this Event and put the GameObject into its' previous state. + /// + public override void Reverse() + { + if (target != null) + { + target.SetActive(previousState); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs.meta new file mode 100644 index 0000000..81b5262 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/GameObject/EnableGameObjectGlobal.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04f4e69d858c882478543f3fd46d64f1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Time.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Time.meta new file mode 100644 index 0000000..f5caff3 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Time.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9bd41387fcc1acf48979a5d1aac75b42 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs new file mode 100644 index 0000000..4f94580 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs @@ -0,0 +1,71 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An event for changing Time Scale. + /// + [CutsceneItem("Time", "Set Time Scale", CutsceneItemGenre.GlobalItem)] + public class SetTimeScaleEvent : CinemaGlobalEvent, IRevertable + { + // The new timescale + public float TimeScale = 1f; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + // Keep track of the previous time scale when calling Trigger. + private float previousTimescale = 1f; + + /// + /// Cache the initial state of the time scale. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + return new RevertInfo[] { new RevertInfo(this, typeof(Time), "timeScale", Time.timeScale) }; + } + + /// + /// Trigger this event and set a new time scale. + /// + public override void Trigger() + { + previousTimescale = Time.timeScale; + Time.timeScale = TimeScale; + } + + /// + /// Reverse this event and set time scale back to it's previous state. + /// + public override void Reverse() + { + Time.timeScale = previousTimescale; + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs.meta new file mode 100644 index 0000000..e8a832a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Time/SetTimeScaleEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e23160b4acfa6cb42ac95e12d8d96378 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs new file mode 100644 index 0000000..eee5d0f --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs @@ -0,0 +1,85 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using UnityEngine; + +namespace CinemaDirector +{ + [CutsceneItem("Time", "Time Scale Curve", CutsceneItemGenre.GlobalItem)] + public class TimeScaleCurveAction : CinemaGlobalAction, IRevertable + { + // The curve that controls time scale. Make sure that it goes from 0 to the duration of this action. + public AnimationCurve Curve; + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + // Keep track of the GameObject's previous state when calling Trigger. + private float previousScale; + + /// + /// Cache the initial state of the time scale. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + return new RevertInfo[]{ new RevertInfo(this, typeof(Time), "timeScale", Time.timeScale)}; + } + + /// + /// Trigger the start of the time curve. Save the current time scale. + /// + public override void Trigger() + { + previousScale = Time.timeScale; + } + + /// + /// Update the Time Scale using the animation curve. + /// + /// The time of this action. + /// The time since the last update. + public override void UpdateTime(float time, float deltaTime) + { + if (Curve != null) + { + Time.timeScale = Curve.Evaluate(time); + } + } + + /// + /// End the Time Scale action. + /// + public override void End() { } + + /// + /// Reset the time scale to the previous value when exiting this action in reverse. + /// + public override void ReverseTrigger() + { + Time.timeScale = previousScale; + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs.meta new file mode 100644 index 0000000..f4e4a52 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Time/TimeScaleCurveAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c4f3daca6c219f4ebdb87b1d746adee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions.meta new file mode 100644 index 0000000..8a6d7dc --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 53eedf70b03ce3e41afe07db6f92f04d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs new file mode 100644 index 0000000..104953b --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs @@ -0,0 +1,123 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Generic transition From any colour To any colour. + /// + [CutsceneItem("Transitions", "Color Transition", CutsceneItemGenre.GlobalItem)] + public class ColorTransition : CinemaGlobalAction + { + // The starting colour + public Color From = Color.black; + + // The final colour + public Color To = Color.clear; + + /// + /// Setup the effect when the script is loaded. + /// + void Awake() + { + if (GetComponent() == null) + { + gameObject.transform.position = Vector3.zero; + gameObject.transform.localScale = new Vector3(100, 100, 100); + gameObject.AddComponent(); + GetComponent().enabled = false; + GetComponent().texture = new Texture2D(1, 1); + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = Color.clear; + } + } + + /// + /// Enable the overlay texture and set to From colour + /// + public override void Trigger() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = From; + } + + /// + /// Firetime is reached when playing in reverse, disable the effect. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the effect over time, progressing the transition + /// + /// The time this action has been active + /// The time since the last update + public override void UpdateTime(float time, float deltaTime) + { + float transition = time / Duration; + FadeToColor(From, To, transition); + } + + /// + /// Set the transition to an arbitrary time. + /// + /// The time of this action + /// the deltaTime since the last update call. + public override void SetTime(float time, float deltaTime) + { + if (time >= 0 && time <= Duration) + { + GetComponent().enabled = true; + UpdateTime(time, deltaTime); + } + else if (GetComponent().enabled) + { + GetComponent().enabled = false; + } + } + + /// + /// End the effect by disabling the overlay texture. + /// + public override void End() + { + GetComponent().enabled = false; + } + + /// + /// The end of the action has been triggered while playing the Cutscene in reverse. + /// + public override void ReverseEnd() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = To; + } + + /// + /// Disable the overlay texture + /// + public override void Stop() + { + if (GetComponent() != null) + { + GetComponent().enabled = false; + } + } + + /// + /// Fade from one colour to another over a transition period. + /// + /// The starting colour + /// The final colour + /// the Lerp transition value + private void FadeToColor(Color from, Color to, float transition) + { + GetComponent().color = Color.Lerp(from, to, transition); + } + + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs.meta new file mode 100644 index 0000000..b290332 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/ColorTransition.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: afeb7fc1ce6a1da489b286f4acb4362f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs new file mode 100644 index 0000000..699f70a --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs @@ -0,0 +1,119 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Transition from Black to Clear over time by overlaying a GetComponent(). + /// + [CutsceneItem("Transitions", "Fade from Black", CutsceneItemGenre.GlobalItem)] + public class FadeFromBlack : CinemaGlobalAction + { + private Color From = Color.black; + private Color To = Color.clear; + + /// + /// Setup the effect when the script is loaded. + /// + void Awake() + { + if (GetComponent() == null) + { + gameObject.transform.position = Vector3.zero; + gameObject.transform.localScale = new Vector3(100, 100, 100); + gameObject.AddComponent(); + GetComponent().enabled = false; + GetComponent().texture = new Texture2D(1, 1); + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = Color.clear; + } + } + + /// + /// Enable the overlay texture and set the Color to Black. + /// + public override void Trigger() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = From; + } + + /// + /// Firetime is reached when playing in reverse, disable the effect. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the effect over time, progressing the transition + /// + /// The time this action has been active + /// The time since the last update + public override void UpdateTime(float time, float deltaTime) + { + float transition = time / Duration; + FadeToColor(From, To, transition); + } + + /// + /// Set the transition to an arbitrary time. + /// + /// The time of this action + /// the deltaTime since the last update call. + public override void SetTime(float time, float deltaTime) + { + if (time >= 0 && time <= Duration) + { + GetComponent().enabled = true; + UpdateTime(time, deltaTime); + } + else if (GetComponent().enabled) + { + GetComponent().enabled = false; + } + } + + /// + /// End the effect by disabling the overlay texture. + /// + public override void End() + { + GetComponent().enabled = false; + } + + /// + /// The end of the action has been triggered while playing the Cutscene in reverse. + /// + public override void ReverseEnd() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = To; + } + + /// + /// Disable the overlay texture + /// + public override void Stop() + { + if (GetComponent() != null) + { + GetComponent().enabled = false; + } + } + + /// + /// Fade from one colour to another over a transition period. + /// + /// The starting colour + /// The final colour + /// the Lerp transition value + private void FadeToColor(Color from, Color to, float transition) + { + GetComponent().color = Color.Lerp(from, to, transition); + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs.meta new file mode 100644 index 0000000..afbd626 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromBlack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49639c98e0a468842ad4187b08d7ae86 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs new file mode 100644 index 0000000..cfa7653 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs @@ -0,0 +1,119 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Transition from White to Clear over time by overlaying a guiTexture. + /// + [CutsceneItem("Transitions", "Fade from White", CutsceneItemGenre.GlobalItem)] + public class FadeFromWhite : CinemaGlobalAction + { + private Color From = Color.white; + private Color To = Color.clear; + + /// + /// Setup the effect when the script is loaded. + /// + void Awake() + { + if (GetComponent() == null) + { + gameObject.transform.position = Vector3.zero; + gameObject.transform.localScale = new Vector3(100, 100, 100); + gameObject.AddComponent(); + GetComponent().enabled = false; + GetComponent().texture = new Texture2D(1, 1); + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = Color.clear; + } + } + + /// + /// Enable the overlay texture and set the Color to White. + /// + public override void Trigger() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = From; + } + + /// + /// Firetime is reached when playing in reverse, disable the effect. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the effect over time, progressing the transition + /// + /// The time this action has been active + /// The time since the last update + public override void UpdateTime(float time, float deltaTime) + { + float transition = time / Duration; + FadeToColor(From, To, transition); + } + + /// + /// Set the transition to an arbitrary time. + /// + /// The time of this action + /// the deltaTime since the last update call. + public override void SetTime(float time, float deltaTime) + { + if (time >= 0 && time <= Duration) + { + GetComponent().enabled = true; + UpdateTime(time, deltaTime); + } + else if (GetComponent().enabled) + { + GetComponent().enabled = false; + } + } + + /// + /// End the effect by disabling the overlay texture. + /// + public override void End() + { + GetComponent().enabled = false; + } + + /// + /// The end of the action has been triggered while playing the Cutscene in reverse. + /// + public override void ReverseEnd() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = To; + } + + /// + /// Disable the overlay texture + /// + public override void Stop() + { + if (GetComponent() != null) + { + GetComponent().enabled = false; + } + } + + /// + /// Fade from one colour to another over a transition period. + /// + /// The starting colour + /// The final colour + /// the Lerp transition value + private void FadeToColor(Color from, Color to, float transition) + { + GetComponent().color = Color.Lerp(from, to, transition); + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs.meta new file mode 100644 index 0000000..61c2b27 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeFromWhite.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8d778ac170e2be47b7084cb69030d3a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs new file mode 100644 index 0000000..620077f --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs @@ -0,0 +1,120 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Transition from Clear to Black over time by overlaying a guiTexture. + /// + [CutsceneItem("Transitions", "Fade to Black", CutsceneItemGenre.GlobalItem)] + public class FadeToBlack : CinemaGlobalAction + { + private Color From = Color.clear; + private Color To = Color.black; + + /// + /// Setup the effect when the script is loaded. + /// + void Awake() + { + if (GetComponent() == null) + { + gameObject.transform.position = Vector3.zero; + gameObject.transform.localScale = new Vector3(100, 100, 100); + gameObject.AddComponent(); + GetComponent().enabled = false; + GetComponent().texture = new Texture2D(1, 1); + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = Color.clear; + } + } + + /// + /// Enable the overlay texture and set the Color to Clear. + /// + public override void Trigger() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = From; + } + + /// + /// Firetime is reached when playing in reverse, disable the effect. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the effect over time, progressing the transition + /// + /// The time this action has been active + /// The time since the last update + public override void UpdateTime(float time, float deltaTime) + { + float transition = time / Duration; + FadeToColor(From, To, transition); + } + + /// + /// Set the transition to an arbitrary time. + /// + /// The time of this action + /// the deltaTime since the last update call. + public override void SetTime(float time, float deltaTime) + { + if (time >= 0 && time <= Duration) + { + GetComponent().enabled = true; + UpdateTime(time, deltaTime); + } + else if (GetComponent().enabled) + { + GetComponent().enabled = false; + } + } + + /// + /// End the effect by disabling the overlay texture. + /// + public override void End() + { + GetComponent().enabled = false; + } + + /// + /// The end of the action has been triggered while playing the Cutscene in reverse. + /// + public override void ReverseEnd() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = To; + } + + /// + /// Disable the overlay texture + /// + public override void Stop() + { + if (GetComponent() != null) + { + GetComponent().enabled = false; + } + } + + /// + /// Fade from one colour to another over a transition period. + /// + /// The starting colour + /// The final colour + /// the Lerp transition value + private void FadeToColor(Color from, Color to, float transition) + { + GetComponent().color = Color.Lerp(from, to, transition); + } + + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs.meta new file mode 100644 index 0000000..0e5f366 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToBlack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a99f85a6d7b661f4f94de1fcdeb603c5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs new file mode 100644 index 0000000..365747e --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs @@ -0,0 +1,119 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Transition from Clear to White over time by overlaying a guiTexture. + /// + [CutsceneItem("Transitions", "Fade to White", CutsceneItemGenre.GlobalItem)] + public class FadeToWhite : CinemaGlobalAction + { + private Color From = Color.clear; + private Color To = Color.white; + + /// + /// Setup the effect when the script is loaded. + /// + void Awake() + { + if (GetComponent() == null) + { + gameObject.transform.position = Vector3.zero; + gameObject.transform.localScale = new Vector3(100, 100, 100); + gameObject.AddComponent(); + GetComponent().enabled = false; + GetComponent().texture = new Texture2D(1, 1); + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = Color.clear; + } + } + + /// + /// Enable the overlay texture and set the Color to Clear. + /// + public override void Trigger() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = From; + } + + /// + /// Firetime is reached when playing in reverse, disable the effect. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Update the effect over time, progressing the transition + /// + /// The time this action has been active + /// The time since the last update + public override void UpdateTime(float time, float deltaTime) + { + float transition = time / Duration; + FadeToColor(From, To, transition); + } + + /// + /// Set the transition to an arbitrary time. + /// + /// The time of this action + /// the deltaTime since the last update call. + public override void SetTime(float time, float deltaTime) + { + if (time >= 0 && time <= Duration) + { + GetComponent().enabled = true; + UpdateTime(time, deltaTime); + } + else if (GetComponent().enabled) + { + GetComponent().enabled = false; + } + } + + /// + /// End the effect by disabling the overlay texture. + /// + public override void End() + { + GetComponent().enabled = false; + } + + /// + /// The end of the action has been triggered while playing the Cutscene in reverse. + /// + public override void ReverseEnd() + { + GetComponent().enabled = true; + GetComponent().pixelInset = new Rect(0f, 0f, Screen.width, Screen.height); + GetComponent().color = To; + } + + /// + /// Disable the overlay texture + /// + public override void Stop() + { + if (GetComponent() != null) + { + GetComponent().enabled = false; + } + } + + /// + /// Fade from one colour to another over a transition period. + /// + /// The starting colour + /// The final colour + /// the Lerp transition value + private void FadeToColor(Color from, Color to, float transition) + { + GetComponent().color = Color.Lerp(from, to, transition); + } + } +} diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs.meta new file mode 100644 index 0000000..954c0c6 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Transitions/FadeToWhite.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26450fe968f1ad24fbf827fe85d87bd9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Utility.meta new file mode 100644 index 0000000..aac7457 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: f6dc846fafb4d754487e77e418189aed +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs new file mode 100644 index 0000000..e077ebe --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs @@ -0,0 +1,26 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Event for loading a new level + /// + [CutsceneItem("Utility", "Load Level", CutsceneItemGenre.GlobalItem)] + public class LoadLevelEvent : CinemaGlobalEvent + { + // The index of the level to be loaded. + public int Level = 0; + + /// + /// Trigger the level load. Only in Runtime. + /// + public override void Trigger() + { + if (Application.isPlaying) + { + Application.LoadLevel(Level); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs.meta new file mode 100644 index 0000000..7da3966 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/LoadLevelEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d212dbfd36634a14cafe5f3a2fe44459 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs new file mode 100644 index 0000000..896b259 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs @@ -0,0 +1,140 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Utility action for disabling a lot of GameObjects at once and then re-enabling them at the end of the action. + /// + [CutsceneItem("Utility", "Mass Disabler", CutsceneItemGenre.GlobalItem)] + public class MassDisabler : CinemaGlobalAction, IRevertable + { + // Game Objects to be disabled temporarily. + public List GameObjects = new List(); + + // Game Object Tags to be disabled temporarily. + public List Tags = new List(); + + // Cache the game objects. + private List tagsCache = new List(); + + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + /// + /// Cache the initial state of the target GameObject's active state. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + List gameObjects = new List(); + foreach (string tag in Tags) + { + GameObject[] tagged = GameObject.FindGameObjectsWithTag(tag); + foreach (GameObject gameObject in tagged) + { + gameObjects.Add(gameObject); + } + } + + gameObjects.AddRange(GameObjects); + + List reverts = new List(); + foreach (GameObject go in gameObjects) + { + if (go != null) + { + reverts.Add(new RevertInfo(this, go, "SetActive", go.activeInHierarchy)); + } + } + + return reverts.ToArray(); + } + + /// + /// Trigger this Action and disable all Game Objects + /// + public override void Trigger() + { + tagsCache.Clear(); + foreach (string tag in Tags) + { + GameObject[] gameObjects = GameObject.FindGameObjectsWithTag(tag); + foreach (GameObject gameObject in gameObjects) + { + tagsCache.Add(gameObject); + } + } + + setActive(false); + } + + /// + /// End the action and re-enable all game objects. + /// + public override void End() + { + setActive(true); + } + + /// + /// Trigger the beginning of the action while playing in reverse. + /// + public override void ReverseTrigger() + { + End(); + } + + /// + /// Trigger the end of the action while playing in reverse. + /// + public override void ReverseEnd() + { + Trigger(); + } + + /// + /// Enable/Disable all the game objects. + /// + /// Enable or Disable + private void setActive(bool enabled) + { + // Enable gameobjects + foreach (GameObject gameObject in GameObjects) + { + gameObject.SetActive(enabled); + } + + // Enable tags + foreach (GameObject gameObject in tagsCache) + { + gameObject.SetActive(enabled); + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs.meta new file mode 100644 index 0000000..0427809 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/MassDisabler.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3c4646b40f000d41814a1be4cb65bbc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs new file mode 100644 index 0000000..6e1af86 --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs @@ -0,0 +1,22 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Event that captures a screenshot when triggered. + /// + [CutsceneItem("Utility", "Storyboard", CutsceneItemGenre.GlobalItem)] + public class StoryboardEvent : CinemaGlobalEvent + { + public static int Count = 0; // Count how many screenshots have been captured. + + /// + /// Capture screenshot on trigger. + /// + public override void Trigger() + { + Application.CaptureScreenshot(string.Format(@"Assets\{0}{1}.png", this.gameObject.name, Count++)); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs.meta b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs.meta new file mode 100644 index 0000000..e1937cf --- /dev/null +++ b/Assets/Cinema Director/Cutscene Items/Global Items/Utility/StoryboardEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 069e8a09026ace249bb9b7c844f0355b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Prefabs.meta b/Assets/Cinema Director/Prefabs.meta new file mode 100644 index 0000000..1894107 --- /dev/null +++ b/Assets/Cinema Director/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d860b59f3637f5a4d91c67bd0fbe7691 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/Cutscene.prefab b/Assets/Cinema Director/Prefabs/Cutscene.prefab new file mode 100644 index 0000000..acd290f --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Cutscene.prefab @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: Cutscene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dea88cf454d6b69408653729ea66ec34, type: 3} + m_Name: + m_EditorClassIdentifier: + duration: 30 + runningTime: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Cinema Director/Prefabs/Cutscene.prefab.meta b/Assets/Cinema Director/Prefabs/Cutscene.prefab.meta new file mode 100644 index 0000000..96ba048 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Cutscene.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e4be95785bf9a8544b21596188075801 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab b/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab new file mode 100644 index 0000000..1e14ae8 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: CutsceneQueue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8064d87a4dc950a4b800cb8c5341f022, type: 3} + m_Name: + m_EditorClassIdentifier: + Cutscenes: [] +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab.meta b/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab.meta new file mode 100644 index 0000000..5e849a8 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/CutsceneQueue.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 117e764eac8894949953b87768b7d353 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab b/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab new file mode 100644 index 0000000..312d5cc --- /dev/null +++ b/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab @@ -0,0 +1,70 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 65: {fileID: 6500000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: CutsceneTrigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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 +--- !u!65 &6500000 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: deaa21a8e28e0a34e8c6d465b485c807, type: 3} + m_Name: + m_EditorClassIdentifier: + StartMethod: 0 + Cutscene: {fileID: 0} + TriggerObject: {fileID: 0} + SkipButtonName: Jump +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab.meta b/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab.meta new file mode 100644 index 0000000..cfc5140 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/CutsceneTrigger.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: ee09add0d202f1645abb11f28dc33cc3 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab b/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab new file mode 100644 index 0000000..8128c7c --- /dev/null +++ b/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: ScreenshotCapturer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.2929306, y: -16.5007896, z: -51.3662491} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a66d90914943cc04194592e2ab601eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + Folder: CaptureOutput + FrameRate: 24 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab.meta b/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab.meta new file mode 100644 index 0000000..50a6934 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/ScreenshotCapturer.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 3f6de491b988e054f875176c9289cb63 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes.meta b/Assets/Cinema Director/Prefabs/Themes.meta new file mode 100644 index 0000000..547a84e --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 06d798669c634f24d9d3ff71cca2ad61 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs.meta new file mode 100644 index 0000000..04e6924 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: cd494e1728136524eb44830dacfbc403 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png new file mode 100644 index 0000000..651ab07 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png.meta new file mode 100644 index 0000000..a351cf6 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/BleachBypass3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 3f9a21a2e62a4694984824b1132b3cb7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png new file mode 100644 index 0000000..50a46aa Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png.meta new file mode 100644 index 0000000..eb6c38e --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/CrossProcess3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 991926dd931d51a4da7ddf5060b3f22e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png new file mode 100644 index 0000000..605a655 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png.meta new file mode 100644 index 0000000..8be0e0e --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Dream3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1a2fb6928f03e0742ba8d0bdd95e7399 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png new file mode 100644 index 0000000..e59015d Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png.meta new file mode 100644 index 0000000..165084d --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/FLIR3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 64d74ceaeeb975142a5f5824c83615c6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png new file mode 100644 index 0000000..245b343 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png.meta new file mode 100644 index 0000000..8e13514 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Horror3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a0878c08ad6b09a4b9409eb8d0be8a97 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png new file mode 100644 index 0000000..3d5d084 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png.meta new file mode 100644 index 0000000..95ab73c --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Negative3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4da68ce732bfffe44a41667dc228d474 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png new file mode 100644 index 0000000..ef5f025 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png.meta new file mode 100644 index 0000000..5a546d6 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Noire3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 98b5cf5f0ff38ad43a4a0407a02ca51d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png new file mode 100644 index 0000000..fac9518 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png.meta new file mode 100644 index 0000000..9ea48c8 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Posterize3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7504fafd1dee4ae408fb22b8b9e4e99a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png new file mode 100644 index 0000000..55b0c09 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png.meta new file mode 100644 index 0000000..13da69b --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/SciFi3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4436e6473114ee3428f90966e7d8c882 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png new file mode 100644 index 0000000..ceb7647 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png.meta new file mode 100644 index 0000000..9d8ceb1 --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Sepia3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: fcb51db316252a341ae5e569ed0a91c0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png b/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png new file mode 100644 index 0000000..0832ea2 Binary files /dev/null and b/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png differ diff --git a/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png.meta b/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png.meta new file mode 100644 index 0000000..fdc608a --- /dev/null +++ b/Assets/Cinema Director/Prefabs/Themes/LUTs/Vintage3D16.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 11a6d5db4204204419476b592e65f05a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System.meta b/Assets/Cinema Director/System.meta new file mode 100644 index 0000000..6e520cc --- /dev/null +++ b/Assets/Cinema Director/System.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 4af6530ff838424449b765a5cec48ca1 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Common.meta b/Assets/Cinema Director/System/Common.meta new file mode 100644 index 0000000..f2ee325 --- /dev/null +++ b/Assets/Cinema Director/System/Common.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 06e73ca0d2634ae4b94719ac1d07992d +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Common/Reflection.meta b/Assets/Cinema Director/System/Common/Reflection.meta new file mode 100644 index 0000000..77e23aa --- /dev/null +++ b/Assets/Cinema Director/System/Common/Reflection.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 985ade49d8895e149a1b5d53e923c0fd +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs b/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs new file mode 100644 index 0000000..7884325 --- /dev/null +++ b/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs @@ -0,0 +1,116 @@ +using System; +using System.Reflection; +#if NETFX_CORE +using System.Collections; +using System.Collections.Generic; +using System.Linq; +#endif + +namespace CinemaSuite.Common +{ + /// A helper class for reflection calls, that allows for calls on multiple platforms. + public static class ReflectionHelper + { +#if NETFX_CORE + private static List assemblies = new List(); +#endif + public static Assembly[] GetAssemblies() + { +#if NETFX_CORE + if(assemblies == null || assemblies.Count == 0) + { + var folder = Windows.ApplicationModel.Package.Current.InstalledLocation; + var files = folder.GetFilesAsync(); + files.AsTask().Wait(); + + foreach (var file in files.GetResults()) + { + if (file.FileType == ".dll" || file.FileType == ".exe") + { + try + { + var filename = file.Name.Substring(0, file.Name.Length - file.FileType.Length); + AssemblyName name = new AssemblyName { Name = filename }; + Assembly assembly = Assembly.Load(name); + assemblies.Add(assembly); + } + catch (Exception) + { + continue; + } + } + } + + var typeInfo = typeof(CinemaDirector.Cutscene).GetTypeInfo(); + assemblies.Add(typeInfo.Assembly); + } + return assemblies.ToArray(); +#else + return AppDomain.CurrentDomain.GetAssemblies(); +#endif + } + + public static Type[] GetTypes(Assembly assembly) + { +#if NETFX_CORE + var types = new List(); + //foreach (var t in assembly.GetTypes()) + foreach (var t in assembly.DefinedTypes.Select(aa => aa.AsType()).ToArray()) + { + types.Add(t); + } + return types.ToArray(); +#else + return assembly.GetTypes(); +#endif + } + + public static bool IsSubclassOf(Type type, Type c) + { +#if NETFX_CORE + return type.GetTypeInfo().IsSubclassOf(c); +#else + return type.IsSubclassOf(c); +#endif + } + + public static MemberInfo[] GetMemberInfo(Type type, string name) + { +#if NETFX_CORE + var members = new List(); + members.Add(GetField(type, name)); + members.Add(GetProperty(type, name)); + return members.ToArray(); +#else + return type.GetMember(name); +#endif + } + + public static FieldInfo GetField(Type type, string name) + { +#if NETFX_CORE + return type.GetTypeInfo().GetDeclaredField(name); +#else + return type.GetField(name); +#endif + } + + public static PropertyInfo GetProperty(Type type, string name) + { +#if NETFX_CORE + return type.GetTypeInfo().GetDeclaredProperty(name); +#else + return type.GetProperty(name); +#endif + } + + public static T[] GetCustomAttributes(Type type, bool inherited) where T : Attribute + { +#if NETFX_CORE + return (T[]) type.GetTypeInfo().GetCustomAttributes(typeof(T), inherited); +#else + return (T[]) type.GetCustomAttributes(typeof(T), inherited); +#endif + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs.meta b/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs.meta new file mode 100644 index 0000000..1813076 --- /dev/null +++ b/Assets/Cinema Director/System/Common/Reflection/ReflectionHelper.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63cef700b6c5309449ee3c74a2e0d695 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Editor.meta b/Assets/Cinema Director/System/Editor.meta new file mode 100644 index 0000000..7d22b7a --- /dev/null +++ b/Assets/Cinema Director/System/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 54d0ffc57dadc7c4f941215da4cce7df +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Resources.meta b/Assets/Cinema Director/System/Resources.meta new file mode 100644 index 0000000..175757b --- /dev/null +++ b/Assets/Cinema Director/System/Resources.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a77dba6b3c864c745b676c22e987ccaf +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png b/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png new file mode 100644 index 0000000..9583ca5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png differ diff --git a/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png.meta b/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png.meta new file mode 100644 index 0000000..2238ec4 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/ActorGroupIconFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7081c752d64ffb04fa1fc3b969c759b9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png b/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png new file mode 100644 index 0000000..ca5a544 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png differ diff --git a/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png.meta b/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png.meta new file mode 100644 index 0000000..c36c8dc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/ActorGroupIconPro.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 97f44645fc725c149951b358d976e5af +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/AddIcon.png b/Assets/Cinema Director/System/Resources/AddIcon.png new file mode 100644 index 0000000..a3b6077 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/AddIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/AddIcon.png.meta b/Assets/Cinema Director/System/Resources/AddIcon.png.meta new file mode 100644 index 0000000..cc03246 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/AddIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8e41bfd084f9e994ca6817458e5b4bcc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/AddIconActivated.png b/Assets/Cinema Director/System/Resources/AddIconActivated.png new file mode 100644 index 0000000..855ed53 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/AddIconActivated.png differ diff --git a/Assets/Cinema Director/System/Resources/AddIconActivated.png.meta b/Assets/Cinema Director/System/Resources/AddIconActivated.png.meta new file mode 100644 index 0000000..1ef6124 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/AddIconActivated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7fe006ef65f882746969f9e3efdff2ac +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/AddIconHover.png b/Assets/Cinema Director/System/Resources/AddIconHover.png new file mode 100644 index 0000000..d844710 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/AddIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/AddIconHover.png.meta b/Assets/Cinema Director/System/Resources/AddIconHover.png.meta new file mode 100644 index 0000000..f7eb0cf --- /dev/null +++ b/Assets/Cinema Director/System/Resources/AddIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c8e5a68bbe60b1b4ab61362718921314 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png b/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png new file mode 100644 index 0000000..4a10e9b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png differ diff --git a/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png.meta b/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png.meta new file mode 100644 index 0000000..319bed8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CharacterGroupIconFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7bc74ecb3f78dd749808d8a1d4ae4356 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png b/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png new file mode 100644 index 0000000..ce7b5cb Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png differ diff --git a/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png.meta b/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png.meta new file mode 100644 index 0000000..67deff6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CharacterGroupIconPro.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e1d5b61b21a4cd5438b34633a7d1e7b1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG b/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG new file mode 100644 index 0000000..6f9c121 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG differ diff --git a/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG.meta b/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG.meta new file mode 100644 index 0000000..0b96863 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Cinema Suite Monochrome.PNG.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 59318c32d408f8c4da6c54c28b5f7e2f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CompressVertical.png b/Assets/Cinema Director/System/Resources/CompressVertical.png new file mode 100644 index 0000000..2641e15 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CompressVertical.png differ diff --git a/Assets/Cinema Director/System/Resources/CompressVertical.png.meta b/Assets/Cinema Director/System/Resources/CompressVertical.png.meta new file mode 100644 index 0000000..ecaf749 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CompressVertical.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 88046fc49448f8d43aa97e13dcb24aa6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png b/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png new file mode 100644 index 0000000..ad282da Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png differ diff --git a/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png.meta b/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png.meta new file mode 100644 index 0000000..6b7adda --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CompressVerticalActivated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f6b45984b78c2dd43816fd0f6e3cfeb0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CompressVerticalHover.png b/Assets/Cinema Director/System/Resources/CompressVerticalHover.png new file mode 100644 index 0000000..a383f80 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CompressVerticalHover.png differ diff --git a/Assets/Cinema Director/System/Resources/CompressVerticalHover.png.meta b/Assets/Cinema Director/System/Resources/CompressVerticalHover.png.meta new file mode 100644 index 0000000..b59f701 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CompressVerticalHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e836d8bc78f90d34eac4aa72d5080444 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CurveCanvas.png b/Assets/Cinema Director/System/Resources/CurveCanvas.png new file mode 100644 index 0000000..ffce9e5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CurveCanvas.png differ diff --git a/Assets/Cinema Director/System/Resources/CurveCanvas.png.meta b/Assets/Cinema Director/System/Resources/CurveCanvas.png.meta new file mode 100644 index 0000000..244d7b2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CurveCanvas.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 836b291c1c024df42a8c6b13185c6189 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/CurveCanvasPro.png b/Assets/Cinema Director/System/Resources/CurveCanvasPro.png new file mode 100644 index 0000000..880d85f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/CurveCanvasPro.png differ diff --git a/Assets/Cinema Director/System/Resources/CurveCanvasPro.png.meta b/Assets/Cinema Director/System/Resources/CurveCanvasPro.png.meta new file mode 100644 index 0000000..b978960 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/CurveCanvasPro.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 09628668d5c8aa6429a3f30bfbec5561 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin b/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin new file mode 100644 index 0000000..12c1f89 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin @@ -0,0 +1,2825 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0} + m_Name: DirectorFreeSkin + m_EditorClassIdentifier: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_box: + m_Name: box + m_Normal: + m_Background: {fileID: 2800000, guid: 0fc3e590ace08fb4794fddf9eefcf958, type: 3} + m_TextColor: {r: .910447776, g: .910447776, b: .910447776, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .760784328, g: .419607848, b: .75686276, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: .650349617, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: .0215526652, g: .962686539, b: .212411955, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: .955223858, g: .0142570604, b: .191922233, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: .468531609, g: 0, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: .958041668, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: .0349650383, b: 1, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 20 + m_FontStyle: 1 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + m_button: + m_Name: button + m_Normal: + m_Background: {fileID: 11006, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Hover: + m_Background: {fileID: 11003, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11005, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} + m_OnHover: + m_Background: {fileID: 11004, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_toggle: + m_Name: toggle + m_Normal: + m_Background: {fileID: 11018, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .891128957, g: .891128957, b: .891128957, a: 1} + m_Hover: + m_Background: {fileID: 11014, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11013, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11016, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .890196085, g: .890196085, b: .890196085, a: 1} + m_OnHover: + m_Background: {fileID: 11015, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11017, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 14 + m_Right: 0 + m_Top: 14 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 15 + m_Right: 0 + m_Top: 3 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: 0 + m_Top: -4 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_label: + m_Name: label + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: .0220588446, g: .0220588446, b: .0220588446, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textField: + m_Name: textfield + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 3 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textArea: + m_Name: textarea + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_window: + m_Name: window + m_Normal: + m_Background: {fileID: 11023, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11022, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 8 + m_Right: 8 + m_Top: 18 + m_Bottom: 8 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 20 + m_Bottom: 10 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: -18} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSlider: + m_Name: horizontalslider + m_Normal: + m_Background: {fileID: 11009, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -2 + m_Bottom: -3 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSliderThumb: + m_Name: horizontalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 7 + m_Right: 7 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalSlider: + m_Name: verticalslider + m_Normal: + m_Background: {fileID: 11021, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Overflow: + m_Left: -2 + m_Right: -3 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalSliderThumb: + m_Name: verticalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 7 + m_Bottom: 7 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_horizontalScrollbar: + m_Name: horizontalscrollbar + m_Normal: + m_Background: {fileID: 11008, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 9 + m_Right: 9 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 1 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 15 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarThumb: + m_Name: horizontalscrollbarthumb + m_Normal: + m_Background: {fileID: 11007, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 13 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarLeftButton: + m_Name: horizontalscrollbarleftbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarRightButton: + m_Name: horizontalscrollbarrightbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbar: + m_Name: verticalscrollbar + m_Normal: + m_Background: {fileID: 11020, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 9 + m_Bottom: 9 + m_Margin: + m_Left: 1 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarThumb: + m_Name: verticalscrollbarthumb + m_Normal: + m_Background: {fileID: 11019, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 6 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalScrollbarUpButton: + m_Name: verticalscrollbarupbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarDownButton: + m_Name: verticalscrollbardownbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_ScrollView: + m_Name: scrollview + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_CustomStyles: + - m_Name: Track Group Area + m_Normal: + m_Background: {fileID: 2800000, guid: cf6be9ef6d44e3248b6add3a6a0d6040, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Picker + m_Normal: + m_Background: {fileID: 2800000, guid: e00b3eb3c7a67c1479c4b19adbd3525a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: 107e10032d812af4fa810cfd34ff5d4a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: e00b3eb3c7a67c1479c4b19adbd3525a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: 107e10032d812af4fa810cfd34ff5d4a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Add + m_Normal: + m_Background: {fileID: 2800000, guid: 8e41bfd084f9e994ca6817458e5b4bcc, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: c8e5a68bbe60b1b4ab61362718921314, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 7fe006ef65f882746969f9e3efdff2ac, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 8e41bfd084f9e994ca6817458e5b4bcc, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: c8e5a68bbe60b1b4ab61362718921314, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 7fe006ef65f882746969f9e3efdff2ac, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: InspectorIcon + m_Normal: + m_Background: {fileID: 2800000, guid: ef306cc1ca1ab594c9eb30b0fa14d126, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: 5b452ff396025464a901e111931a0ef3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: 5b452ff396025464a901e111931a0ef3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: UpArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 2fa569118ccf65947acb00b43bacc2ab, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: c47d315d69f914c46934b217ba6ed53c, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 5f7fcdab4cb05144ebad970c84d205a3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: c47d315d69f914c46934b217ba6ed53c, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 5f7fcdab4cb05144ebad970c84d205a3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: DownArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 7280ca01f46907b468411abc87dd78b8, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: d0449dff36a47b5408f69b5578c07395, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 5bc07940262a4f147983bd0e1fb023f7, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 7280ca01f46907b468411abc87dd78b8, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: d0449dff36a47b5408f69b5578c07395, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 5bc07940262a4f147983bd0e1fb023f7, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Track Area + m_Normal: + m_Background: {fileID: 2800000, guid: 7ee50b069c122b74c947d50ba84b099b, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Track Item + m_Normal: + m_Background: {fileID: 2800000, guid: 1914cbdb3be0e6f4dbf79535ad1b9982, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 05d20c671907b7046a74b52008bd4648, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: .517241359, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Keyframe + m_Normal: + m_Background: {fileID: 2800000, guid: 8cbc102254d39844a9a524043f60bb0d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Curve + m_Normal: + m_Background: {fileID: 2800000, guid: d99e37366be2f61459e9be68b2ce9584, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CompressVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 88046fc49448f8d43aa97e13dcb24aa6, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: e836d8bc78f90d34eac4aa72d5080444, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: f6b45984b78c2dd43816fd0f6e3cfeb0, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 88046fc49448f8d43aa97e13dcb24aa6, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: e836d8bc78f90d34eac4aa72d5080444, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: f6b45984b78c2dd43816fd0f6e3cfeb0, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ExpandVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 5ad2303f79389ee409a309c54a0eff20, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: eec2a12f247170c4e9d1285048cf34e6, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 5ad2303f79389ee409a309c54a0eff20, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: eec2a12f247170c4e9d1285048cf34e6, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: TangentHandle + m_Normal: + m_Background: {fileID: 2800000, guid: 8cbc102254d39844a9a524043f60bb0d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CurveCanvas + m_Normal: + m_Background: {fileID: 2800000, guid: 836b291c1c024df42a8c6b13185c6189, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: EventItem + m_Normal: + m_Background: {fileID: 2800000, guid: 33f990edbaccd4b44823a6f901c048df, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ShotTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 2d4ce42e942e6ce4fad40dbf1c1a912d, type: 3} + m_TextColor: {r: .87843138, g: .87843138, b: .87843138, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: dffb8cf00b2782d4083c55b840074e71, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: AudioTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 1fa6e808f80a00341b16ac0e966a7974, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: eda0bee1e2196204a92e1ca237716025, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: GlobalTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: a2424c6b58dc1824991bf8efd9cd2b64, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 47c0e04634471d948a66f6a58000b8fb, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: TrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 49be13a938df5674ea790e5f9d41077d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: GlobalTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 4ec826259273c014b8267fc9f79c67bc, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ShotTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: ee756c83f8a4fa44a8c3066c5c03a5dc, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: AudioTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: e23338974b076674fb41ac892e75b7d8, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 7081c752d64ffb04fa1fc3b969c759b9, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: DirectorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 1017482b5750121428827bc46604cd28, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: MultiActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: e70876cac35ff5c4eb0859e8ded4e824, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: KeyframeContext + m_Normal: + m_Background: {fileID: 2800000, guid: a6041ae7e8beba1439cf424c67ff8c59, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ab55b01be6df3e74883519537dcaae8f, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: EditCurveItem + m_Normal: + m_Background: {fileID: 2800000, guid: b0e8033c21d50fb418bc9538999a4e4e, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ae0199d63543d4b4e9a5ddc98aa5d873, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CharacterGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 7bc74ecb3f78dd749808d8a1d4ae4356, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + m_Settings: + m_DoubleClickSelectsWord: 1 + m_TripleClickSelectsLine: 1 + m_CursorColor: {r: 1, g: 1, b: 1, a: 1} + m_CursorFlashSpeed: -1 + m_SelectionColor: {r: 1, g: .384039074, b: 0, a: .699999988} diff --git a/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin.meta b/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin.meta new file mode 100644 index 0000000..98a24bd --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorFreeSkin.guiskin.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 745bcd8364d356b49b7bdbf2d13da658 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png b/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png new file mode 100644 index 0000000..dbb15af Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png differ diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png.meta b/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png.meta new file mode 100644 index 0000000..1d032f6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorGroupIconFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1017482b5750121428827bc46604cd28 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png b/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png new file mode 100644 index 0000000..ddfa76e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png differ diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png.meta b/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png.meta new file mode 100644 index 0000000..278dcd7 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorGroupIconPro.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b1438025fb60cfa46b80b39cc761cf5b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png b/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png new file mode 100644 index 0000000..5c1c246 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png.meta new file mode 100644 index 0000000..39df90f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorGroupIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 726ea1116403c16438b252042d6d006e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin b/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin new file mode 100644 index 0000000..23bd11a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin @@ -0,0 +1,2825 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0} + m_Name: DirectorProSkin + m_EditorClassIdentifier: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_box: + m_Name: box + m_Normal: + m_Background: {fileID: 2800000, guid: 0fc3e590ace08fb4794fddf9eefcf958, type: 3} + m_TextColor: {r: .910447776, g: .910447776, b: .910447776, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .760784328, g: .419607848, b: .75686276, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: .650349617, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: .0215526652, g: .962686539, b: .212411955, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: .955223858, g: .0142570604, b: .191922233, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: .468531609, g: 0, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: .958041668, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: .0349650383, b: 1, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 20 + m_FontStyle: 1 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + m_button: + m_Name: button + m_Normal: + m_Background: {fileID: 11006, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Hover: + m_Background: {fileID: 11003, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11005, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} + m_OnHover: + m_Background: {fileID: 11004, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_toggle: + m_Name: toggle + m_Normal: + m_Background: {fileID: 11018, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .891128957, g: .891128957, b: .891128957, a: 1} + m_Hover: + m_Background: {fileID: 11014, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11013, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11016, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .890196085, g: .890196085, b: .890196085, a: 1} + m_OnHover: + m_Background: {fileID: 11015, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11017, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 14 + m_Right: 0 + m_Top: 14 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 15 + m_Right: 0 + m_Top: 3 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: 0 + m_Top: -4 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_label: + m_Name: label + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: .0220588446, g: .0220588446, b: .0220588446, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textField: + m_Name: textfield + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 3 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textArea: + m_Name: textarea + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_window: + m_Name: window + m_Normal: + m_Background: {fileID: 11023, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11022, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 8 + m_Right: 8 + m_Top: 18 + m_Bottom: 8 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 20 + m_Bottom: 10 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: -18} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSlider: + m_Name: horizontalslider + m_Normal: + m_Background: {fileID: 11009, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -2 + m_Bottom: -3 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSliderThumb: + m_Name: horizontalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 7 + m_Right: 7 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalSlider: + m_Name: verticalslider + m_Normal: + m_Background: {fileID: 11021, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Overflow: + m_Left: -2 + m_Right: -3 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalSliderThumb: + m_Name: verticalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 7 + m_Bottom: 7 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_horizontalScrollbar: + m_Name: horizontalscrollbar + m_Normal: + m_Background: {fileID: 11008, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 9 + m_Right: 9 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 1 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 15 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarThumb: + m_Name: horizontalscrollbarthumb + m_Normal: + m_Background: {fileID: 11007, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 13 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarLeftButton: + m_Name: horizontalscrollbarleftbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarRightButton: + m_Name: horizontalscrollbarrightbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbar: + m_Name: verticalscrollbar + m_Normal: + m_Background: {fileID: 11020, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 9 + m_Bottom: 9 + m_Margin: + m_Left: 1 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarThumb: + m_Name: verticalscrollbarthumb + m_Normal: + m_Background: {fileID: 11019, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 6 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalScrollbarUpButton: + m_Name: verticalscrollbarupbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarDownButton: + m_Name: verticalscrollbardownbutton + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_ScrollView: + m_Name: scrollview + m_Normal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_CustomStyles: + - m_Name: Track Group Area + m_Normal: + m_Background: {fileID: 2800000, guid: a401d070c7fc34a449c55274b1393d73, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Picker + m_Normal: + m_Background: {fileID: 2800000, guid: e00b3eb3c7a67c1479c4b19adbd3525a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: 107e10032d812af4fa810cfd34ff5d4a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: e00b3eb3c7a67c1479c4b19adbd3525a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: 107e10032d812af4fa810cfd34ff5d4a, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Add + m_Normal: + m_Background: {fileID: 2800000, guid: 8e41bfd084f9e994ca6817458e5b4bcc, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: c8e5a68bbe60b1b4ab61362718921314, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 7fe006ef65f882746969f9e3efdff2ac, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 8e41bfd084f9e994ca6817458e5b4bcc, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: c8e5a68bbe60b1b4ab61362718921314, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 7fe006ef65f882746969f9e3efdff2ac, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: InspectorIcon + m_Normal: + m_Background: {fileID: 2800000, guid: ef306cc1ca1ab594c9eb30b0fa14d126, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: 5b452ff396025464a901e111931a0ef3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: 5b452ff396025464a901e111931a0ef3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: UpArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 2fa569118ccf65947acb00b43bacc2ab, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: c47d315d69f914c46934b217ba6ed53c, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 5f7fcdab4cb05144ebad970c84d205a3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: c47d315d69f914c46934b217ba6ed53c, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 5f7fcdab4cb05144ebad970c84d205a3, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: DownArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 7280ca01f46907b468411abc87dd78b8, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 2800000, guid: d0449dff36a47b5408f69b5578c07395, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 2800000, guid: 5bc07940262a4f147983bd0e1fb023f7, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 7280ca01f46907b468411abc87dd78b8, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: d0449dff36a47b5408f69b5578c07395, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 5bc07940262a4f147983bd0e1fb023f7, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Track Area + m_Normal: + m_Background: {fileID: 2800000, guid: d85ef6003b9ef30489810bd70d4b91c2, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Track Item + m_Normal: + m_Background: {fileID: 2800000, guid: a6634f85f8280e44eb311e0a245c8e49, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 97d6f631077c9e84ba46b61b6b468dda, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 1, g: .517241359, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Keyframe + m_Normal: + m_Background: {fileID: 2800000, guid: 8cbc102254d39844a9a524043f60bb0d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: Curve + m_Normal: + m_Background: {fileID: 2800000, guid: d99e37366be2f61459e9be68b2ce9584, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CompressVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 88046fc49448f8d43aa97e13dcb24aa6, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: e836d8bc78f90d34eac4aa72d5080444, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: f6b45984b78c2dd43816fd0f6e3cfeb0, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 88046fc49448f8d43aa97e13dcb24aa6, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: e836d8bc78f90d34eac4aa72d5080444, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: f6b45984b78c2dd43816fd0f6e3cfeb0, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ExpandVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 5ad2303f79389ee409a309c54a0eff20, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: eec2a12f247170c4e9d1285048cf34e6, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 2800000, guid: 5ad2303f79389ee409a309c54a0eff20, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 2800000, guid: eec2a12f247170c4e9d1285048cf34e6, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: TangentHandle + m_Normal: + m_Background: {fileID: 2800000, guid: 8cbc102254d39844a9a524043f60bb0d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CurveCanvas + m_Normal: + m_Background: {fileID: 2800000, guid: 09628668d5c8aa6429a3f30bfbec5561, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: EventItem + m_Normal: + m_Background: {fileID: 2800000, guid: 7f4a8c9dea5f99f4f9218fa2d245d645, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ShotTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 2d4ce42e942e6ce4fad40dbf1c1a912d, type: 3} + m_TextColor: {r: .87843138, g: .87843138, b: .87843138, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: dffb8cf00b2782d4083c55b840074e71, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: AudioTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 1fa6e808f80a00341b16ac0e966a7974, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: eda0bee1e2196204a92e1ca237716025, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: GlobalTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: a2424c6b58dc1824991bf8efd9cd2b64, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 47c0e04634471d948a66f6a58000b8fb, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: TrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 49be13a938df5674ea790e5f9d41077d, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: GlobalTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 4ec826259273c014b8267fc9f79c67bc, type: 3} + m_TextColor: {r: .156862751, g: .156862751, b: .156862751, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ShotTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: ee756c83f8a4fa44a8c3066c5c03a5dc, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: AudioTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: e23338974b076674fb41ac892e75b7d8, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: ActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 97f44645fc725c149951b358d976e5af, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: DirectorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: b1438025fb60cfa46b80b39cc761cf5b, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: MultiActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 38bceffdd92b94b48af3a4d7a2289894, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: KeyframeContext + m_Normal: + m_Background: {fileID: 2800000, guid: a6041ae7e8beba1439cf424c67ff8c59, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ab55b01be6df3e74883519537dcaae8f, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: EditCurveItem + m_Normal: + m_Background: {fileID: 2800000, guid: b0e8033c21d50fb418bc9538999a4e4e, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ae0199d63543d4b4e9a5ddc98aa5d873, type: 3} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 2800000, guid: 34f3774bfacbb544d82c0e1e88fba47f, type: 3} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + - m_Name: CharacterGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: e1d5b61b21a4cd5438b34633a7d1e7b1, type: 3} + m_TextColor: {r: .882352948, g: .882352948, b: .882352948, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_TextColor: {r: .298039228, g: .490196079, b: .823529422, a: 1} + m_Active: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Focused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnNormal: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnHover: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnActive: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_OnFocused: + m_Background: {fileID: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 0} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 3 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 0 + m_Settings: + m_DoubleClickSelectsWord: 1 + m_TripleClickSelectsLine: 1 + m_CursorColor: {r: 1, g: 1, b: 1, a: 1} + m_CursorFlashSpeed: -1 + m_SelectionColor: {r: 1, g: .384039074, b: 0, a: .699999988} diff --git a/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin.meta b/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin.meta new file mode 100644 index 0000000..97d14a9 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DirectorProSkin.guiskin.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 7d602d55d130c224a9ee6c2477ef0e94 +NativeFormatImporter: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png new file mode 100644 index 0000000..4863fe9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png.meta new file mode 100644 index 0000000..b02b173 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorGroupIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 19ee9b42912afbb469a5bed8ccbd95a0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem.png b/Assets/Cinema Director/System/Resources/Director_ActorItem.png new file mode 100644 index 0000000..d15d338 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem.png.meta new file mode 100644 index 0000000..83ed015 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: d844ea1a332f6924f9c450d4e76f69a8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png new file mode 100644 index 0000000..e2e0754 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png.meta new file mode 100644 index 0000000..bbb33d5 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a980d008dc7a4dc4485b0d33456aeeaf +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png new file mode 100644 index 0000000..2757755 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png.meta new file mode 100644 index 0000000..a58aad0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4b1651e891abbe246be67071906b1cac +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png b/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png new file mode 100644 index 0000000..2baefd8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png.meta new file mode 100644 index 0000000..9c96a20 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 10f70d14f9a9e2a48bd0a5107663a8ad +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png new file mode 100644 index 0000000..e8916a5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png.meta new file mode 100644 index 0000000..6fee2a0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: be2203cfe4452184199881d3462e1dad +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png new file mode 100644 index 0000000..900d665 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png.meta new file mode 100644 index 0000000..bfffb14 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ActorItem_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6222d63769bc5f74fa8a03aa9b3283dc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon.png b/Assets/Cinema Director/System/Resources/Director_AddIcon.png new file mode 100644 index 0000000..bae64dd Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AddIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_AddIcon.png.meta new file mode 100644 index 0000000..b9fb7ec --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AddIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0d549b7a473c68e4aa4865af6d75079b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png b/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png new file mode 100644 index 0000000..755242c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png.meta b/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png.meta new file mode 100644 index 0000000..db7845d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AddIcon_Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ce0052364a2350140b539af41e209fd2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png new file mode 100644 index 0000000..45b848b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png.meta new file mode 100644 index 0000000..3f99156 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AddIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ec1b24c70f92c9c439ca3e313be6d3d3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png b/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png new file mode 100644 index 0000000..eea00ea Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png.meta b/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png.meta new file mode 100644 index 0000000..78e831a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AltKeyframe.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8adbaa390ff906b47ba6623cf8f1af42 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioIcon.png b/Assets/Cinema Director/System/Resources/Director_AudioIcon.png new file mode 100644 index 0000000..7d1fa00 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioIcon.png.meta new file mode 100644 index 0000000..92c83f2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5bee3aa360dc8a64c8eb534387767ecb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem.png b/Assets/Cinema Director/System/Resources/Director_AudioItem.png new file mode 100644 index 0000000..c9b9636 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem.png.meta new file mode 100644 index 0000000..78bbd0e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 370ee70a022f21c42acfa9e863ff95ba +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png new file mode 100644 index 0000000..b8f0fac Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png.meta new file mode 100644 index 0000000..a7eb4b8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7bc5f770bafa2e640bd367e48e2efd07 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png new file mode 100644 index 0000000..fe132e1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png.meta new file mode 100644 index 0000000..cd388fc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b21dff45b6d044545ba2871c44c1f2ce +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png b/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png new file mode 100644 index 0000000..a8d6ca7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png.meta new file mode 100644 index 0000000..811521d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: bec33addaffdbc54893b6fc732c7dfff +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png new file mode 100644 index 0000000..7ce0bfb Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png.meta new file mode 100644 index 0000000..7e88052 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 986c2b287a2c1fd4ba70c30741b1cbf8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png new file mode 100644 index 0000000..cdd3e30 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png.meta new file mode 100644 index 0000000..8bbac65 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_AudioItem_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8316d231d8263db42a433c5564e8a354 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Box_Select.png b/Assets/Cinema Director/System/Resources/Director_Box_Select.png new file mode 100644 index 0000000..0e63ab8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Box_Select.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Box_Select.png.meta b/Assets/Cinema Director/System/Resources/Director_Box_Select.png.meta new file mode 100644 index 0000000..a09874d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Box_Select.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8d7e8875ef4c2df47b72299c02b5ea4b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png new file mode 100644 index 0000000..3d6a280 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png.meta new file mode 100644 index 0000000..d2e50a6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CharacterGroupIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ca8403c28fb64e645b40fcae4627bfbd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical.png b/Assets/Cinema Director/System/Resources/Director_CompressVertical.png new file mode 100644 index 0000000..7db926f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CompressVertical.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical.png.meta b/Assets/Cinema Director/System/Resources/Director_CompressVertical.png.meta new file mode 100644 index 0000000..389e6e3 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CompressVertical.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1d16b020a8eb15448993538c88654a64 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png new file mode 100644 index 0000000..84e7bf4 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png.meta b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png.meta new file mode 100644 index 0000000..3e1d896 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6b568da429d5c594b9976d40762f0d91 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png new file mode 100644 index 0000000..d98a1bf Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png.meta new file mode 100644 index 0000000..a505e0b --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CompressVertical_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6ba52ef8683e88048906cecd35ba6344 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png new file mode 100644 index 0000000..ffce9e5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png.meta new file mode 100644 index 0000000..2ba39c7 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 07b43cd2140c232409b92769ddf9e6f0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png new file mode 100644 index 0000000..880d85f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png.meta new file mode 100644 index 0000000..6876edc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveCanvas_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: be31701f9ea425048a16716ab246363d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png new file mode 100644 index 0000000..6ad9336 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png.meta new file mode 100644 index 0000000..94aff62 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b260034127c24c84b83350558de6a23d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png new file mode 100644 index 0000000..3aa782d Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png.meta new file mode 100644 index 0000000..a4b23bf --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a512af9ef903fd24ba3a5e27424ef025 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png new file mode 100644 index 0000000..0d861f2 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png.meta new file mode 100644 index 0000000..976570f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e180d35037da9034ebfa2169490d7e44 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png new file mode 100644 index 0000000..00615a9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png.meta new file mode 100644 index 0000000..2db31b5 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c3288d651f7e3354589494ea9595dc27 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png new file mode 100644 index 0000000..0cdda32 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png.meta new file mode 100644 index 0000000..f8dd3c0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 29bd116b2ea61684d8e9774547e2ba6f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png new file mode 100644 index 0000000..7a591d8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png.meta new file mode 100644 index 0000000..a240b62 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurveClipItem_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 39030d3b25fdff04881c964bb483c8c2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: 2 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png b/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png new file mode 100644 index 0000000..0a4e34b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png.meta new file mode 100644 index 0000000..a762ef1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_CurvesIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2dc2f6021573bb14e99f77c091eda26a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin b/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin new file mode 100644 index 0000000..f2c0d3c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin @@ -0,0 +1,4067 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Director_DarkSkin + m_EditorClassIdentifier: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_box: + m_Name: box + m_Normal: + m_Background: {fileID: 11001, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_button: + m_Name: button + m_Normal: + m_Background: {fileID: 11006, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Hover: + m_Background: {fileID: 11003, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11005, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_OnHover: + m_Background: {fileID: 11004, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_toggle: + m_Name: toggle + m_Normal: + m_Background: {fileID: 11018, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.89112896, g: 0.89112896, b: 0.89112896, a: 1} + m_Hover: + m_Background: {fileID: 11014, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11013, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11016, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8901961, g: 0.8901961, b: 0.8901961, a: 1} + m_OnHover: + m_Background: {fileID: 11015, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11017, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 14 + m_Right: 0 + m_Top: 14 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 15 + m_Right: 0 + m_Top: 3 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: 0 + m_Top: -4 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_label: + m_Name: label + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textField: + m_Name: textfield + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 3 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textArea: + m_Name: textarea + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_window: + m_Name: window + m_Normal: + m_Background: {fileID: 11023, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11022, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 8 + m_Right: 8 + m_Top: 18 + m_Bottom: 8 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 20 + m_Bottom: 10 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: -18} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSlider: + m_Name: horizontalslider + m_Normal: + m_Background: {fileID: 11009, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -2 + m_Bottom: -3 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSliderThumb: + m_Name: horizontalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 7 + m_Right: 7 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalSlider: + m_Name: verticalslider + m_Normal: + m_Background: {fileID: 11021, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Overflow: + m_Left: -2 + m_Right: -3 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalSliderThumb: + m_Name: verticalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 7 + m_Bottom: 7 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_horizontalScrollbar: + m_Name: horizontalscrollbar + m_Normal: + m_Background: {fileID: 11008, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 9 + m_Right: 9 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 1 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 15 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarThumb: + m_Name: horizontalscrollbarthumb + m_Normal: + m_Background: {fileID: 11007, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 13 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarLeftButton: + m_Name: horizontalscrollbarleftbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarRightButton: + m_Name: horizontalscrollbarrightbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbar: + m_Name: verticalscrollbar + m_Normal: + m_Background: {fileID: 11020, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 9 + m_Bottom: 9 + m_Margin: + m_Left: 1 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarThumb: + m_Name: verticalscrollbarthumb + m_Normal: + m_Background: {fileID: 11019, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 6 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalScrollbarUpButton: + m_Name: verticalscrollbarupbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarDownButton: + m_Name: verticalscrollbardownbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_ScrollView: + m_Name: scrollview + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_CustomStyles: + - m_Name: Track Group Area + m_Normal: + m_Background: {fileID: 2800000, guid: 87fb6306f7fdae347976fe236a072971, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackGroupFocused + m_Normal: + m_Background: {fileID: 2800000, guid: 9c122c489fe4e03438e756b9741fc80c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackGroupContentFocused + m_Normal: + m_Background: {fileID: 2800000, guid: 0422394156482404ab5e7b000a86a178, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Track Area + m_Normal: + m_Background: {fileID: 2800000, guid: 9ab6160d3a39c2846a0897030913f094, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackSidebarBG + m_Normal: + m_Background: {fileID: 2800000, guid: cca562ad186061b42b1afbafbb6bc995, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackSidebarBGAlt + m_Normal: + m_Background: {fileID: 2800000, guid: 245afe3afa463b443b813d921ba636d3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Track Item + m_Normal: + m_Background: {fileID: 2800000, guid: d16db209a45f0c046b4c26d152107630, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 950b2226063f8df4ca7b291621cdba34, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 754ea0660e06f0346bf2d691ca8a810d, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 754ea0660e06f0346bf2d691ca8a810d, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Padding: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ShotTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 27cb1f3ad0c33cf46b0f21f3c990522d, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8745098, g: 0.8745098, b: 0.8745098, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: c1f1c0af533c4e14e842a4530106e72a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8745098, g: 0.8745098, b: 0.8745098, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ShotTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 1323d9c2278e0b94eae9ea4502722cf7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 1323d9c2278e0b94eae9ea4502722cf7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: AudioTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: bec33addaffdbc54893b6fc732c7dfff, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: b21dff45b6d044545ba2871c44c1f2ce, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: AudioTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 8316d231d8263db42a433c5564e8a354, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 8316d231d8263db42a433c5564e8a354, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: GlobalTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: eb9b3c16ae9fd1442b75c7d762f7083c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 912e270fe7d0e3b4995c53d907819d87, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: GlobalTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 51d8b6fbf36514f43a40d1804c73d8af, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 51d8b6fbf36514f43a40d1804c73d8af, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 10f70d14f9a9e2a48bd0a5107663a8ad, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 4b1651e891abbe246be67071906b1cac, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 6222d63769bc5f74fa8a03aa9b3283dc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 6222d63769bc5f74fa8a03aa9b3283dc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: c3288d651f7e3354589494ea9595dc27, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: e180d35037da9034ebfa2169490d7e44, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 39030d3b25fdff04881c964bb483c8c2, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 39030d3b25fdff04881c964bb483c8c2, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: EventItem + m_Normal: + m_Background: {fileID: 2800000, guid: e43557ad089b6bb4db2ab4aca5ff0f83, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: EventItemBottom + m_Normal: + m_Background: {fileID: 2800000, guid: 9043708d9a879194aa472b9539323db0, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 2 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveCanvas + m_Normal: + m_Background: {fileID: 2800000, guid: be31701f9ea425048a16716ab246363d, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.25882354, g: 0.42745098, b: 0.7176471, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Curve + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Keyframe + m_Normal: + m_Background: {fileID: 2800000, guid: 5bbc8d1b9a4c6274e846b07bb135a9ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 5bbc8d1b9a4c6274e846b07bb135a9ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TangentHandle + m_Normal: + m_Background: {fileID: 2800000, guid: 8adbaa390ff906b47ba6623cf8f1af42, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: BoxSelect + m_Normal: + m_Background: {fileID: 2800000, guid: 8d7e8875ef4c2df47b72299c02b5ea4b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Picker + m_Normal: + m_Background: {fileID: 2800000, guid: 2487072ade4b49b4b8fdb3a78ebf10bc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 8453d0c9346ce444cbfe20da242867a5, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Add + m_Normal: + m_Background: {fileID: 2800000, guid: 0d549b7a473c68e4aa4865af6d75079b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ec1b24c70f92c9c439ca3e313be6d3d3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: ce0052364a2350140b539af41e209fd2, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: LockItemLRG + m_Normal: + m_Background: {fileID: 2800000, guid: 5b574057fab6d8647be9c988499e9411, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d2204957686e4784d8df3baf9ac11290, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UnlockItemLRG + m_Normal: + m_Background: {fileID: 2800000, guid: 9e72892c4b2592e4aba0449d90a456db, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d1e7ce9b68e83e046ae6853246a3901c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: LockItemSM + m_Normal: + m_Background: {fileID: 2800000, guid: 81fbab028397e824a8990b9a4d37db84, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 9ce4a4da4bd109c4d953ea6d3cbbba2a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UnlockItemSM + m_Normal: + m_Background: {fileID: 2800000, guid: 46345a3b164d7cb40853ef692e8d4456, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 31fe36b5f2e3fc040bd6e2946bc089e9, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: InspectorIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 76ff1d919d00d034c954d67a6fc455be, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 5c3bd48ad42de2a45be29738e22f14ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UpArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 29235d98bdc0cff4491234dc73fc85d6, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 784b247fa2a5d8746833b561a9dc5fe3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 8492da4d1bbf9444ab559f34639f0d29, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: DownArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: c0dc802dcd9d8124f9274f9fada5d159, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: f7e1c8c88db126441bc532205ca597b3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 4d4f4191be6501641a6e2b2a44ed1de7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CompressVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 1d16b020a8eb15448993538c88654a64, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 6ba52ef8683e88048906cecd35ba6344, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 6b568da429d5c594b9976d40762f0d91, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ExpandVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 9732fdbf1cff7444285daff0f59a895a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: f5f5b0a8c8539014f8fca66a971305cd, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 8dd587cb997b41347b99eb880cd71002, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 19ee9b42912afbb469a5bed8ccbd95a0, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: DirectorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 726ea1116403c16438b252042d6d006e, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: MultiActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 2a71ea7c755dfa14e80bc70881d3bc65, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CharacterGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: ca8403c28fb64e645b40fcae4627bfbd, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: KeyframeContext + m_Normal: + m_Background: {fileID: 2800000, guid: 8043094928b5ff04b8f1773a30b8002c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ca86822b56f7c3c45a2420b7c18c93a4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.25882354, g: 0.42745098, b: 0.7176471, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: ca86822b56f7c3c45a2420b7c18c93a4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_Settings: + m_DoubleClickSelectsWord: 1 + m_TripleClickSelectsLine: 1 + m_CursorColor: {r: 1, g: 1, b: 1, a: 1} + m_CursorFlashSpeed: -1 + m_SelectionColor: {r: 1, g: 0.38403907, b: 0, a: 0.7} diff --git a/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin.meta b/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin.meta new file mode 100644 index 0000000..fb9736d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_DarkSkin.guiskin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec081126e6056e14fa4001b642776b1a +timeCreated: 1455834088 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png new file mode 100644 index 0000000..c807c4e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png.meta new file mode 100644 index 0000000..95f0637 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c0dc802dcd9d8124f9274f9fada5d159 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png new file mode 100644 index 0000000..a02458e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png.meta b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png.meta new file mode 100644 index 0000000..601632a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4d4f4191be6501641a6e2b2a44ed1de7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png new file mode 100644 index 0000000..c5997cf Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png.meta new file mode 100644 index 0000000..31aedf2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_DownArrowIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f7e1c8c88db126441bc532205ca597b3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png b/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png new file mode 100644 index 0000000..75b722c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png.meta b/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png.meta new file mode 100644 index 0000000..207b424 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Duration_Playhead.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8a3c42836a1b4e3419a3b41e9f7c8018 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_EditIcon.png b/Assets/Cinema Director/System/Resources/Director_EditIcon.png new file mode 100644 index 0000000..cd81804 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_EditIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_EditIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_EditIcon.png.meta new file mode 100644 index 0000000..66a430a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_EditIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1f721441a6c27874498159124bca5c1e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png new file mode 100644 index 0000000..258a6aa Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png.meta new file mode 100644 index 0000000..49c308d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_EditIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0daf7a9208135834a8fcc74fc7a11daa +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png b/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png new file mode 100644 index 0000000..c23b5b3 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png.meta new file mode 100644 index 0000000..49c7a29 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_EventItemBottom_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9043708d9a879194aa472b9539323db0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png b/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png new file mode 100644 index 0000000..21f3fca Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png.meta new file mode 100644 index 0000000..f498615 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_EventItem_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e43557ad089b6bb4db2ab4aca5ff0f83 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png b/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png new file mode 100644 index 0000000..c8926be Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png.meta new file mode 100644 index 0000000..f79de93 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_EventItem_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e200ecf02e7fea64bba125d82d15d314 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png b/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png new file mode 100644 index 0000000..db48e87 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png.meta b/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png.meta new file mode 100644 index 0000000..cc1a946 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ExpandVertical.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9732fdbf1cff7444285daff0f59a895a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png new file mode 100644 index 0000000..da8d584 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png.meta b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png.meta new file mode 100644 index 0000000..f2bae39 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8dd587cb997b41347b99eb880cd71002 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png new file mode 100644 index 0000000..64b59e7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png.meta new file mode 100644 index 0000000..be0c2a4 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ExpandVertical_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f5f5b0a8c8539014f8fca66a971305cd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png b/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png new file mode 100644 index 0000000..c642303 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png.meta new file mode 100644 index 0000000..e75824d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_FrameBackwardIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: fbb4bd563b0988e4483c5d11d74a8ba2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png b/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png new file mode 100644 index 0000000..e3caf5b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png.meta new file mode 100644 index 0000000..b6debfe --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_FrameForwardIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b61216cb44ba06b44bb51df3af03a42a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem.png new file mode 100644 index 0000000..d56cd5e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem.png.meta new file mode 100644 index 0000000..1e09ba2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 68a88ce7419c4a74ca96d0e8fb9119ac +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png new file mode 100644 index 0000000..8bd079d Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png.meta new file mode 100644 index 0000000..67992db --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a9dae9f21db094e4aad792b6f1cb2191 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png new file mode 100644 index 0000000..055903e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png.meta new file mode 100644 index 0000000..cfb0439 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 912e270fe7d0e3b4995c53d907819d87 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png new file mode 100644 index 0000000..9d02fd4 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png.meta new file mode 100644 index 0000000..cff880c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: eb9b3c16ae9fd1442b75c7d762f7083c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png new file mode 100644 index 0000000..c0ccf14 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png.meta new file mode 100644 index 0000000..a7e93c1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 96a5bb79e5c3e5a4c92243f4765809e1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png new file mode 100644 index 0000000..099921f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png.meta new file mode 100644 index 0000000..001ad97 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_GlobalItem_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 51d8b6fbf36514f43a40d1804c73d8af +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png new file mode 100644 index 0000000..2f4c38a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png.meta new file mode 100644 index 0000000..89a27db --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0e825d82c9b377b4abd4b9d3f2da4c36 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png new file mode 100644 index 0000000..1b3299a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png.meta new file mode 100644 index 0000000..2c761ea --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_HorizontalRescaleIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0b0bdc2b02118c8499054e38257d5f4d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png b/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png new file mode 100644 index 0000000..ef9ab4b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png.meta new file mode 100644 index 0000000..dfc10cc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Icon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4ffa0ed4176f1a848ae84eb85b721e6b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Icon_Light.png b/Assets/Cinema Director/System/Resources/Director_Icon_Light.png new file mode 100644 index 0000000..8483c06 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Icon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Icon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_Icon_Light.png.meta new file mode 100644 index 0000000..9383554 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Icon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b3fb5b7d09f020b489774b5de0395783 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png b/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png new file mode 100644 index 0000000..956add9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png.meta new file mode 100644 index 0000000..d558dd8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_InspectorIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 76ff1d919d00d034c954d67a6fc455be +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png new file mode 100644 index 0000000..1bdff39 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png.meta new file mode 100644 index 0000000..07e31c1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_InspectorIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5c3bd48ad42de2a45be29738e22f14ea +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Keyframe.png b/Assets/Cinema Director/System/Resources/Director_Keyframe.png new file mode 100644 index 0000000..134c9c1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Keyframe.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Keyframe.png.meta b/Assets/Cinema Director/System/Resources/Director_Keyframe.png.meta new file mode 100644 index 0000000..5e01e52 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Keyframe.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5bbc8d1b9a4c6274e846b07bb135a9ea +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png b/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png new file mode 100644 index 0000000..3b29994 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png.meta b/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png.meta new file mode 100644 index 0000000..8039afc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_KeyframeBackground.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ca86822b56f7c3c45a2420b7c18c93a4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png b/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png new file mode 100644 index 0000000..ad3bdd6 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png.meta b/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png.meta new file mode 100644 index 0000000..58a4c93 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_KeyframeOffset.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8043094928b5ff04b8f1773a30b8002c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin b/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin new file mode 100644 index 0000000..75cb843 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin @@ -0,0 +1,4067 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0} + m_Name: Director_LightSkin + m_EditorClassIdentifier: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_box: + m_Name: box + m_Normal: + m_Background: {fileID: 11001, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_button: + m_Name: button + m_Normal: + m_Background: {fileID: 11006, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Hover: + m_Background: {fileID: 11003, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11005, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_OnHover: + m_Background: {fileID: 11004, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 4 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_toggle: + m_Name: toggle + m_Normal: + m_Background: {fileID: 11018, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.89112896, g: 0.89112896, b: 0.89112896, a: 1} + m_Hover: + m_Background: {fileID: 11014, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Active: + m_Background: {fileID: 11013, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11016, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8901961, g: 0.8901961, b: 0.8901961, a: 1} + m_OnHover: + m_Background: {fileID: 11015, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnActive: + m_Background: {fileID: 11017, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 14 + m_Right: 0 + m_Top: 14 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 15 + m_Right: 0 + m_Top: 3 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: 0 + m_Top: -4 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_label: + m_Name: label + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textField: + m_Name: textfield + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9, g: 0.9, b: 0.9, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 3 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_textArea: + m_Name: textarea + m_Normal: + m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_Hover: + m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.79999995, g: 0.79999995, b: 0.79999995, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 1 + m_RichText: 0 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_window: + m_Name: window + m_Normal: + m_Background: {fileID: 11023, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 11022, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 1, g: 1, b: 1, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 8 + m_Right: 8 + m_Top: 18 + m_Bottom: 8 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 20 + m_Bottom: 10 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 1 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: -18} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSlider: + m_Name: horizontalslider + m_Normal: + m_Background: {fileID: 11009, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -2 + m_Bottom: -3 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalSliderThumb: + m_Name: horizontalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 4 + m_Right: 4 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 7 + m_Right: 7 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 12 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalSlider: + m_Name: verticalslider + m_Normal: + m_Background: {fileID: 11021, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Overflow: + m_Left: -2 + m_Right: -3 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalSliderThumb: + m_Name: verticalsliderthumb + m_Normal: + m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 7 + m_Bottom: 7 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: -1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 12 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_horizontalScrollbar: + m_Name: horizontalscrollbar + m_Normal: + m_Background: {fileID: 11008, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 9 + m_Right: 9 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 4 + m_Right: 4 + m_Top: 1 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 15 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarThumb: + m_Name: horizontalscrollbarthumb + m_Normal: + m_Background: {fileID: 11007, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 6 + m_Right: 6 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: -1 + m_Bottom: 1 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 13 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarLeftButton: + m_Name: horizontalscrollbarleftbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_horizontalScrollbarRightButton: + m_Name: horizontalscrollbarrightbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbar: + m_Name: verticalscrollbar + m_Normal: + m_Background: {fileID: 11020, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 9 + m_Bottom: 9 + m_Margin: + m_Left: 1 + m_Right: 4 + m_Top: 4 + m_Bottom: 4 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarThumb: + m_Name: verticalscrollbarthumb + m_Normal: + m_Background: {fileID: 11019, guid: 0000000000000000e000000000000000, type: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 6 + m_Right: 6 + m_Top: 6 + m_Bottom: 6 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 6 + m_Bottom: 6 + m_Overflow: + m_Left: -1 + m_Right: -1 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 2 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 15 + m_FixedHeight: 0 + m_StretchWidth: 0 + m_StretchHeight: 1 + m_verticalScrollbarUpButton: + m_Name: verticalscrollbarupbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_verticalScrollbarDownButton: + m_Name: verticalscrollbardownbutton + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_ScrollView: + m_Name: scrollview + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 1 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_CustomStyles: + - m_Name: Track Group Area + m_Normal: + m_Background: {fileID: 2800000, guid: 3f0af44904106ca48807c17f0cc19c2e, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackGroupFocused + m_Normal: + m_Background: {fileID: 2800000, guid: af51f10a28109444d974381cd4e99cfc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackGroupContentFocused + m_Normal: + m_Background: {fileID: 2800000, guid: b2faa35c1046f474aac72b1b3a5656de, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Track Area + m_Normal: + m_Background: {fileID: 2800000, guid: 2d0774b650c8e0a4ea2acd5ec3c9e51b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackSidebarBG + m_Normal: + m_Background: {fileID: 2800000, guid: 8644b9d59566d92438e1402be162b8e5, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackSidebarBGAlt + m_Normal: + m_Background: {fileID: 2800000, guid: 56a3d7051e7551f42bce342beb191772, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Track Item + m_Normal: + m_Background: {fileID: 2800000, guid: 9cc7a1e4fd613f6408f765d09d6e6c30, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 22b2d49c4aa49de42a707ff69f4816f9, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 1f0a25d4fdaa17a49a5bc01db27ac16f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 1f0a25d4fdaa17a49a5bc01db27ac16f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Padding: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ShotTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 2262874ded79db24396dc242d9ec83d7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8745098, g: 0.8745098, b: 0.8745098, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: eb6e30cd0f5e9a54e8d75f9f5d78186c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8745098, g: 0.8745098, b: 0.8745098, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ShotTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 96c9c9146d682014faf1dca26f696eeb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 96c9c9146d682014faf1dca26f696eeb, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: AudioTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 370ee70a022f21c42acfa9e863ff95ba, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 7bc5f770bafa2e640bd367e48e2efd07, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: AudioTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 986c2b287a2c1fd4ba70c30741b1cbf8, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 986c2b287a2c1fd4ba70c30741b1cbf8, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: GlobalTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: 68a88ce7419c4a74ca96d0e8fb9119ac, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: a9dae9f21db094e4aad792b6f1cb2191, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: GlobalTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 96a5bb79e5c3e5a4c92243f4765809e1, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.7019608, g: 0.7019608, b: 0.7019608, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 96a5bb79e5c3e5a4c92243f4765809e1, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: d844ea1a332f6924f9c450d4e76f69a8, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: a980d008dc7a4dc4485b0d33456aeeaf, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: be2203cfe4452184199881d3462e1dad, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: be2203cfe4452184199881d3462e1dad, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveTrackItem + m_Normal: + m_Background: {fileID: 2800000, guid: b260034127c24c84b83350558de6a23d, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: a512af9ef903fd24ba3a5e27424ef025, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveTrackItemSelected + m_Normal: + m_Background: {fileID: 2800000, guid: 29bd116b2ea61684d8e9774547e2ba6f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 29bd116b2ea61684d8e9774547e2ba6f, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.99607843, g: 0.99607843, b: 0.99607843, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: EventItem + m_Normal: + m_Background: {fileID: 2800000, guid: e43557ad089b6bb4db2ab4aca5ff0f83, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: EventItemBottom + m_Normal: + m_Background: {fileID: 2800000, guid: 9043708d9a879194aa472b9539323db0, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 2 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CurveCanvas + m_Normal: + m_Background: {fileID: 2800000, guid: 07b43cd2140c232409b92769ddf9e6f0, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.25882354, g: 0.42745098, b: 0.7176471, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 1 + m_Right: 1 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Curve + m_Normal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Keyframe + m_Normal: + m_Background: {fileID: 2800000, guid: 5bbc8d1b9a4c6274e846b07bb135a9ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 5bbc8d1b9a4c6274e846b07bb135a9ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: TangentHandle + m_Normal: + m_Background: {fileID: 2800000, guid: 8adbaa390ff906b47ba6623cf8f1af42, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: BoxSelect + m_Normal: + m_Background: {fileID: 2800000, guid: 8d7e8875ef4c2df47b72299c02b5ea4b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Picker + m_Normal: + m_Background: {fileID: 2800000, guid: 2487072ade4b49b4b8fdb3a78ebf10bc, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 8453d0c9346ce444cbfe20da242867a5, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: Add + m_Normal: + m_Background: {fileID: 2800000, guid: 0d549b7a473c68e4aa4865af6d75079b, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ec1b24c70f92c9c439ca3e313be6d3d3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: ce0052364a2350140b539af41e209fd2, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: LockItemLRG + m_Normal: + m_Background: {fileID: 2800000, guid: 5b574057fab6d8647be9c988499e9411, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d2204957686e4784d8df3baf9ac11290, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UnlockItemLRG + m_Normal: + m_Background: {fileID: 2800000, guid: 9e72892c4b2592e4aba0449d90a456db, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: d1e7ce9b68e83e046ae6853246a3901c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: LockItemSM + m_Normal: + m_Background: {fileID: 2800000, guid: 81fbab028397e824a8990b9a4d37db84, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 9ce4a4da4bd109c4d953ea6d3cbbba2a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UnlockItemSM + m_Normal: + m_Background: {fileID: 2800000, guid: 46345a3b164d7cb40853ef692e8d4456, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 31fe36b5f2e3fc040bd6e2946bc089e9, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: InspectorIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 76ff1d919d00d034c954d67a6fc455be, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 5c3bd48ad42de2a45be29738e22f14ea, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: UpArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 29235d98bdc0cff4491234dc73fc85d6, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 784b247fa2a5d8746833b561a9dc5fe3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 8492da4d1bbf9444ab559f34639f0d29, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: DownArrowIcon + m_Normal: + m_Background: {fileID: 2800000, guid: c0dc802dcd9d8124f9274f9fada5d159, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: f7e1c8c88db126441bc532205ca597b3, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 4d4f4191be6501641a6e2b2a44ed1de7, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_Margin: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CompressVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 1d16b020a8eb15448993538c88654a64, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: 6ba52ef8683e88048906cecd35ba6344, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 6b568da429d5c594b9976d40762f0d91, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ExpandVertical + m_Normal: + m_Background: {fileID: 2800000, guid: 9732fdbf1cff7444285daff0f59a895a, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: f5f5b0a8c8539014f8fca66a971305cd, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: 8dd587cb997b41347b99eb880cd71002, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: ActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 19ee9b42912afbb469a5bed8ccbd95a0, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: DirectorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 726ea1116403c16438b252042d6d006e, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: MultiActorGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: 2a71ea7c755dfa14e80bc70881d3bc65, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: CharacterGroupIcon + m_Normal: + m_Background: {fileID: 2800000, guid: ca8403c28fb64e645b40fcae4627bfbd, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.29803923, g: 0.49019608, b: 0.81960785, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + - m_Name: KeyframeContext + m_Normal: + m_Background: {fileID: 2800000, guid: 8043094928b5ff04b8f1773a30b8002c, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} + m_Hover: + m_Background: {fileID: 2800000, guid: ca86822b56f7c3c45a2420b7c18c93a4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0.25882354, g: 0.42745098, b: 0.7176471, a: 1} + m_Active: + m_Background: {fileID: 2800000, guid: ca86822b56f7c3c45a2420b7c18c93a4, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 2 + m_Right: 2 + m_Top: 1 + m_Bottom: 1 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 + m_Settings: + m_DoubleClickSelectsWord: 1 + m_TripleClickSelectsLine: 1 + m_CursorColor: {r: 1, g: 1, b: 1, a: 1} + m_CursorFlashSpeed: -1 + m_SelectionColor: {r: 1, g: 0.38403907, b: 0, a: 0.7} diff --git a/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin.meta b/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin.meta new file mode 100644 index 0000000..c264448 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LightSkin.guiskin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 12ee070159c3c5c4f9e1d18340c62991 +timeCreated: 1455834088 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png new file mode 100644 index 0000000..4b6b6f8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png.meta new file mode 100644 index 0000000..f5b28bf --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LockIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 054ce6342ab674d4bbe2a78ba2e54608 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png new file mode 100644 index 0000000..b94cc9a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png.meta new file mode 100644 index 0000000..fe487e5 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 81fbab028397e824a8990b9a4d37db84 +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png new file mode 100644 index 0000000..75c9bbc Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png.meta new file mode 100644 index 0000000..717ff69 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LockedIconSmall_Dark_Hover.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 9ce4a4da4bd109c4d953ea6d3cbbba2a +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png new file mode 100644 index 0000000..cf5327d Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png.meta new file mode 100644 index 0000000..92e48be --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 5b574057fab6d8647be9c988499e9411 +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png new file mode 100644 index 0000000..3fb73ff Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png.meta new file mode 100644 index 0000000..132e8c5 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_LockedIcon_Dark_Hover.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: d2204957686e4784d8df3baf9ac11290 +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png b/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png new file mode 100644 index 0000000..a73e04a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png.meta new file mode 100644 index 0000000..c964228 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Magnet_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f4f04f8cdc5f783418b8c7e55873f064 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png b/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png new file mode 100644 index 0000000..2c5e6f7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png.meta new file mode 100644 index 0000000..e443dc8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Magnet_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c4c4c2fd8fe295542af43e4dc0741c79 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png new file mode 100644 index 0000000..3124bc3 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png.meta new file mode 100644 index 0000000..f02c552 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7168a0dad6596e443860bf734c93139a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png new file mode 100644 index 0000000..330453c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png.meta new file mode 100644 index 0000000..a5eaa87 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_MultiGroupIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2a71ea7c755dfa14e80bc70881d3bc65 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PauseIcon.png b/Assets/Cinema Director/System/Resources/Director_PauseIcon.png new file mode 100644 index 0000000..bd45881 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PauseIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PauseIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_PauseIcon.png.meta new file mode 100644 index 0000000..a87a2ab --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PauseIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 6fb44b14d98240440b6a38a4026fbe90 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon.png b/Assets/Cinema Director/System/Resources/Director_PickerIcon.png new file mode 100644 index 0000000..2ec8121 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PickerIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_PickerIcon.png.meta new file mode 100644 index 0000000..f160aeb --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PickerIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2487072ade4b49b4b8fdb3a78ebf10bc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png new file mode 100644 index 0000000..f994291 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png.meta new file mode 100644 index 0000000..0b70047 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 55ba675d1598a914b9cddc348254e51b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png new file mode 100644 index 0000000..3d307c2 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png.meta new file mode 100644 index 0000000..eac64a1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8453d0c9346ce444cbfe20da242867a5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png new file mode 100644 index 0000000..b7e0b77 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png.meta new file mode 100644 index 0000000..bd390c3 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PickerIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ffe4fa7e9a88b7c44b255ce68e4ffa64 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_PlayIcon.png b/Assets/Cinema Director/System/Resources/Director_PlayIcon.png new file mode 100644 index 0000000..433e85b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_PlayIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_PlayIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_PlayIcon.png.meta new file mode 100644 index 0000000..e102827 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_PlayIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9ce55bdf21eccd849b3576bc11d77565 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Playhead.png b/Assets/Cinema Director/System/Resources/Director_Playhead.png new file mode 100644 index 0000000..df29516 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Playhead.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Playhead.png.meta b/Assets/Cinema Director/System/Resources/Director_Playhead.png.meta new file mode 100644 index 0000000..97b0086 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Playhead.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 58a9a92fbd806804983602971a51190b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png new file mode 100644 index 0000000..09fff00 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png.meta new file mode 100644 index 0000000..827ba3a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c2ba39f5ef564574db7a19413d218f5d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png new file mode 100644 index 0000000..f3d3ba1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png.meta new file mode 100644 index 0000000..b47d460 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_RefreshIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4cf7a255eb1125e4ea722f25cd9508a2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png new file mode 100644 index 0000000..b5b0ddf Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png.meta new file mode 100644 index 0000000..846cc9f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7afddfe9dfab2cb4c80daa42324330da +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png new file mode 100644 index 0000000..41bcc4c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png.meta new file mode 100644 index 0000000..35d6ede --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Resize_Crop_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: fb927d25c06f43b46adce6cc37c6fddc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png new file mode 100644 index 0000000..0f43b0c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png.meta new file mode 100644 index 0000000..5f5a625 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 33158fcc79553184d9237ff1ec874700 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png new file mode 100644 index 0000000..5bac841 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png.meta new file mode 100644 index 0000000..570dc21 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Resize_Scale_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9c483238287a3184781d337a9e9d8b31 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_RippleIcon.png b/Assets/Cinema Director/System/Resources/Director_RippleIcon.png new file mode 100644 index 0000000..689ba2c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_RippleIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_RippleIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_RippleIcon.png.meta new file mode 100644 index 0000000..19a0fc0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_RippleIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0ef66ad3db051ee4c8eee71a7c6673ce +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_RollingIcon.png b/Assets/Cinema Director/System/Resources/Director_RollingIcon.png new file mode 100644 index 0000000..308ae3b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_RollingIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_RollingIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_RollingIcon.png.meta new file mode 100644 index 0000000..ac39927 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_RollingIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e866ff9c91860124d9feefc5a3bffa13 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png new file mode 100644 index 0000000..e2a5792 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png.meta new file mode 100644 index 0000000..136ac04 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 02334dea10173c449a6b15efb0e5eddb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png new file mode 100644 index 0000000..f73ecbf Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png.meta new file mode 100644 index 0000000..23d25d0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_SettingsIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9c266ee0779e7734194fdc4e903f768f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot.png b/Assets/Cinema Director/System/Resources/Director_Shot.png new file mode 100644 index 0000000..bb11f92 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot.png.meta new file mode 100644 index 0000000..2301c26 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2262874ded79db24396dc242d9ec83d7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ShotIcon.png b/Assets/Cinema Director/System/Resources/Director_ShotIcon.png new file mode 100644 index 0000000..e0e705c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ShotIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ShotIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_ShotIcon.png.meta new file mode 100644 index 0000000..c23819e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ShotIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 09f92b86fea94524a82c8a8d40a71f6d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png b/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png new file mode 100644 index 0000000..1fb9d01 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png.meta new file mode 100644 index 0000000..abc8509 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: eb6e30cd0f5e9a54e8d75f9f5d78186c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png new file mode 100644 index 0000000..570addd Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png.meta new file mode 100644 index 0000000..18f2208 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c1f1c0af533c4e14e842a4530106e72a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png b/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png new file mode 100644 index 0000000..0d1fdef Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png.meta new file mode 100644 index 0000000..1a56e9e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 27cb1f3ad0c33cf46b0f21f3c990522d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png b/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png new file mode 100644 index 0000000..e6c6839 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png.meta new file mode 100644 index 0000000..f5b99a1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 96c9c9146d682014faf1dca26f696eeb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png new file mode 100644 index 0000000..986a4dc Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png.meta new file mode 100644 index 0000000..26e55e6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Shot_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1323d9c2278e0b94eae9ea4502722cf7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png b/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png new file mode 100644 index 0000000..85fef57 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png.meta b/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png.meta new file mode 100644 index 0000000..929bce4 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_SolidKeyframe.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 28eb07a1078807d4ebbf1b2db75cb419 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_StopIcon.png b/Assets/Cinema Director/System/Resources/Director_StopIcon.png new file mode 100644 index 0000000..7fb5abb Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_StopIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_StopIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_StopIcon.png.meta new file mode 100644 index 0000000..c7910ed --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_StopIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8391485bd4c31e24cb717ba6a857d39a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png b/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png new file mode 100644 index 0000000..3105ac9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png.meta new file mode 100644 index 0000000..f7817a8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackArea_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9ab6160d3a39c2846a0897030913f094 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png b/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png new file mode 100644 index 0000000..eab7691 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png.meta new file mode 100644 index 0000000..188cd05 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackArea_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2d0774b650c8e0a4ea2acd5ec3c9e51b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png new file mode 100644 index 0000000..812cb22 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png.meta new file mode 100644 index 0000000..b631858 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 87fb6306f7fdae347976fe236a072971 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png new file mode 100644 index 0000000..a336ee5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png.meta new file mode 100644 index 0000000..273ad84 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Dark_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0422394156482404ab5e7b000a86a178 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png new file mode 100644 index 0000000..69de107 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png.meta new file mode 100644 index 0000000..10a53c8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 3f0af44904106ca48807c17f0cc19c2e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png new file mode 100644 index 0000000..bc777da Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png.meta new file mode 100644 index 0000000..19d5940 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroupArea_Light_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b2faa35c1046f474aac72b1b3a5656de +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png new file mode 100644 index 0000000..4b219ca Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png.meta new file mode 100644 index 0000000..75e026d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: af51f10a28109444d974381cd4e99cfc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png new file mode 100644 index 0000000..2c5898f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png.meta new file mode 100644 index 0000000..fb8a275 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackGroup_BG_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9c122c489fe4e03438e756b9741fc80c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem.png b/Assets/Cinema Director/System/Resources/Director_TrackItem.png new file mode 100644 index 0000000..9a4e89b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem.png.meta new file mode 100644 index 0000000..4b156a6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9cc7a1e4fd613f6408f765d09d6e6c30 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png new file mode 100644 index 0000000..9f2db7a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png.meta new file mode 100644 index 0000000..2c9aca4 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 22b2d49c4aa49de42a707ff69f4816f9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png new file mode 100644 index 0000000..9f3105b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png.meta new file mode 100644 index 0000000..b9a764b --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Hover_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 950b2226063f8df4ca7b291621cdba34 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png new file mode 100644 index 0000000..491dc4d Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png.meta new file mode 100644 index 0000000..e00efdb --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Overlay.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: f6d90f08027ba3548bc37d06ec09fa14 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png new file mode 100644 index 0000000..acb4a8e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png.meta new file mode 100644 index 0000000..1e6e6e7 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: d16db209a45f0c046b4c26d152107630 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png new file mode 100644 index 0000000..ba2ab7a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png.meta new file mode 100644 index 0000000..13d4397 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1f0a25d4fdaa17a49a5bc01db27ac16f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png new file mode 100644 index 0000000..06ef396 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png.meta new file mode 100644 index 0000000..edeb0b0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_TrackItem_Selected_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 754ea0660e06f0346bf2d691ca8a810d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png new file mode 100644 index 0000000..89cfe7b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png.meta b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png.meta new file mode 100644 index 0000000..4d312d3 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 56a3d7051e7551f42bce342beb191772 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png new file mode 100644 index 0000000..0b429b1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png.meta new file mode 100644 index 0000000..d91fbad --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG1_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 245afe3afa463b443b813d921ba636d3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png new file mode 100644 index 0000000..0430aa9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png.meta b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png.meta new file mode 100644 index 0000000..2592c5e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8644b9d59566d92438e1402be162b8e5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png new file mode 100644 index 0000000..a09d899 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png.meta b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png.meta new file mode 100644 index 0000000..02ade45 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_Track_Sidebar_BG2_Personal.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: cca562ad186061b42b1afbafbb6bc995 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png new file mode 100644 index 0000000..2dff823 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png.meta new file mode 100644 index 0000000..4c79300 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 30ba238859e1fe749b63db0a43764215 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png new file mode 100644 index 0000000..d910596 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png.meta new file mode 100644 index 0000000..b7ef2f2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 46345a3b164d7cb40853ef692e8d4456 +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png new file mode 100644 index 0000000..61fe450 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png.meta new file mode 100644 index 0000000..bf3c0dc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UnlockedIconSmall_Dark_Hover.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 31fe36b5f2e3fc040bd6e2946bc089e9 +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png new file mode 100644 index 0000000..f07a042 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png.meta new file mode 100644 index 0000000..3c79b2c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 9e72892c4b2592e4aba0449d90a456db +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png new file mode 100644 index 0000000..d82b2b4 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png.meta new file mode 100644 index 0000000..1c79682 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UnlockedIcon_Dark_Hover.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: d1e7ce9b68e83e046ae6853246a3901c +timeCreated: 1455833992 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png new file mode 100644 index 0000000..cecc883 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png.meta b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png.meta new file mode 100644 index 0000000..f3b7e64 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 29235d98bdc0cff4491234dc73fc85d6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png new file mode 100644 index 0000000..7c91b10 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png.meta b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png.meta new file mode 100644 index 0000000..3852efd --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8492da4d1bbf9444ab559f34639f0d29 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png new file mode 100644 index 0000000..f751f61 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png.meta b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png.meta new file mode 100644 index 0000000..62bf8b3 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_UpArrowIcon_Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 784b247fa2a5d8746833b561a9dc5fe3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png new file mode 100644 index 0000000..b66ddd8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png.meta new file mode 100644 index 0000000..4ac61d2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 47945f681ef607d42b39ae000307467e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png new file mode 100644 index 0000000..4a9f6ae Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png.meta new file mode 100644 index 0000000..5cfbb64 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ZoomInIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 57d93aff01670e34aaa7718dab1ab6fb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png new file mode 100644 index 0000000..d0fea95 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png.meta b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png.meta new file mode 100644 index 0000000..e8e8a35 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: bfee908c6f94a404b966295825157538 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png new file mode 100644 index 0000000..1d6d362 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png differ diff --git a/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png.meta b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png.meta new file mode 100644 index 0000000..69de809 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Director_ZoomOutIcon_Light.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: febab2db63bffe84eac151b99e6b3a51 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DownArrowIcon.png b/Assets/Cinema Director/System/Resources/DownArrowIcon.png new file mode 100644 index 0000000..a5ae833 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DownArrowIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/DownArrowIcon.png.meta b/Assets/Cinema Director/System/Resources/DownArrowIcon.png.meta new file mode 100644 index 0000000..a0ee26a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DownArrowIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7280ca01f46907b468411abc87dd78b8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png b/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png new file mode 100644 index 0000000..03129fd Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png differ diff --git a/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png.meta b/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png.meta new file mode 100644 index 0000000..704757e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DownArrowIconActivated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5bc07940262a4f147983bd0e1fb023f7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/DownArrowIconHover.png b/Assets/Cinema Director/System/Resources/DownArrowIconHover.png new file mode 100644 index 0000000..1dcb098 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/DownArrowIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/DownArrowIconHover.png.meta b/Assets/Cinema Director/System/Resources/DownArrowIconHover.png.meta new file mode 100644 index 0000000..9294eca --- /dev/null +++ b/Assets/Cinema Director/System/Resources/DownArrowIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: d0449dff36a47b5408f69b5578c07395 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/EditIcon.png b/Assets/Cinema Director/System/Resources/EditIcon.png new file mode 100644 index 0000000..cd81804 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/EditIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/EditIcon.png.meta b/Assets/Cinema Director/System/Resources/EditIcon.png.meta new file mode 100644 index 0000000..7b6686f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/EditIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b0e8033c21d50fb418bc9538999a4e4e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/EditIconHover.png b/Assets/Cinema Director/System/Resources/EditIconHover.png new file mode 100644 index 0000000..258a6aa Binary files /dev/null and b/Assets/Cinema Director/System/Resources/EditIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/EditIconHover.png.meta b/Assets/Cinema Director/System/Resources/EditIconHover.png.meta new file mode 100644 index 0000000..f848d38 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/EditIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ae0199d63543d4b4e9a5ddc98aa5d873 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/EventItem.png b/Assets/Cinema Director/System/Resources/EventItem.png new file mode 100644 index 0000000..55ff8f4 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/EventItem.png differ diff --git a/Assets/Cinema Director/System/Resources/EventItem.png.meta b/Assets/Cinema Director/System/Resources/EventItem.png.meta new file mode 100644 index 0000000..0d3db9c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/EventItem.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7f4a8c9dea5f99f4f9218fa2d245d645 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/EventItemFree.png b/Assets/Cinema Director/System/Resources/EventItemFree.png new file mode 100644 index 0000000..c8926be Binary files /dev/null and b/Assets/Cinema Director/System/Resources/EventItemFree.png differ diff --git a/Assets/Cinema Director/System/Resources/EventItemFree.png.meta b/Assets/Cinema Director/System/Resources/EventItemFree.png.meta new file mode 100644 index 0000000..7b2791e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/EventItemFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 33f990edbaccd4b44823a6f901c048df +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png b/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png new file mode 100644 index 0000000..3e27af7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png differ diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png.meta b/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png.meta new file mode 100644 index 0000000..71c7d44 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Expand Vertical Activated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 34f3774bfacbb544d82c0e1e88fba47f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png b/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png new file mode 100644 index 0000000..64deca3 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png differ diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png.meta b/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png.meta new file mode 100644 index 0000000..97f2923 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Expand Vertical Hover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: eec2a12f247170c4e9d1285048cf34e6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical.png b/Assets/Cinema Director/System/Resources/Expand Vertical.png new file mode 100644 index 0000000..4293d40 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Expand Vertical.png differ diff --git a/Assets/Cinema Director/System/Resources/Expand Vertical.png.meta b/Assets/Cinema Director/System/Resources/Expand Vertical.png.meta new file mode 100644 index 0000000..a1d7bc7 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Expand Vertical.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5ad2303f79389ee409a309c54a0eff20 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/GraphResizeTest.png b/Assets/Cinema Director/System/Resources/GraphResizeTest.png new file mode 100644 index 0000000..a0dbf80 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/GraphResizeTest.png differ diff --git a/Assets/Cinema Director/System/Resources/GraphResizeTest.png.meta b/Assets/Cinema Director/System/Resources/GraphResizeTest.png.meta new file mode 100644 index 0000000..441e8a8 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/GraphResizeTest.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 62bfbbbc264c3cb49ab9d66704030c47 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/InspectorIcon.png b/Assets/Cinema Director/System/Resources/InspectorIcon.png new file mode 100644 index 0000000..956add9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/InspectorIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/InspectorIcon.png.meta b/Assets/Cinema Director/System/Resources/InspectorIcon.png.meta new file mode 100644 index 0000000..14eb57a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/InspectorIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ef306cc1ca1ab594c9eb30b0fa14d126 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/InspectorIconHover.png b/Assets/Cinema Director/System/Resources/InspectorIconHover.png new file mode 100644 index 0000000..1bdff39 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/InspectorIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/InspectorIconHover.png.meta b/Assets/Cinema Director/System/Resources/InspectorIconHover.png.meta new file mode 100644 index 0000000..4af1cf3 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/InspectorIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5b452ff396025464a901e111931a0ef3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/Keyframe.png b/Assets/Cinema Director/System/Resources/Keyframe.png new file mode 100644 index 0000000..134c9c1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/Keyframe.png differ diff --git a/Assets/Cinema Director/System/Resources/Keyframe.png.meta b/Assets/Cinema Director/System/Resources/Keyframe.png.meta new file mode 100644 index 0000000..827ea46 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/Keyframe.png.meta @@ -0,0 +1,51 @@ +fileFormatVersion: 2 +guid: 422550129dd069544b5963cb9eab1512 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: + - buildTarget: Standalone + maxTextureSize: 32 + textureFormat: -1 + compressionQuality: 50 + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/KeyframeBackground.png b/Assets/Cinema Director/System/Resources/KeyframeBackground.png new file mode 100644 index 0000000..3b29994 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/KeyframeBackground.png differ diff --git a/Assets/Cinema Director/System/Resources/KeyframeBackground.png.meta b/Assets/Cinema Director/System/Resources/KeyframeBackground.png.meta new file mode 100644 index 0000000..e7f1cf9 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/KeyframeBackground.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ab55b01be6df3e74883519537dcaae8f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/KeyframeOffset.png b/Assets/Cinema Director/System/Resources/KeyframeOffset.png new file mode 100644 index 0000000..ad3bdd6 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/KeyframeOffset.png differ diff --git a/Assets/Cinema Director/System/Resources/KeyframeOffset.png.meta b/Assets/Cinema Director/System/Resources/KeyframeOffset.png.meta new file mode 100644 index 0000000..27621b0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/KeyframeOffset.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a6041ae7e8beba1439cf424c67ff8c59 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png b/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png new file mode 100644 index 0000000..3124bc3 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png differ diff --git a/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png.meta b/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png.meta new file mode 100644 index 0000000..cc01718 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/MultiActorGroupIconFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e70876cac35ff5c4eb0859e8ded4e824 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png b/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png new file mode 100644 index 0000000..55e8b93 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png differ diff --git a/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png.meta b/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png.meta new file mode 100644 index 0000000..3e4ff82 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/MultiActorGroupIconPro.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 38bceffdd92b94b48af3a4d7a2289894 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/PauseButton.png b/Assets/Cinema Director/System/Resources/PauseButton.png new file mode 100644 index 0000000..bd45881 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/PauseButton.png differ diff --git a/Assets/Cinema Director/System/Resources/PauseButton.png.meta b/Assets/Cinema Director/System/Resources/PauseButton.png.meta new file mode 100644 index 0000000..17c6b89 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/PauseButton.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 3a698bcc2a6dd3d4faa99070a40e3063 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/PickerIcon.png b/Assets/Cinema Director/System/Resources/PickerIcon.png new file mode 100644 index 0000000..b7e0b77 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/PickerIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/PickerIcon.png.meta b/Assets/Cinema Director/System/Resources/PickerIcon.png.meta new file mode 100644 index 0000000..b56bf74 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/PickerIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e00b3eb3c7a67c1479c4b19adbd3525a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/PickerIconHover.png b/Assets/Cinema Director/System/Resources/PickerIconHover.png new file mode 100644 index 0000000..9e4d283 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/PickerIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/PickerIconHover.png.meta b/Assets/Cinema Director/System/Resources/PickerIconHover.png.meta new file mode 100644 index 0000000..ea380da --- /dev/null +++ b/Assets/Cinema Director/System/Resources/PickerIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 107e10032d812af4fa810cfd34ff5d4a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/PlayButton.png b/Assets/Cinema Director/System/Resources/PlayButton.png new file mode 100644 index 0000000..433e85b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/PlayButton.png differ diff --git a/Assets/Cinema Director/System/Resources/PlayButton.png.meta b/Assets/Cinema Director/System/Resources/PlayButton.png.meta new file mode 100644 index 0000000..a549d8a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/PlayButton.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: b8fef397c77055e4bacdb39661cf0d42 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/RefreshIcon.png b/Assets/Cinema Director/System/Resources/RefreshIcon.png new file mode 100644 index 0000000..f3d3ba1 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/RefreshIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/RefreshIcon.png.meta b/Assets/Cinema Director/System/Resources/RefreshIcon.png.meta new file mode 100644 index 0000000..57f9b4f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/RefreshIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 89550cfb80a22a64eafe4c3efe477ba3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/RippleEdit.png b/Assets/Cinema Director/System/Resources/RippleEdit.png new file mode 100644 index 0000000..689ba2c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/RippleEdit.png differ diff --git a/Assets/Cinema Director/System/Resources/RippleEdit.png.meta b/Assets/Cinema Director/System/Resources/RippleEdit.png.meta new file mode 100644 index 0000000..e156a72 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/RippleEdit.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 89d8e5fde7be88a4a9f6fbea692642a9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/RollingEdit.png b/Assets/Cinema Director/System/Resources/RollingEdit.png new file mode 100644 index 0000000..308ae3b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/RollingEdit.png differ diff --git a/Assets/Cinema Director/System/Resources/RollingEdit.png.meta b/Assets/Cinema Director/System/Resources/RollingEdit.png.meta new file mode 100644 index 0000000..d533c3a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/RollingEdit.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 35a4ba444b70b12479b8da7db194606c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/StopButton.png b/Assets/Cinema Director/System/Resources/StopButton.png new file mode 100644 index 0000000..7fb5abb Binary files /dev/null and b/Assets/Cinema Director/System/Resources/StopButton.png differ diff --git a/Assets/Cinema Director/System/Resources/StopButton.png.meta b/Assets/Cinema Director/System/Resources/StopButton.png.meta new file mode 100644 index 0000000..3c36f1e --- /dev/null +++ b/Assets/Cinema Director/System/Resources/StopButton.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4fe67977b96c4eb4397fc47441121fad +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackArea.png b/Assets/Cinema Director/System/Resources/TrackArea.png new file mode 100644 index 0000000..d75e415 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackArea.png differ diff --git a/Assets/Cinema Director/System/Resources/TrackArea.png.meta b/Assets/Cinema Director/System/Resources/TrackArea.png.meta new file mode 100644 index 0000000..fa530d1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackArea.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: d85ef6003b9ef30489810bd70d4b91c2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackAreaFree.png b/Assets/Cinema Director/System/Resources/TrackAreaFree.png new file mode 100644 index 0000000..d6e98e3 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackAreaFree.png differ diff --git a/Assets/Cinema Director/System/Resources/TrackAreaFree.png.meta b/Assets/Cinema Director/System/Resources/TrackAreaFree.png.meta new file mode 100644 index 0000000..7be6cf0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackAreaFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7ee50b069c122b74c947d50ba84b099b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackGroupArea.png b/Assets/Cinema Director/System/Resources/TrackGroupArea.png new file mode 100644 index 0000000..fc32e85 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackGroupArea.png differ diff --git a/Assets/Cinema Director/System/Resources/TrackGroupArea.png.meta b/Assets/Cinema Director/System/Resources/TrackGroupArea.png.meta new file mode 100644 index 0000000..ed6fd47 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackGroupArea.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a401d070c7fc34a449c55274b1393d73 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png b/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png new file mode 100644 index 0000000..27efb6a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png differ diff --git a/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png.meta b/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png.meta new file mode 100644 index 0000000..9c53fe6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackGroupAreaFree.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: cf6be9ef6d44e3248b6add3a6a0d6040 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBox.jpg b/Assets/Cinema Director/System/Resources/TrackItemBox.jpg new file mode 100644 index 0000000..ca9f998 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBox.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBox.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBox.jpg.meta new file mode 100644 index 0000000..c0244c1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBox.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a6634f85f8280e44eb311e0a245c8e49 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg new file mode 100644 index 0000000..cdabfe9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg.meta new file mode 100644 index 0000000..8be80fb --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxAudio.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1fa6e808f80a00341b16ac0e966a7974 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg new file mode 100644 index 0000000..99e167b Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg.meta new file mode 100644 index 0000000..19dd499 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioHover.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: eda0bee1e2196204a92e1ca237716025 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg new file mode 100644 index 0000000..cbec13c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg.meta new file mode 100644 index 0000000..18997b6 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxAudioSelected.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e23338974b076674fb41ac892e75b7d8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg new file mode 100644 index 0000000..b47e79c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg.meta new file mode 100644 index 0000000..5db849d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxCurveFocused.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 18c2675d5a15fc84c8eaba9bdf6ef5c2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg new file mode 100644 index 0000000..bff86e2 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg.meta new file mode 100644 index 0000000..30a929b --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxFree.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 1914cbdb3be0e6f4dbf79535ad1b9982 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg new file mode 100644 index 0000000..a789511 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg.meta new file mode 100644 index 0000000..137d87f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeHover.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 05d20c671907b7046a74b52008bd4648 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg new file mode 100644 index 0000000..1a2a0c7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg.meta new file mode 100644 index 0000000..f95ef9f --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxFreeSelected.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 94caf7dca9189e845aee9ef22a4081e7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg new file mode 100644 index 0000000..b6ec49e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg.meta new file mode 100644 index 0000000..8ce32e2 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobal.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a2424c6b58dc1824991bf8efd9cd2b64 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg new file mode 100644 index 0000000..b5bc1d9 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg.meta new file mode 100644 index 0000000..ba18b76 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalHover.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 47c0e04634471d948a66f6a58000b8fb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg new file mode 100644 index 0000000..e55091a Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg.meta new file mode 100644 index 0000000..138792b --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxGlobalSelected.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 4ec826259273c014b8267fc9f79c67bc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg new file mode 100644 index 0000000..7db6084 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg.meta new file mode 100644 index 0000000..813b30a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxHover.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 97d6f631077c9e84ba46b61b6b468dda +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg new file mode 100644 index 0000000..71b789f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg.meta new file mode 100644 index 0000000..fa036b4 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxSelected.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 49be13a938df5674ea790e5f9d41077d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg new file mode 100644 index 0000000..e8e3f47 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg.meta new file mode 100644 index 0000000..d2aee33 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxShot.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2d4ce42e942e6ce4fad40dbf1c1a912d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg new file mode 100644 index 0000000..28b0a7f Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg.meta new file mode 100644 index 0000000..b11011c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxShotHover.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: dffb8cf00b2782d4083c55b840074e71 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg b/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg new file mode 100644 index 0000000..44b7a2d Binary files /dev/null and b/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg differ diff --git a/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg.meta b/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg.meta new file mode 100644 index 0000000..84a4311 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/TrackItemBoxShotSelected.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ee756c83f8a4fa44a8c3066c5c03a5dc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/UpArrowIcon.png b/Assets/Cinema Director/System/Resources/UpArrowIcon.png new file mode 100644 index 0000000..302d3ac Binary files /dev/null and b/Assets/Cinema Director/System/Resources/UpArrowIcon.png differ diff --git a/Assets/Cinema Director/System/Resources/UpArrowIcon.png.meta b/Assets/Cinema Director/System/Resources/UpArrowIcon.png.meta new file mode 100644 index 0000000..e80290a --- /dev/null +++ b/Assets/Cinema Director/System/Resources/UpArrowIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2fa569118ccf65947acb00b43bacc2ab +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png b/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png new file mode 100644 index 0000000..487e076 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png differ diff --git a/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png.meta b/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png.meta new file mode 100644 index 0000000..1f377f1 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/UpArrowIconActivated.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 5f7fcdab4cb05144ebad970c84d205a3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/UpArrowIconHover.png b/Assets/Cinema Director/System/Resources/UpArrowIconHover.png new file mode 100644 index 0000000..8a8e4ba Binary files /dev/null and b/Assets/Cinema Director/System/Resources/UpArrowIconHover.png differ diff --git a/Assets/Cinema Director/System/Resources/UpArrowIconHover.png.meta b/Assets/Cinema Director/System/Resources/UpArrowIconHover.png.meta new file mode 100644 index 0000000..bb443c0 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/UpArrowIconHover.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c47d315d69f914c46934b217ba6ed53c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/house_white.png b/Assets/Cinema Director/System/Resources/house_white.png new file mode 100644 index 0000000..dca745c Binary files /dev/null and b/Assets/Cinema Director/System/Resources/house_white.png differ diff --git a/Assets/Cinema Director/System/Resources/house_white.png.meta b/Assets/Cinema Director/System/Resources/house_white.png.meta new file mode 100644 index 0000000..8295484 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/house_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0078800681424074a80787e4e91a10f9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/houseupsidedown_white.png b/Assets/Cinema Director/System/Resources/houseupsidedown_white.png new file mode 100644 index 0000000..df29516 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/houseupsidedown_white.png differ diff --git a/Assets/Cinema Director/System/Resources/houseupsidedown_white.png.meta b/Assets/Cinema Director/System/Resources/houseupsidedown_white.png.meta new file mode 100644 index 0000000..5015761 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/houseupsidedown_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 16259ac383d08ec4db717e67d1c23f79 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/keyframe_white.png b/Assets/Cinema Director/System/Resources/keyframe_white.png new file mode 100644 index 0000000..85fef57 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/keyframe_white.png differ diff --git a/Assets/Cinema Director/System/Resources/keyframe_white.png.meta b/Assets/Cinema Director/System/Resources/keyframe_white.png.meta new file mode 100644 index 0000000..c8fc899 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/keyframe_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 573d8484ab6197e419984876dbaae8e6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/keyframealt_white.png b/Assets/Cinema Director/System/Resources/keyframealt_white.png new file mode 100644 index 0000000..eea00ea Binary files /dev/null and b/Assets/Cinema Director/System/Resources/keyframealt_white.png differ diff --git a/Assets/Cinema Director/System/Resources/keyframealt_white.png.meta b/Assets/Cinema Director/System/Resources/keyframealt_white.png.meta new file mode 100644 index 0000000..b53497c --- /dev/null +++ b/Assets/Cinema Director/System/Resources/keyframealt_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8cbc102254d39844a9a524043f60bb0d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/locked_white.png b/Assets/Cinema Director/System/Resources/locked_white.png new file mode 100644 index 0000000..4b6b6f8 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/locked_white.png differ diff --git a/Assets/Cinema Director/System/Resources/locked_white.png.meta b/Assets/Cinema Director/System/Resources/locked_white.png.meta new file mode 100644 index 0000000..fabe447 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/locked_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c3297e1a9f31ff646aaf7498024c2845 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/magnet_grey.png b/Assets/Cinema Director/System/Resources/magnet_grey.png new file mode 100644 index 0000000..feeb8b5 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/magnet_grey.png differ diff --git a/Assets/Cinema Director/System/Resources/magnet_grey.png.meta b/Assets/Cinema Director/System/Resources/magnet_grey.png.meta new file mode 100644 index 0000000..1c959fc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/magnet_grey.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 9f71f20d4cfa2ec46a2c389b005684be +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/magnet_white.png b/Assets/Cinema Director/System/Resources/magnet_white.png new file mode 100644 index 0000000..2c5e6f7 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/magnet_white.png differ diff --git a/Assets/Cinema Director/System/Resources/magnet_white.png.meta b/Assets/Cinema Director/System/Resources/magnet_white.png.meta new file mode 100644 index 0000000..7453930 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/magnet_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 177bf942f5a875c43a42489b120f2af5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/rescale_grey.png b/Assets/Cinema Director/System/Resources/rescale_grey.png new file mode 100644 index 0000000..cb8cab0 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/rescale_grey.png differ diff --git a/Assets/Cinema Director/System/Resources/rescale_grey.png.meta b/Assets/Cinema Director/System/Resources/rescale_grey.png.meta new file mode 100644 index 0000000..56e8c3d --- /dev/null +++ b/Assets/Cinema Director/System/Resources/rescale_grey.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 2302051af22656a43bb2cbed1e731511 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/unlocked_white.png b/Assets/Cinema Director/System/Resources/unlocked_white.png new file mode 100644 index 0000000..2dff823 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/unlocked_white.png differ diff --git a/Assets/Cinema Director/System/Resources/unlocked_white.png.meta b/Assets/Cinema Director/System/Resources/unlocked_white.png.meta new file mode 100644 index 0000000..8e79a74 --- /dev/null +++ b/Assets/Cinema Director/System/Resources/unlocked_white.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: e0696acce61e6114fb1e0b4344946d34 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/zoomin_grey.png b/Assets/Cinema Director/System/Resources/zoomin_grey.png new file mode 100644 index 0000000..583d29e Binary files /dev/null and b/Assets/Cinema Director/System/Resources/zoomin_grey.png differ diff --git a/Assets/Cinema Director/System/Resources/zoomin_grey.png.meta b/Assets/Cinema Director/System/Resources/zoomin_grey.png.meta new file mode 100644 index 0000000..a36d8fc --- /dev/null +++ b/Assets/Cinema Director/System/Resources/zoomin_grey.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: da0012b09196ce64b8d37dbfb25b40b4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Resources/zoomout_grey.png b/Assets/Cinema Director/System/Resources/zoomout_grey.png new file mode 100644 index 0000000..3f2c925 Binary files /dev/null and b/Assets/Cinema Director/System/Resources/zoomout_grey.png differ diff --git a/Assets/Cinema Director/System/Resources/zoomout_grey.png.meta b/Assets/Cinema Director/System/Resources/zoomout_grey.png.meta new file mode 100644 index 0000000..092cd9b --- /dev/null +++ b/Assets/Cinema Director/System/Resources/zoomout_grey.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a154d09985c988745b620dfa442dcb44 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Cinema Director/System/Runtime.meta b/Assets/Cinema Director/System/Runtime.meta new file mode 100644 index 0000000..8d3a994 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: c4f2f47b30e68cf4a9b4bb464ef64b73 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/Cutscene.cs b/Assets/Cinema Director/System/Runtime/Cutscene.cs new file mode 100644 index 0000000..b20be8b --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Cutscene.cs @@ -0,0 +1,576 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The Cutscene is the main Behaviour of Cinema Director. + /// + [ExecuteInEditMode, Serializable] + public class Cutscene : MonoBehaviour, IOptimizable + { + #region Fields + [SerializeField] + private float duration = 30f; // Duration of cutscene in seconds. + + [SerializeField] + private float runningTime = 0f; // Running time of the cutscene in seconds. + + [SerializeField] + private float playbackSpeed = 1f; // Multiplier for playback speed. + + [SerializeField] + private CutsceneState state = CutsceneState.Inactive; + + [SerializeField] + private bool isSkippable = true; + + [SerializeField] + private bool isLooping = false; + + [SerializeField] + private bool canOptimize = true; + + // Keeps track of the previous time an update was made. + private float previousTime; + + // Has the Cutscene been optimized yet. + private bool hasBeenOptimized = false; + + // Has the Cutscene been initialized yet. + private bool hasBeenInitialized = false; + + // The cache of Track Groups that this Cutscene contains. + private TrackGroup[] trackGroupCache; + + // A list of all the Tracks and Items revert info, to revert states on Cutscene entering and exiting play mode. + private List revertCache = new List(); + #endregion + + // Event fired when Cutscene's runtime reaches it's duration. + public event CutsceneHandler CutsceneFinished; + + // Event fired when Cutscene has been paused. + public event CutsceneHandler CutscenePaused; + + /// + /// Optimizes the Cutscene by preparing all tracks and timeline items into a cache. + /// Call this on scene load in most cases. (Avoid calling in edit mode). + /// + public void Optimize() + { + if (canOptimize) + { + trackGroupCache = GetTrackGroups(); + } + foreach (TrackGroup tg in GetTrackGroups()) + { + tg.Optimize(); + } + hasBeenOptimized = true; + } + + /// + /// Plays/Resumes the cutscene from inactive/paused states using a Coroutine. + /// + public void Play() + { + if (state == CutsceneState.Inactive) + { + state = CutsceneState.Playing; + if (!hasBeenOptimized) + { + Optimize(); + } + if (!hasBeenInitialized) + { + initialize(); + } + StartCoroutine("updateCoroutine"); + } + else if (state == CutsceneState.Paused) + { + state = CutsceneState.Playing; + StartCoroutine("updateCoroutine"); + } + } + + /// + /// Pause the playback of this cutscene. + /// + public void Pause() + { + if (state == CutsceneState.Playing) + { + StopCoroutine("updateCoroutine"); + } + if (state == CutsceneState.PreviewPlaying || state == CutsceneState.Playing || state == CutsceneState.Scrubbing) + { + foreach (TrackGroup trackGroup in GetTrackGroups()) + { + trackGroup.Pause(); + } + } + state = CutsceneState.Paused; + + if (CutscenePaused != null) + { + CutscenePaused(this, new CutsceneEventArgs()); + } + } + + /// + /// Skip the cutscene to the end and stop it + /// + public void Skip() + { + if (isSkippable) + { + SetRunningTime(this.Duration); + state = CutsceneState.Inactive; + Stop(); + } + } + + /// + /// Stops the cutscene. + /// + public void Stop() + { + this.RunningTime = 0f; + revert(); + foreach (TrackGroup trackGroup in GetTrackGroups()) + { + trackGroup.Stop(); + } + + if (state == CutsceneState.Playing) + { + StopCoroutine("updateCoroutine"); + if (state == CutsceneState.Playing && isLooping) + { + state = CutsceneState.Inactive; + Play(); + } + else + { + state = CutsceneState.Inactive; + } + } + else + { + state = CutsceneState.Inactive; + } + + if (state == CutsceneState.Inactive) + { + if (CutsceneFinished != null) + { + CutsceneFinished(this, new CutsceneEventArgs()); + } + } + } + + /// + /// Updates the cutscene by the amount of time passed. + /// + /// The delta in time between the last update call and this one. + public void UpdateCutscene(float deltaTime) + { + this.RunningTime += (deltaTime * playbackSpeed); + + foreach (TrackGroup group in GetTrackGroups()) + { + group.UpdateTrackGroup(RunningTime, deltaTime * playbackSpeed); + } + if (state != CutsceneState.Scrubbing) + { + if (runningTime >= duration || runningTime < 0f) + { + Stop(); + } + } + } + + /// + /// Preview play readies the cutscene to be played in edit mode. Never use for runtime. + /// This is necessary for playing the cutscene in edit mode. + /// + public void PreviewPlay() + { + if (state == CutsceneState.Inactive) + { + EnterPreviewMode(); + } + else if (state == CutsceneState.Paused) + { + resume(); + } + + if (Application.isPlaying) + { + state = CutsceneState.Playing; + } + else + { + state = CutsceneState.PreviewPlaying; + } + } + + /// + /// Play the cutscene from it's given running time to a new time + /// + /// The new time to make up for + public void ScrubToTime(float newTime) + { + float deltaTime = Mathf.Clamp(newTime, 0, Duration) - this.RunningTime; + + state = CutsceneState.Scrubbing; + if (deltaTime != 0) + { + if (deltaTime > (1 / 30f)) + { + float prevTime = RunningTime; + foreach (float milestone in getMilestones(RunningTime + deltaTime)) + { + float delta = milestone - prevTime; + UpdateCutscene(delta); + prevTime = milestone; + } + } + else + { + UpdateCutscene(deltaTime); + } + } + else + { + Pause(); + } + } + + /// + /// Set the cutscene to the state of a given new running time and do not proceed to play the cutscene + /// + /// The new running time to be set. + public void SetRunningTime(float time) + { + foreach (float milestone in getMilestones(time)) + { + foreach (TrackGroup group in this.TrackGroups) + { + group.SetRunningTime(milestone); + } + } + + this.RunningTime = time; + } + + /// + /// Set the cutscene into an active state. + /// + public void EnterPreviewMode() + { + if (state == CutsceneState.Inactive) + { + initialize(); + bake(); + SetRunningTime(RunningTime); + state = CutsceneState.Paused; + } + } + + /// + /// Set the cutscene into an inactive state. + /// + public void ExitPreviewMode() + { + Stop(); + } + + /// + /// Cutscene has been destroyed. Revert everything if necessary. + /// + protected void OnDestroy() + { + if (!Application.isPlaying) + { + Stop(); + } + } + + /// + /// Exit and Re-enter preview mode at the current running time. + /// Important for Mecanim Previewing. + /// + public void Refresh() + { + if (state != CutsceneState.Inactive) + { + float tempTime = runningTime; + Stop(); + EnterPreviewMode(); + SetRunningTime(tempTime); + } + } + + /// + /// Bake all Track Groups who are Bakeable. + /// This is necessary for things like mecanim previewing. + /// + private void bake() + { + if (Application.isEditor) + { + foreach (TrackGroup group in this.TrackGroups) + { + if (group is IBakeable) + { + (group as IBakeable).Bake(); + } + } + } + } + + /// + /// The duration of this cutscene in seconds. + /// + public float Duration + { + get + { + return this.duration; + } + set + { + this.duration = value; + if (this.duration <= 0f) + { + this.duration = 0.1f; + } + } + } + + /// + /// Returns true if this cutscene is currently playing. + /// + public CutsceneState State + { + get + { + return this.state; + } + } + + /// + /// The current running time of this cutscene in seconds. Values are restricted between 0 and duration. + /// + public float RunningTime + { + get + { + return this.runningTime; + } + set + { + runningTime = Mathf.Clamp(value, 0, duration); + } + } + + /// + /// Get all Track Groups in this Cutscene. Will return cache if possible. + /// + /// + public TrackGroup[] GetTrackGroups() + { + // Return the cache if possible + if (hasBeenOptimized) + { + return trackGroupCache; + } + + return TrackGroups; + } + + /// + /// Get all track groups in this cutscene. + /// + public TrackGroup[] TrackGroups + { + get + { + return base.GetComponentsInChildren(); + } + } + + /// + /// Get the director group of this cutscene. + /// + public DirectorGroup DirectorGroup + { + get + { + return base.GetComponentInChildren(); + } + } + + /// + /// Cutscene state is used to determine if the cutscene is currently Playing, Previewing (In edit mode), paused, scrubbing or inactive. + /// + public enum CutsceneState + { + Inactive, + Playing, + PreviewPlaying, + Scrubbing, + Paused + } + + /// + /// Enable this if the Cutscene does not have TrackGroups added/removed during running. + /// + public bool CanOptimize + { + get { return canOptimize; } + set { canOptimize = value; } + } + + /// + /// True if Cutscene can be skipped. + /// + public bool IsSkippable + { + get { return isSkippable; } + set { isSkippable = value; } + } + + /// + /// Will the Cutscene loop upon completion. + /// + public bool IsLooping + { + get { return isLooping; } + set { isLooping = value; } + } + + /// + /// An important call to make before sampling the cutscene, to initialize all track groups + /// and save states of all actors/game objects. + /// + private void initialize() + { + saveRevertData(); + + // Initialize each track group. + foreach (TrackGroup trackGroup in this.TrackGroups) + { + trackGroup.Initialize(); + } + } + + /// + /// Cache all the revert data. + /// + private void saveRevertData() + { + revertCache.Clear(); + // Build the cache of revert info. + foreach (MonoBehaviour mb in this.GetComponentsInChildren()) + { + IRevertable revertable = mb as IRevertable; + if (revertable != null) + { + revertCache.AddRange(revertable.CacheState()); + } + } + } + + /// + /// Revert all data that has been manipulated by the Cutscene. + /// + private void revert() + { + foreach (RevertInfo revertable in revertCache) + { + if (revertable != null) + { + if ((revertable.EditorRevert == RevertMode.Revert && !Application.isPlaying) || + (revertable.RuntimeRevert == RevertMode.Revert && Application.isPlaying)) + { + revertable.Revert(); + } + } + } + } + + /// + /// Get the milestones between the current running time and the given time. + /// + /// The time to progress towards + /// A list of times that state changes are made in the Cutscene. + private List getMilestones(float time) + { + // Create a list of ordered milestone times. + List milestoneTimes = new List(); + milestoneTimes.Add(time); + foreach (TrackGroup group in this.TrackGroups) + { + List times = group.GetMilestones(RunningTime, time); + foreach (float f in times) + { + if (!milestoneTimes.Contains(f)) + milestoneTimes.Add(f); + } + } + + milestoneTimes.Sort(); + if (time < RunningTime) + { + milestoneTimes.Reverse(); + } + + return milestoneTimes; + } + + /// + /// Couroutine to call UpdateCutscene while the cutscene is in the playing state. + /// + /// + private IEnumerator updateCoroutine() + { + while (state == CutsceneState.Playing) + { + UpdateCutscene(Time.deltaTime); + yield return null; + } + } + + /// + /// Prepare all track groups for resuming from pause. + /// + private void resume() + { + foreach (TrackGroup group in this.TrackGroups) + { + group.Resume(); + } + } + } + + // Delegate for handling Cutscene Events + public delegate void CutsceneHandler(object sender, CutsceneEventArgs e); + + /// + /// Cutscene event arguments. Blank for now. + /// + public class CutsceneEventArgs : EventArgs + { + public CutsceneEventArgs() + { + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/Cutscene.cs.meta b/Assets/Cinema Director/System/Runtime/Cutscene.cs.meta new file mode 100644 index 0000000..21f146c --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Cutscene.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dea88cf454d6b69408653729ea66ec34 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums.meta b/Assets/Cinema Director/System/Runtime/Enums.meta new file mode 100644 index 0000000..1f9fcc1 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 4c6c0228d26198344b5b4f948a6f5eeb +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs b/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs new file mode 100644 index 0000000..bc480df --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs @@ -0,0 +1,19 @@ +// Cinema Suite 2014 + +namespace CinemaDirector +{ + /// + /// An enumeration of Cutscene Item Genres. + /// + public enum CutsceneItemGenre + { + ActorItem, + AudioClipItem, + CameraShot, + CurveClipItem, + GlobalItem, + MecanimItem, + MultiActorCurveClipItem, + TransformItem + } +} diff --git a/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs.meta b/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs.meta new file mode 100644 index 0000000..b75bc04 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/CutsceneItemGenre.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9eec02c0f87c17240b9c414bcee2c9e5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs b/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs new file mode 100644 index 0000000..a3c11b1 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs @@ -0,0 +1,15 @@ +// Cinema Suite 2014 + +namespace CinemaDirector +{ + /// + /// Enum of Unity playback modes + /// + public enum PlaybackMode + { + Disabled = 0, // Base case, we don't want whatever to happen at all. + Runtime = 1, // Unity is in runtime mode + EditMode = 2, // Unity is in edit mode + RuntimeAndEdit = 3, // Both runtime and edit mode. + } +} diff --git a/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs.meta b/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs.meta new file mode 100644 index 0000000..b0f1616 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/PlaybackMode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eec3087e80ecfa448b9e2cf00e863bad +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs b/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs new file mode 100644 index 0000000..a801065 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs @@ -0,0 +1,241 @@ + +using System; + +namespace CinemaDirector +{ + /// + /// Enumeration of all Property types in Unity + /// + using UnityEngine; + public enum PropertyTypeInfo + { + Color, + Double, + Float, + Int, + Long, + None, + Quaternion, + Vector2, + Vector3, + Vector4 + } + + public static class UnityPropertyTypeInfo + { + public static PropertyTypeInfo GetMappedType(Type type) + { + if (type == typeof(int)) + { + return PropertyTypeInfo.Int; + } + if (type == typeof(long)) + { + return PropertyTypeInfo.Long; + } + if (type == typeof(float)) + { + return PropertyTypeInfo.Float; + } + if (type == typeof(double)) + { + return PropertyTypeInfo.Double; + } + if (type == typeof(Vector2)) + { + return PropertyTypeInfo.Vector2; + } + if (type == typeof(Vector3)) + { + return PropertyTypeInfo.Vector3; + } + if (type == typeof(Vector4)) + { + return PropertyTypeInfo.Vector4; + } + if (type == typeof(Quaternion)) + { + return PropertyTypeInfo.Quaternion; + } + if (type == typeof(Color)) + { + return PropertyTypeInfo.Color; + } + return PropertyTypeInfo.None; + } + + public static int GetCurveCount(int p) + { + PropertyTypeInfo info = (PropertyTypeInfo)p; + return GetCurveCount(info); + } + + public static int GetCurveCount(PropertyTypeInfo info) + { + + if (info == PropertyTypeInfo.Int || info == PropertyTypeInfo.Long || info == PropertyTypeInfo.Float || + info == PropertyTypeInfo.Double) + { + return 1; + } + else if (info == PropertyTypeInfo.Vector2) + { + return 2; + } + else if (info == PropertyTypeInfo.Vector3) + { + return 3; + } + else if (info == PropertyTypeInfo.Vector4 || info == PropertyTypeInfo.Quaternion || info == PropertyTypeInfo.Color) + { + return 4; + } + return 0; + } + + public static Color GetCurveColor(int i) + { + Color c = Color.white; + if (i == 0) + { + c = Color.red; + } + else if (i == 1) + { + c = Color.green; + } + else if (i == 2) + { + c = Color.blue; + } + else if (i == 3) + { + c = Color.yellow; + } + + return c; + } + + public static Color GetCurveColor(string Type, string PropertyName, string label, int i) + { + Color c = Color.white; + if (Type == "Transform") + { + if (PropertyName == "localPosition" || PropertyName == "position") + { + if (label == "x" || i == 0) + { + c = Color.red; + } + if (label == "y" || i == 1) + { + c = Color.green; + } + if (label == "z" || i == 2) + { + c = Color.blue; + } + } + if (PropertyName == "localEulerAngles") + { + if (label == "x" || i == 0) + { + c = Color.magenta; + } + if (label == "y" || i == 1) + { + c = Color.yellow; + } + if (label == "z" || i == 2) + { + c = Color.cyan; + } + } + if (PropertyName == "localScale") + { + if (label == "x" || i == 0) + { + c = new Color(0.6745f, 0.4392f, 0.4588f, 1f); + } + if (label == "y" || i == 1) + { + c = new Color(0.447f, 0.6196f, 0.4588f, 1f); + } + if (label == "z" || i == 2) + { + c = new Color(0.447f, 0.4392f, 0.7294f, 1f); + } + } + } + else + { + c = GetCurveColor(i); + } + + return c; + } + + public static string GetCurveName(PropertyTypeInfo info, int i) + { + string retVal = "x"; + if (i == 1) + { + retVal = "y"; + } + else if (i == 2) + { + retVal = "z"; + } + else if (i == 3) + { + retVal = "w"; + } + + + if (info == PropertyTypeInfo.Int || info == PropertyTypeInfo.Long || info == PropertyTypeInfo.Float || + info == PropertyTypeInfo.Double) + { + retVal = "value"; + } + else if (info == PropertyTypeInfo.Color) + { + if (i == 0) + { + retVal = "r"; + } + else if (i == 1) + { + retVal = "g"; + } + else if (i == 2) + { + retVal = "b"; + } + else if (i == 3) + { + retVal = "a"; + } + } + + return retVal; + } + + public static Type GetUnityType(string typeName) + { + if (typeName == "Transform") + { + return typeof(Transform); + } + else if (typeName == "Camera") + { + return typeof(Camera); + } + else if (typeName == "Light") + { + return typeof(Light); + } + + return typeof(Transform); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs.meta b/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs.meta new file mode 100644 index 0000000..d3dcc9b --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/PropertyTypeInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1193101c773ff7140937b5cce1b5f91c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs b/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs new file mode 100644 index 0000000..9041bf8 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs @@ -0,0 +1,13 @@ + +namespace CinemaDirector +{ + /// + /// Options for Reverting data when Cutscenes go inactive. + /// + public enum RevertMode + { + Revert, // Revert to initial state. + Finalize // Place into final state. + // ToDo: AsIs for leaving state the way it is. + } +} diff --git a/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs.meta b/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs.meta new file mode 100644 index 0000000..c7bc026 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/RevertMode.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 390f0420ee587f045a6c06e54feaf2a9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs b/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs new file mode 100644 index 0000000..78c6d08 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs @@ -0,0 +1,15 @@ +// Cinema Suite 2014 + +namespace CinemaDirector +{ + /// + /// An enumeration of Track Genres. + /// + public enum TimelineTrackGenre + { + GlobalTrack, + ActorTrack, + MultiActorTrack, + CharacterTrack + } +} diff --git a/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs.meta b/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs.meta new file mode 100644 index 0000000..d2e9460 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Enums/TimelineTrackGenre.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a43052184d00e7740996d438483e8bdc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers.meta b/Assets/Cinema Director/System/Runtime/Helpers.meta new file mode 100644 index 0000000..223a220 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 2d1da83c924595a47bac3da5945075b2 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs b/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs new file mode 100644 index 0000000..4918e88 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs @@ -0,0 +1,318 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A helper class for Unity's AnimationCurve class. + /// Made to account for tangent mode of keys when adding/changing/removing keys. + /// + public static class AnimationCurveHelper + { + /// + /// Add a new key to an AnimationCurve. + /// Ensures the integrity of other key's tangent modes. + /// + /// The existing AnimationCurve. + /// The new keyframe + /// The index of the newly added key. + public static int AddKey(AnimationCurve curve, Keyframe keyframe) + { + if (curve.length == 0) + { + return curve.AddKey(keyframe); + } + else if (curve.length == 1) + { + // Save the existing keyframe data. (Unity changes the tangent info). + Keyframe temp = curve[0]; + int newIndex = curve.AddKey(keyframe); + if(newIndex == -1) + { + return 0; + } + else if(newIndex == 0) + { + curve.MoveKey(1, temp); + } + else + { + curve.MoveKey(0, temp); + } + return newIndex; + } + else + { + Keyframe left = new Keyframe(); + Keyframe right = new Keyframe(); + + for (int i = 0; i < curve.length - 1; i++) + { + Keyframe l = curve[i]; + Keyframe r = curve[i + 1]; + + if (l.time < keyframe.time && keyframe.time < r.time) + { + left = l; + right = r; + } + } + + int index = curve.AddKey(keyframe); + + // Handle left neighbour. + if (index > 0) + { + // Restore the saved data. + curve.MoveKey(index - 1, left); + + // Update tangent data based on tangent mode. + int tangentMode = curve[index - 1].tangentMode; + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(index - 1, 0); + } + if (IsBroken(tangentMode)) + { + if (IsRightLinear(tangentMode)) + { + SetKeyRightLinear(curve, index - 1); + } + } + } + + // Handle the Right neighbour. + if (index < curve.length - 1) + { + // Restore the saved data. + curve.MoveKey(index + 1, right); + + // Update tangent data based on tangent mode. + int tangentMode = curve[index + 1].tangentMode; + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(index + 1, 0); + } + if (IsBroken(tangentMode)) + { + if (IsLeftLinear(tangentMode)) + { + SetKeyLeftLinear(curve, index + 1); + } + } + } + + return index; + } + } + + /// + /// Move/Change an existing key in an AnimationCurve. + /// Maintains TangentMode and updates neighbours. + /// + /// The existing AnimationCurve. + /// The index of the current Keyframe. + /// The new Keyframe data. + /// The index of the Keyframe. + public static int MoveKey(AnimationCurve curve, int index, Keyframe keyframe) + { + // Save the tangent mode. + Keyframe old = curve[index]; + keyframe.tangentMode = old.tangentMode; + + int newIndex = curve.MoveKey(index, keyframe); + + // Respect the tangentMode and update as necessary. + if (IsAuto(keyframe.tangentMode)) + { + curve.SmoothTangents(newIndex, 0); + } + else if (IsBroken(keyframe.tangentMode)) + { + if (IsLeftLinear(keyframe.tangentMode)) + { + SetKeyLeftLinear(curve, newIndex); + } + if (IsRightLinear(keyframe.tangentMode)) + { + SetKeyRightLinear(curve, newIndex); + } + } + + // update the left neighbour + if (newIndex > 0) + { + // Update tangent data based on tangent mode. + int tangentMode = curve[newIndex - 1].tangentMode; + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(newIndex - 1, 0); + } + if (IsBroken(tangentMode)) + { + if (IsRightLinear(tangentMode)) + { + SetKeyRightLinear(curve, newIndex - 1); + } + } + } + + // update the right neighbour + if (newIndex < curve.length - 1) + { + // Update tangent data based on tangent mode. + int tangentMode = curve[newIndex + 1].tangentMode; + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(newIndex + 1, 0); + } + if (IsBroken(tangentMode)) + { + if (IsLeftLinear(tangentMode)) + { + SetKeyLeftLinear(curve, newIndex + 1); + } + } + } + + return newIndex; + } + + /// + /// Remove a key from an AnimationCurve. + /// + /// The existing AnimationCurve. + /// The index of the Key to be removed. + public static void RemoveKey(AnimationCurve curve, int index) + { + curve.RemoveKey(index); + + // Update left neighbour. + if (index > 0) + { + // Update tangent data based on tangent mode. + int tangentMode = curve[index-1].tangentMode; + + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(index - 1, 0); + } + if (IsBroken(tangentMode)) + { + if (IsRightLinear(tangentMode)) + { + SetKeyRightLinear(curve, index - 1); + } + } + } + + // Update right neighbour. + if (index < curve.length) + { + // Update tangent data based on tangent mode. + int tangentMode = curve[index].tangentMode; + + if (IsAuto(tangentMode)) + { + curve.SmoothTangents(index, 0); + } + if (IsBroken(tangentMode)) + { + if (IsLeftLinear(tangentMode)) + { + SetKeyLeftLinear(curve, index); + } + } + } + } + + /// + /// Set the indexed key of an AnimationCurve to RightLinear. + /// + /// The curve to change. + /// The index of the key to set to RightLinear. + public static void SetKeyRightLinear(AnimationCurve curve, int index) + { + Keyframe kf = curve[index]; + float tangentValue = kf.outTangent; + + if (index < curve.length - 1) + { + Keyframe next = curve[index + 1]; + tangentValue = (next.value - kf.value) / (next.time - kf.time); + } + + Keyframe newKeyframe = new Keyframe(kf.time, kf.value, kf.inTangent, tangentValue); + + // Get current tangent mode. + int leftTangent = (IsAuto(kf.tangentMode) || kf.tangentMode == 0) ? 0 : (kf.tangentMode % 8) - 1; + newKeyframe.tangentMode = leftTangent + 16 + 1; + + curve.MoveKey(index, newKeyframe); + } + + /// + /// Set the indexed key of an AnimationCurve to LeftLinear. + /// + /// The curve to change. + /// The index of the key to set to LeftLinear. + public static void SetKeyLeftLinear(AnimationCurve curve, int index) + { + Keyframe kf = curve[index]; + float tangentValue = kf.inTangent; + + if (index > 0) + { + Keyframe prev = curve[index - 1]; + tangentValue = (kf.value - prev.value) / (kf.time - prev.time); + } + + Keyframe newKeyframe = new Keyframe(kf.time, kf.value, tangentValue, kf.outTangent); + + int rightTangent = kf.tangentMode > 16 ? (kf.tangentMode / 8) * 8 : 0; + newKeyframe.tangentMode = rightTangent + 1 + 4; + + curve.MoveKey(index, newKeyframe); + } + + /// + /// Is the TangentMode Auto. + /// + /// The tangentMode value. + /// True if set to auto. + public static bool IsAuto(int tangentMode) + { + return tangentMode == 10; + } + + /// + /// Is the TangentMode Broken. + /// + /// The tangentMode value. + /// True if set to Broken. + public static bool IsBroken(int tangentMode) + { + return (tangentMode % 2) == 1; + } + + /// + /// Is the TangentMode RightLinear. + /// + /// The tangentMode value. + /// True if the right tangent mode is set to linear. + public static bool IsRightLinear(int tangentMode) + { + return (tangentMode / 8) == 2; + } + + /// + /// Is the TangentMode LeftLinear. + /// + /// The tangentMode value. + /// True if the left tangent mode is set to linear. + public static bool IsLeftLinear(int tangentMode) + { + return IsBroken(tangentMode) && (tangentMode % 8) == 5; + } + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs.meta new file mode 100644 index 0000000..6946bb3 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/AnimationCurveHelper.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ff3fcd8e4207b049bb6fa78798d4530 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs new file mode 100644 index 0000000..5403d01 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Plays through a list of given cutscenes one by one. + /// + public class CutsceneQueue : MonoBehaviour + { + public List Cutscenes; + private int index = 0; + + /// + /// Play the first cutscene and waits for it to finish + /// + void Start() + { + if (Cutscenes != null && Cutscenes.Count > 0) + { + Cutscenes[index].CutsceneFinished += CutsceneQueue_CutsceneFinished; + Cutscenes[index].Play(); + } + } + + /// + /// On cutscene finish, play the next cutscene. + /// + void CutsceneQueue_CutsceneFinished(object sender, CutsceneEventArgs e) + { + Cutscenes[index].CutsceneFinished -= CutsceneQueue_CutsceneFinished; + if (Cutscenes != null && index + 1 < Cutscenes.Count) + { + index++; + Cutscenes[index].Play(); + Cutscenes[index].CutsceneFinished += CutsceneQueue_CutsceneFinished; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs.meta new file mode 100644 index 0000000..4cc9c4c --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneQueue.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8064d87a4dc950a4b800cb8c5341f022 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs new file mode 100644 index 0000000..0534a8a --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs @@ -0,0 +1,74 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A sample behaviour for triggering Cutscenes. + /// + public class CutsceneTrigger : MonoBehaviour + { + public StartMethod StartMethod; + public Cutscene Cutscene; + public GameObject TriggerObject; + public string SkipButtonName = "Jump"; + + private bool hasTriggered = false; + + /// + /// When the trigger is loaded, optimize the Cutscene. + /// + void Awake() + { + if (Cutscene != null) + { + Cutscene.Optimize(); + } + } + + // When the scene starts trigger the Cutscene if necessary. + void Start() + { + if (StartMethod == StartMethod.OnStart && Cutscene != null) + { + hasTriggered = true; + Cutscene.Play(); + } + } + + void Update() + { + if (SkipButtonName != null || SkipButtonName != string.Empty) + { + // Check if the user wants to skip. + if (Input.GetButtonDown(SkipButtonName)) + { + if (Cutscene != null && Cutscene.State == CinemaDirector.Cutscene.CutsceneState.Playing) + { + Cutscene.Skip(); + } + } + } + } + + + /// + /// If Cutscene is setup to play on trigger, watch for the trigger event. + /// + /// The other collider. + void OnTriggerEnter(Collider other) + { + if (!hasTriggered && other.gameObject == TriggerObject) + { + hasTriggered = true; + Cutscene.Play(); + } + } + } + + public enum StartMethod + { + OnStart, + OnTrigger, + None + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs.meta new file mode 100644 index 0000000..5567913 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/CutsceneTrigger.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: deaa21a8e28e0a34e8c6d465b485c807 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs b/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs new file mode 100644 index 0000000..5a65c5f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs @@ -0,0 +1,145 @@ +// Cinema Suite 2014 + +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A helper class for getting useful data from Director Runtime objects. + /// + public static class DirectorRuntimeHelper + { + /// + /// Returns a list of Track types that are associated with the given Track Group. + /// + /// The track group to be inspected + /// A list of track types that meet the genre criteria of the given track group. + public static List GetAllowedTrackTypes(TrackGroup trackGroup) + { + // Get all the allowed Genres for this track group + TimelineTrackGenre[] genres = new TimelineTrackGenre[0]; + MemberInfo info = trackGroup.GetType(); + foreach (TrackGroupAttribute attribute in info.GetCustomAttributes(typeof(TrackGroupAttribute), true)) + { + if (attribute != null) + { + genres = attribute.AllowedTrackGenres; + break; + } + } + + List allowedTrackTypes = new List(); + foreach (Type type in DirectorRuntimeHelper.GetAllSubTypes(typeof(TimelineTrack))) + { + foreach (TimelineTrackAttribute attribute in type.GetCustomAttributes(typeof(TimelineTrackAttribute), true)) + { + if (attribute != null) + { + foreach (TimelineTrackGenre genre in attribute.TrackGenres) + { + foreach (TimelineTrackGenre genre2 in genres) + { + if (genre == genre2) + { + allowedTrackTypes.Add(type); + break; + } + } + } + break; + } + } + } + + return allowedTrackTypes; + } + + /// + /// Returns a list of Cutscene Item types that are associated with the given Track. + /// + /// The track to look up. + /// A list of valid cutscene item types. + public static List GetAllowedItemTypes(TimelineTrack timelineTrack) + { + // Get all the allowed Genres for this track + CutsceneItemGenre[] genres = new CutsceneItemGenre[0]; + MemberInfo info = timelineTrack.GetType(); + + foreach (TimelineTrackAttribute attribute in info.GetCustomAttributes(typeof(TimelineTrackAttribute), true)) + { + if (attribute != null) + { + genres = attribute.AllowedItemGenres; + break; + } + } + + List allowedItemTypes = new List(); + foreach (Type type in DirectorRuntimeHelper.GetAllSubTypes(typeof(TimelineItem))) + { + foreach (CutsceneItemAttribute attribute in type.GetCustomAttributes(typeof(CutsceneItemAttribute), true)) + { + if (attribute != null) + { + foreach (CutsceneItemGenre genre in attribute.Genres) + { + foreach (CutsceneItemGenre genre2 in genres) + { + if (genre == genre2) + { + allowedItemTypes.Add(type); + break; + } + } + } + break; + } + } + } + + return allowedItemTypes; + } + + /// + /// Get all Sub types from the given parent type. + /// + /// The parent type + /// all children types of the parent. + private static Type[] GetAllSubTypes(System.Type ParentType) + { + List list = new List(); + foreach (Assembly a in System.AppDomain.CurrentDomain.GetAssemblies()) + { + foreach (System.Type type in a.GetTypes()) + { + if (type.IsSubclassOf(ParentType)) + { + list.Add(type); + } + } + } + return list.ToArray(); + } + + /// + /// Retrieve all children of a parent Transform recursively. + /// + /// The parent transform + /// All children of that parent. + public static List GetAllTransformsInHierarchy(Transform parent) + { + List children = new List(); + + foreach (Transform child in parent) + { + children.AddRange(GetAllTransformsInHierarchy(child)); + children.Add(child); + } + return children; + } + + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs.meta new file mode 100644 index 0000000..9a11876 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/DirectorRuntimeHelper.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4532c5757d7cbf244a944fc34ab1c425 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs b/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs new file mode 100644 index 0000000..2c2023e --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs @@ -0,0 +1,11 @@ + +namespace CinemaDirector.Helpers +{ + /// + /// Interface for any item that needs to bake results. + /// + interface IBakeable + { + void Bake(); + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs.meta new file mode 100644 index 0000000..d266bb9 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IBakeable.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36248250e890d3047849d65ba86ba818 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs b/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs new file mode 100644 index 0000000..df78f03 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs @@ -0,0 +1,15 @@ + +namespace CinemaDirector +{ + /// + /// Implement this Interface in Timeline Items that can be optimized in some way before the Cutscene is played. + /// + interface IOptimizable + { + // Can the Item be optimized. In some cases users may need to disable the ability. + bool CanOptimize { get; set; } + + // Perform optimization. + void Optimize(); + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs.meta new file mode 100644 index 0000000..4f5f5f7 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IOptimizable.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 888845eb5a6d93741b1590d5f90a0fa0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs b/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs new file mode 100644 index 0000000..4656625 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs @@ -0,0 +1,16 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector.Helpers +{ + /// + /// Implement this interface with any timeline item that manipulates data in a scene. + /// + interface IRevertable + { + RevertMode EditorRevertMode { get; set; } + RevertMode RuntimeRevertMode { get; set; } + + RevertInfo[] CacheState(); + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs.meta new file mode 100644 index 0000000..ad1a942 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/IRevertable.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d5fe644649420243897123e8ccc5d9a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs b/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs new file mode 100644 index 0000000..5a60564 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs @@ -0,0 +1,108 @@ +// Cinema Suite +using System; +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector.Helpers +{ + /// + /// Holds info related to reverting objects to a former state. + /// + public class RevertInfo + { + private MonoBehaviour MonoBehaviour; + private Type Type; + private object Instance; + private MemberInfo[] MemberInfo; + private object value; + + /// + /// Set up a revert info for a static object. + /// + /// The MonoBehaviour that is making this RevertInfo. + /// The type of the static object + /// The member name of the field/property/method to be called on revert. + /// The current value you want to save. + public RevertInfo(MonoBehaviour monoBehaviour, Type type, string memberName, object value) + { + this.MonoBehaviour = monoBehaviour; + this.Type = type; + this.value = value; + this.MemberInfo = Type.GetMember(memberName); + } + + /// + /// Set up Revert Info for an instance object. + /// + /// The MonoBehaviour that is making this RevertInfo. + /// The instance of the object you want to save. + /// The member name of the field/property/method to be called on revert. + /// The current value you want to save. + public RevertInfo(MonoBehaviour monoBehaviour, object obj, string memberName, object value) + { + this.MonoBehaviour = monoBehaviour; + this.Instance = obj; + this.Type = obj.GetType(); + this.value = value; + this.MemberInfo = Type.GetMember(memberName); + } + + /// + /// Revert the given object to its former state. + /// + public void Revert() + { + if (MemberInfo != null && MemberInfo.Length > 0) + { + if (MemberInfo[0] is FieldInfo) + { + FieldInfo fi = (MemberInfo[0] as FieldInfo); + if (fi.IsStatic || (!fi.IsStatic && Instance != null)) + { + fi.SetValue(Instance, value); + } + } + else if (MemberInfo[0] is PropertyInfo) + { + PropertyInfo pi = (MemberInfo[0] as PropertyInfo); + //if (Instance != null) + { + + pi.SetValue(Instance, value, null); + } + } + else if (MemberInfo[0] is MethodInfo) + { + MethodInfo mi = (MemberInfo[0] as MethodInfo); + if (mi.IsStatic || (!mi.IsStatic && Instance != null)) + { + object[] values = new object[] { value }; + mi.Invoke(Instance, values); + } + } + } + } + + /// + /// Should we apply this revert in runtime. + /// + public RevertMode RuntimeRevert + { + get + { + return (MonoBehaviour as IRevertable).RuntimeRevertMode; + } + } + + /// + /// Should we apply this revert in the editor. + /// + public RevertMode EditorRevert + { + get + { + return (MonoBehaviour as IRevertable).EditorRevertMode; + } + } + } +} diff --git a/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs.meta new file mode 100644 index 0000000..379cae8 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/RevertInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f616863524f26c4d961b2e214b8bdc2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs b/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs new file mode 100644 index 0000000..fb704ee --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs @@ -0,0 +1,26 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Behaviour for capturing screenshots at each frame. + /// + public class ScreenshotCapture : MonoBehaviour + { + public string Folder = "CaptureOutput"; + public int FrameRate = 24; + + void Start() + { + Time.captureFramerate = FrameRate; + System.IO.Directory.CreateDirectory(Folder); + } + + void Update() + { + string name = string.Format("{0}/shot {1:D04}.png", Folder, Time.frameCount); + + Application.CaptureScreenshot(name); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs.meta b/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs.meta new file mode 100644 index 0000000..32e9162 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/Helpers/ScreenshotCapture.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a66d90914943cc04194592e2ab601eaf +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems.meta b/Assets/Cinema Director/System/Runtime/TimelineItems.meta new file mode 100644 index 0000000..7104cbf --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: be84892496cf9ec41b513b7cbc4eba41 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base.meta new file mode 100644 index 0000000..c95744d --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 6e2060e97ed844b43be6014cdd3e0b8c +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs new file mode 100644 index 0000000..a0b5f8f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Curve Clip Items tie Actor component data to animation curves, so that they can be controlled + /// by curves over time. + /// + public abstract class CinemaClipCurve : TimelineAction + { + // The curve data + [SerializeField] + private List curveData = new List(); + + /// + /// Return the Curve Clip data. + /// + public List CurveData + { + get { return curveData; } + } + + protected virtual void initializeClipCurves(MemberClipCurveData data, Component component) { } + + public void AddClipCurveData(Component component, string name, bool isProperty, Type type) + { + MemberClipCurveData data = new MemberClipCurveData(); + data.Type = component.GetType().Name; + data.PropertyName = name; + data.IsProperty = isProperty; + data.PropertyType = UnityPropertyTypeInfo.GetMappedType(type); + initializeClipCurves(data, component); + curveData.Add(data); + } + + protected object evaluate(MemberClipCurveData memberData, float time) + { + object value = null; + switch (memberData.PropertyType) + { + case PropertyTypeInfo.Color: + Color c; + c.r = memberData.Curve1.Evaluate(time); + c.g = memberData.Curve2.Evaluate(time); + c.b = memberData.Curve3.Evaluate(time); + c.a = memberData.Curve4.Evaluate(time); + value = c; + break; + + case PropertyTypeInfo.Double: + case PropertyTypeInfo.Float: + case PropertyTypeInfo.Int: + case PropertyTypeInfo.Long: + value = memberData.Curve1.Evaluate(time); + break; + + case PropertyTypeInfo.Quaternion: + Quaternion q; + q.x = memberData.Curve1.Evaluate(time); + q.y = memberData.Curve2.Evaluate(time); + q.z = memberData.Curve3.Evaluate(time); + q.w = memberData.Curve4.Evaluate(time); + value = q; + break; + + case PropertyTypeInfo.Vector2: + Vector2 v2; + v2.x = memberData.Curve1.Evaluate(time); + v2.y = memberData.Curve2.Evaluate(time); + value = v2; + break; + + case PropertyTypeInfo.Vector3: + Vector3 v3; + v3.x = memberData.Curve1.Evaluate(time); + v3.y = memberData.Curve2.Evaluate(time); + v3.z = memberData.Curve3.Evaluate(time); + value = v3; + break; + + case PropertyTypeInfo.Vector4: + Vector4 v4; + v4.x = memberData.Curve1.Evaluate(time); + v4.y = memberData.Curve2.Evaluate(time); + v4.z = memberData.Curve3.Evaluate(time); + v4.w = memberData.Curve4.Evaluate(time); + value = v4; + break; + } + return value; + } + + private void updateKeyframeTime(float oldTime, float newTime) + { + + foreach (MemberClipCurveData data in curveData) + { + int curveCount = UnityPropertyTypeInfo.GetCurveCount(data.PropertyType); + for (int i = 0; i < curveCount; i++) + { + AnimationCurve animationCurve = data.GetCurve(i); + for (int j = 0; j < animationCurve.length; j++) + { + Keyframe kf = animationCurve.keys[j]; + + if (Mathf.Abs(kf.time - oldTime) < 0.00001) + { + Keyframe newKeyframe = new Keyframe(newTime, kf.value, kf.inTangent, kf.outTangent); + animationCurve.MoveKey(j, newKeyframe); + } + } + } + } + } + + public void TranslateCurves(float amount) + { + base.Firetime += amount; + foreach (MemberClipCurveData data in curveData) + { + int curveCount = UnityPropertyTypeInfo.GetCurveCount(data.PropertyType); + for (int i = 0; i < curveCount; i++) + { + AnimationCurve animationCurve = data.GetCurve(i); + if (amount > 0) + { + for (int j = animationCurve.length - 1; j >= 0; j--) + { + Keyframe kf = animationCurve.keys[j]; + Keyframe newKeyframe = new Keyframe(kf.time + amount, kf.value, kf.inTangent, kf.outTangent); + animationCurve.MoveKey(j, newKeyframe); + } + } + else + { + for (int j = 0; j < animationCurve.length; j++) + { + Keyframe kf = animationCurve.keys[j]; + Keyframe newKeyframe = new Keyframe(kf.time + amount, kf.value, kf.inTangent, kf.outTangent); + animationCurve.MoveKey(j, newKeyframe); + } + } + } + } + } + + public void AlterFiretime(float firetime, float duration) + { + updateKeyframeTime(base.Firetime, firetime); + base.Firetime = firetime; + + updateKeyframeTime(base.Firetime + base.Duration, base.Firetime + duration); + base.Duration = duration; + } + + public void AlterDuration(float duration) + { + updateKeyframeTime(base.Firetime + base.Duration, base.Firetime + duration); + base.Duration = duration; + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs.meta new file mode 100644 index 0000000..883886f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaClipCurve.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49b11a0a6d7f31b44bed018709865582 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs new file mode 100644 index 0000000..59d7f1f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs @@ -0,0 +1,7 @@ + +namespace CinemaDirector +{ + public abstract class CinemaTween : TimelineAction + { + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs.meta new file mode 100644 index 0000000..a176408 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CinemaTween.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c90f59a99f8575643b86e4236adc283b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs new file mode 100644 index 0000000..7bef166 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs @@ -0,0 +1,94 @@ +// Cinema Suite 2014 +using System; + +namespace CinemaDirector +{ + /// + /// The Attribute for Cutscene Items + /// + [AttributeUsage(AttributeTargets.Class)] + public class CutsceneItemAttribute : Attribute + { + private string subCategory; // Sub category for item + private string label; // Name of the item + private CutsceneItemGenre[] genres; // Genres that the item belongs to. + + // Optional required object that the cutscene item should be paired with. + // Example: Audio Clip for audio track items. + private Type requiredObjectType; + + /// + /// The Cutscene Item attribute. + /// + /// The user friendly name of the category this cutscene item belongs to. + /// The user friendly name of the cutscene item. + /// The genres that this Cutscene Item belongs to. + public CutsceneItemAttribute(string category, string label, params CutsceneItemGenre[] genres) + { + this.subCategory = category; + this.label = label; + this.genres = genres; + } + + /// + /// The Cutscene Item attribute. + /// + /// The user friendly name of the category this cutscene item belongs to. + /// The user friendly name of the cutscene item. + /// Optional: required object to be paired with cutscene item. + /// The genres that this Cutscene Item belongs to. + public CutsceneItemAttribute(string category, string label, Type pairedObject, params CutsceneItemGenre[] genres) + { + this.subCategory = category; + this.label = label; + this.requiredObjectType = pairedObject; + this.genres = genres; + } + + /// + /// The category this cutscene item belongs in. + /// + public string Category + { + get + { + return subCategory; + } + } + + /// + /// The name of this cutscene item. + /// + public string Label + { + get + { + return label; + } + } + + /// + /// The genres that this cutscene item belongs to. + /// + public CutsceneItemGenre[] Genres + { + get + { + return genres; + } + } + + /// + /// Get the type of the required object that this cutscene item should be paired with. + /// Null when there is no required object. + /// Example: AudioClip type for CinemaAudio. + /// + public Type RequiredObjectType + { + get + { + return requiredObjectType; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs.meta new file mode 100644 index 0000000..316c778 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/CutsceneItemAttribute.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6c77c140c66ebb4a9dbb386b2b1e182 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs new file mode 100644 index 0000000..1362c70 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs @@ -0,0 +1,74 @@ +using CinemaDirector.Helpers; +using System; +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector +{ + [System.Serializable] + public class MemberClipCurveData + { + public string Type; + public string PropertyName; + public bool IsProperty = true; + public PropertyTypeInfo PropertyType = PropertyTypeInfo.None; + + public AnimationCurve Curve1 = new AnimationCurve(); + public AnimationCurve Curve2 = new AnimationCurve(); + public AnimationCurve Curve3 = new AnimationCurve(); + public AnimationCurve Curve4 = new AnimationCurve(); + + //private object cachedProperty; + + public AnimationCurve GetCurve(int i) + { + if (i == 1) return Curve2; + else if (i == 2) return Curve3; + else if (i == 3) return Curve4; + else return Curve1; + } + + public void Initialize(GameObject Actor) + { + //Component component = Actor.GetComponent(Type); + //cachedProperty = getCurrentValue(component); + } + + internal void Reset(GameObject Actor) + { + //Component component = Actor.GetComponent(Type); + //if (component == null || PropertyName == string.Empty) return; + + //Type type = component.GetType(); + //if (IsProperty) + //{ + // PropertyInfo propertyInfo = type.GetProperty(PropertyName); + // propertyInfo.SetValue(component, cachedProperty, null); + //} + //else + //{ + // FieldInfo fieldInfo = type.GetField(PropertyName); + // fieldInfo.SetValue(component, cachedProperty); + //} + } + + internal object getCurrentValue(Component component) + { + if (component == null || this.PropertyName == string.Empty) return null; + Type type = component.GetType(); + object value = null; + if (this.IsProperty) + { + PropertyInfo propertyInfo = type.GetProperty(this.PropertyName); + value = propertyInfo.GetValue(component, null); + } + else + { + FieldInfo fieldInfo = type.GetField(this.PropertyName); + value = fieldInfo.GetValue(component); + } + return value; + } + + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs.meta new file mode 100644 index 0000000..e0489b0 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/MemberClipCurveData.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38aff62702d2cfa46a8a00a075ad1984 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs new file mode 100644 index 0000000..83ef122 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An action that has some firetime and duration. + /// + public abstract class TimelineAction : TimelineItem + { + [SerializeField] + protected float duration = 0f; + + /// + /// The duration of the action + /// + public float Duration + { + get { return duration; } + set { duration = value; } + } + + /// + /// The end time of this action. (Firetime + Duration). + /// + public float EndTime + { + get + { + return firetime + duration; + } + } + + /// + /// Set a default duration of 5 seconds for most actions. + /// + public override void SetDefaults() + { + duration = 5f; + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs.meta new file mode 100644 index 0000000..e1b34f9 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b16e8bf2a5ea5e469ccbc6ea286ced0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs new file mode 100644 index 0000000..79b3ff1 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A timeline action that has some paired object that has a fixed length. + /// This is ideal for items like Audio clips and Animation clips. + /// + public abstract class TimelineActionFixed : TimelineAction + { + [SerializeField] + private float inTime = 0f; + [SerializeField] + private float outTime = 1f; + [SerializeField] + private float itemLength = 0f; + + public float InTime + { + get { return inTime; } + set + { + inTime = value; + Duration = outTime - inTime; + } + } + + public float OutTime + { + get { return outTime; } + set + { + outTime = value; + Duration = outTime - inTime; + } + } + + public float ItemLength + { + get { return itemLength; } + set { itemLength = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs.meta new file mode 100644 index 0000000..5e78200 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineActionFixed.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eab739d1eae7bfa4faf4ef7613d5f1ba +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs new file mode 100644 index 0000000..b54ce22 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs @@ -0,0 +1,85 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The basic building block of a Cutscene. Maintains a firetime + /// + [ExecuteInEditMode] + public abstract class TimelineItem : MonoBehaviour + { + [SerializeField] + protected float firetime = 0f; + + /// + /// The firetime for this timeline item. Cannot be negative. + /// + public float Firetime + { + get { return this.firetime; } + set + { + firetime = value; + if (firetime < 0f) + { + firetime = 0f; + } + } + } + + /// + /// Called when a cutscene begins or enters preview mode. + /// + public virtual void Initialize() { } + + /// + /// Called when a cutscene ends or exits preview mode. + /// + public virtual void Stop() { } + + /// + /// Called when a new timeline item is created from the Director panel. + /// Override to set defaults to your timeline items. + /// + public virtual void SetDefaults() { } + + /// + /// Called when a new timeline item is created from the Director panel with a paired item. + /// Override to set defaults to your timeline items. + /// + /// The paired item of this timeline item. + public virtual void SetDefaults(UnityEngine.Object PairedItem) { } + + /// + /// The cutscene that this timeline item is associated with. Can return null. + /// + public Cutscene Cutscene + { + get { return ((this.TimelineTrack == null) ? null : this.TimelineTrack.Cutscene); } + } + + /// + /// The track that this timeline item is associated with. Can return null. + /// + public TimelineTrack TimelineTrack + { + get + { + TimelineTrack track = null; + if (transform.parent != null) + { + track = base.transform.parent.GetComponentInParent(); + if (track == null) + { + Debug.LogError("No TimelineTrack found on parent!", this); + } + } + else + { + Debug.LogError("Timeline Item has no parent!", this); + } + return track; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs.meta new file mode 100644 index 0000000..10c13f5 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/Base/TimelineItem.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1df73a15e66ae541bae7cc246d46c2c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs new file mode 100644 index 0000000..4078032 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The base class for all cinema events + /// + [ExecuteInEditMode] + public abstract class CinemaActorAction : TimelineAction + { + /// + /// Called when the running time of the cutscene hits the firetime of the action + /// + public abstract void Trigger(GameObject Actor); + + /// + /// Called at each update when the action is to be played. + /// + public virtual void UpdateTime(GameObject Actor, float time, float deltaTime) { } + + /// + /// Called when the running time of the cutscene exceeds the duration of the action + /// + public abstract void End(GameObject Actor); + + /// + /// Called when the cutscene exists preview/play mode. Return properties to pre-cached state if necessary. + /// + public virtual void Stop(GameObject Actor) { } + + /// + /// Called when the cutscene time is set/skipped manually. + /// + /// The actor to target for this event. + /// The new running time. + /// The deltaTime since the last update call. + public virtual void SetTime(GameObject Actor, float time, float deltaTime) { } + + /// + /// Reverse trigger. Called when scrubbing backwards. + /// + public virtual void ReverseTrigger(GameObject Actor) { } + + /// + /// Reverse End. Called when scrubbing backwards. + /// + public virtual void ReverseEnd(GameObject Actor) { } + + /// + /// Pause any action as necessary + /// + public virtual void Pause(GameObject Actor) { } + + /// + /// Resume from paused. + /// + public virtual void Resume(GameObject Actor) { } + + public int CompareTo(object other) + { + CinemaGlobalAction otherAction = (CinemaGlobalAction)other; + return (int)(otherAction.Firetime - this.Firetime); + } + + /// + /// Get the actors associated with this Actor Action. Can return null. + /// + /// A set of actors related to this actor event. + public virtual List GetActors() + { + IMultiActorTrack track = (TimelineTrack as IMultiActorTrack); + if (track != null) + { + return track.Actors; + } + return null; + } + + /// + /// Called when the cutscene time is set/skipped manually. + /// + [Obsolete("Use SetTime with Actor")] + public virtual void SetTime(float time, float deltaTime) { } + + /// + /// Reverse trigger. Called when scrubbing backwards. + /// + [Obsolete("Use ReverseTrigger with Actor")] + public virtual void ReverseTrigger() { } + + /// + /// Reverse End. Called when scrubbing backwards. + /// + [Obsolete("Use ReverseEnd with Actor")] + public virtual void ReverseEnd() { } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs.meta new file mode 100644 index 0000000..638bb82 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 528b279c4f815c1478c61f5060024787 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs new file mode 100644 index 0000000..9a200df --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs @@ -0,0 +1,192 @@ +using CinemaDirector.Helpers; +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace CinemaDirector +{ + [Serializable, CutsceneItemAttribute("Curve Clip", "Actor Curve Clip", CutsceneItemGenre.CurveClipItem)] + public class CinemaActorClipCurve : CinemaClipCurve, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + public GameObject Actor + { + get + { + GameObject actor = null; + if (transform.parent != null) + { + CurveTrack track = transform.parent.GetComponent(); + if (track != null && track.Actor != null) + { + actor = track.Actor.gameObject; + } + } + return actor; + } + } + + protected override void initializeClipCurves(MemberClipCurveData data, Component component) + { + object value = GetCurrentValue(component, data.PropertyName, data.IsProperty); + PropertyTypeInfo typeInfo = data.PropertyType; + float startTime = Firetime; + float endTime = Firetime + Duration; + + if (typeInfo == PropertyTypeInfo.Int || typeInfo == PropertyTypeInfo.Long || typeInfo == PropertyTypeInfo.Float || typeInfo == PropertyTypeInfo.Double) + { + float x = (float)value; + data.Curve1 = AnimationCurve.Linear(startTime, x, endTime, x); + } + else if (typeInfo == PropertyTypeInfo.Vector2) + { + Vector2 vec2 = (Vector2)value; + data.Curve1 = AnimationCurve.Linear(startTime, vec2.x, endTime, vec2.x); + data.Curve2 = AnimationCurve.Linear(startTime, vec2.y, endTime, vec2.y); + } + else if (typeInfo == PropertyTypeInfo.Vector3) + { + Vector3 vec3 = (Vector3)value; + data.Curve1 = AnimationCurve.Linear(startTime, vec3.x, endTime, vec3.x); + data.Curve2 = AnimationCurve.Linear(startTime, vec3.y, endTime, vec3.y); + data.Curve3 = AnimationCurve.Linear(startTime, vec3.z, endTime, vec3.z); + } + else if (typeInfo == PropertyTypeInfo.Vector4) + { + Vector4 vec4 = (Vector4)value; + data.Curve1 = AnimationCurve.Linear(startTime, vec4.x, endTime, vec4.x); + data.Curve2 = AnimationCurve.Linear(startTime, vec4.y, endTime, vec4.y); + data.Curve3 = AnimationCurve.Linear(startTime, vec4.z, endTime, vec4.z); + data.Curve4 = AnimationCurve.Linear(startTime, vec4.w, endTime, vec4.w); + } + else if (typeInfo == PropertyTypeInfo.Quaternion) + { + Quaternion quaternion = (Quaternion)value; + data.Curve1 = AnimationCurve.Linear(startTime, quaternion.x, endTime, quaternion.x); + data.Curve2 = AnimationCurve.Linear(startTime, quaternion.y, endTime, quaternion.y); + data.Curve3 = AnimationCurve.Linear(startTime, quaternion.z, endTime, quaternion.z); + data.Curve4 = AnimationCurve.Linear(startTime, quaternion.w, endTime, quaternion.w); + } + else if (typeInfo == PropertyTypeInfo.Color) + { + Color color = (Color)value; + data.Curve1 = AnimationCurve.Linear(startTime, color.r, endTime, color.r); + data.Curve2 = AnimationCurve.Linear(startTime, color.g, endTime, color.g); + data.Curve3 = AnimationCurve.Linear(startTime, color.b, endTime, color.b); + data.Curve4 = AnimationCurve.Linear(startTime, color.a, endTime, color.a); + } + } + + public object GetCurrentValue(Component component, string propertyName, bool isProperty) + { + if (component == null || propertyName == string.Empty) return null; + Type type = component.GetType(); + object value = null; + if (isProperty) + { + PropertyInfo propertyInfo = type.GetProperty(propertyName); + value = propertyInfo.GetValue(component, null); + } + else + { + FieldInfo fieldInfo = type.GetField(propertyName); + value = fieldInfo.GetValue(component); + } + return value; + } + + public override void Initialize() + { + foreach (MemberClipCurveData memberData in CurveData) + { + memberData.Initialize(Actor); + } + } + + /// + /// Cache the initial state of the curve clip manipulated values. + /// + /// The Info necessary to revert this event. + public RevertInfo[] CacheState() + { + List reverts = new List(); + if (Actor != null) + { + foreach (MemberClipCurveData memberData in CurveData) + { + Component component = Actor.GetComponent(memberData.Type); + reverts.Add(new RevertInfo(this, component, memberData.PropertyName, memberData.getCurrentValue(component))); + } + } + return reverts.ToArray(); + } + + /// + /// Sample the curve clip at the given time. + /// + /// The time to evaulate for. + public void SampleTime(float time) + { + if (Actor == null) return; + if (Firetime <= time && time <= Firetime + Duration) + { + foreach (MemberClipCurveData memberData in CurveData) + { + if (memberData.Type == string.Empty || memberData.PropertyName == string.Empty) continue; + + Component component = Actor.GetComponent(memberData.Type); + Type componentType = component.GetType(); + + object value = evaluate(memberData, time); + + if (memberData.IsProperty) + { + PropertyInfo propertyInfo = componentType.GetProperty(memberData.PropertyName); + propertyInfo.SetValue(component, value, null); + + //object result = propertyInfo.GetValue(component, null); + } + else + { + FieldInfo fieldInfo = componentType.GetField(memberData.PropertyName); + fieldInfo.SetValue(component, value); + } + } + } + } + + internal void Reset() + { + //foreach (MemberClipCurveData memberData in CurveData) + //{ + // memberData.Reset(Actor); + //} + } + + /// + /// Option for choosing when this curve clip will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this curve clip will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs.meta new file mode 100644 index 0000000..1d213ac --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorClipCurve.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 835ed7cc2c1999349b0593e8c6a509cb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs new file mode 100644 index 0000000..9533342 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs @@ -0,0 +1,62 @@ +using System.Collections.Generic; +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// An implementation of an event that can be performed on an arbitrary actor. + /// + [ExecuteInEditMode] + public abstract class CinemaActorEvent : TimelineItem + { + /// + /// Trigger this event using the given actor. + /// + /// The actor to perform the event on. + public abstract void Trigger(GameObject Actor); + + /// + /// Reverse the trigger. + /// + /// The actor to perform the event on. + public virtual void Reverse(GameObject Actor) { } + + public virtual void SetTimeTo(float deltaTime) { } + + public virtual void Pause() { } + + public virtual void Resume() { } + + public virtual void Initialize(GameObject Actor) { } + + public virtual void Stop(GameObject Actor) { } + + /// + /// Get the actors associated with this Actor Event. Can return null. + /// + /// A set of actors related to this actor event. + public virtual List GetActors() + { + IMultiActorTrack track = (TimelineTrack as IMultiActorTrack); + if (track != null) + { + return track.Actors; + } + return null; + } + + /// + /// The Actor Track Group associated with this event. + /// + public ActorTrackGroup ActorTrackGroup + { + get + { + return this.TimelineTrack.TrackGroup as ActorTrackGroup; + } + } + + + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs.meta new file mode 100644 index 0000000..4f50d88 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaActorEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0abde15fca6496647964f2ba77c0d67e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs new file mode 100644 index 0000000..dd2ab51 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; + +namespace CinemaDirector +{ + [ExecuteInEditMode] + public abstract class CinemaGlobalAction : TimelineAction, IComparable + { + /// + /// Called when the running time of the cutscene hits the firetime of the action + /// + public abstract void Trigger(); + + /// + /// Called at each update when the action is to be played. + /// + public virtual void UpdateTime(float time, float deltaTime) { } + + /// + /// Called when the running time of the cutscene exceeds the duration of the action + /// + public abstract void End(); + + /// + /// Called when the cutscene time is set/skipped manually. + /// + public virtual void SetTime(float time, float deltaTime) { } + + /// + /// Pause any action as necessary + /// + public virtual void Pause() { } + + /// + /// Resume from paused. + /// + public virtual void Resume() { } + + /// + /// Reverse trigger. Called when scrubbing backwards. + /// + public virtual void ReverseTrigger() { } + + /// + /// Reverse End. Called when scrubbing backwards. + /// + public virtual void ReverseEnd() { } + + public int CompareTo(object other) + { + CinemaGlobalAction otherAction = (CinemaGlobalAction)other; + return (int)(otherAction.Firetime - this.Firetime); + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs.meta new file mode 100644 index 0000000..0d4f5ef --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalAction.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 445497ed074b6954d9649bac3a793137 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs new file mode 100644 index 0000000..fccecd0 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs @@ -0,0 +1,21 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A basic global event that can be Triggered when the Firetime is reached. + /// + public abstract class CinemaGlobalEvent : TimelineItem + { + /// + /// The event is triggered when the Cutscene's runningtime passes the fire time. + /// + public abstract void Trigger(); + + /// + /// The event can be triggered when the Cutscene is played in reverse passing the fire time. + /// + public virtual void Reverse() { } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs.meta new file mode 100644 index 0000000..89ee9cd --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaGlobalEvent.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65253bc30c0602b48bd29cf149c7c1fd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs new file mode 100644 index 0000000..1cb170b --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs @@ -0,0 +1,158 @@ +using CinemaDirector.Helpers; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + [Serializable, CutsceneItemAttribute("Curve Clip", "MultiActor Curve Clip", CutsceneItemGenre.MultiActorCurveClipItem)] + public class CinemaMultiActorCurveClip : CinemaClipCurve, IRevertable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + public List Components = new List(); + public List Properties = new List(); + + public CinemaMultiActorCurveClip() + { + CurveData.Add(new MemberClipCurveData()); + } + + public void SampleTime(float time) + { + if (Firetime <= time && time <= Firetime + Duration) + { + MemberClipCurveData data = CurveData[0]; + if (data == null) return; + + if (data.PropertyType == PropertyTypeInfo.None) + { + return; + } + + for (int i = 0; i < Components.Count; i++) + { + object value = null; + switch (data.PropertyType) + { + case PropertyTypeInfo.Color: + Color c; + c.r = data.Curve1.Evaluate(time); + c.g = data.Curve2.Evaluate(time); + c.b = data.Curve3.Evaluate(time); + c.a = data.Curve4.Evaluate(time); + value = c; + break; + + case PropertyTypeInfo.Double: + case PropertyTypeInfo.Float: + case PropertyTypeInfo.Int: + case PropertyTypeInfo.Long: + value = data.Curve1.Evaluate(time); + break; + + case PropertyTypeInfo.Quaternion: + Quaternion q; + q.x = data.Curve1.Evaluate(time); + q.y = data.Curve2.Evaluate(time); + q.z = data.Curve3.Evaluate(time); + q.w = data.Curve4.Evaluate(time); + value = q; + break; + + case PropertyTypeInfo.Vector2: + Vector2 v2; + v2.x = data.Curve1.Evaluate(time); + v2.y = data.Curve2.Evaluate(time); + value = v2; + break; + + case PropertyTypeInfo.Vector3: + Vector3 v3; + v3.x = data.Curve1.Evaluate(time); + v3.y = data.Curve2.Evaluate(time); + v3.z = data.Curve3.Evaluate(time); + value = v3; + break; + + case PropertyTypeInfo.Vector4: + Vector4 v4; + v4.x = data.Curve1.Evaluate(time); + v4.y = data.Curve2.Evaluate(time); + v4.z = data.Curve3.Evaluate(time); + v4.w = data.Curve4.Evaluate(time); + value = v4; + break; + } + if (Components[i] != null && Properties[i] != null && Properties[i] != "None") + { + Components[i].GetType().GetProperty(Properties[i]).SetValue(Components[i], value, null); + } + } + } + } + + public List Actors + { + get + { + List actors = new List(); + if (transform.parent != null) + { + MultiCurveTrack track = transform.parent.GetComponent(); + MultiActorTrackGroup trackgroup = (track.TrackGroup as MultiActorTrackGroup); + actors = trackgroup.Actors; + } + return actors; + } + } + + + /// + /// Cache the initial state of the curve clip manipulated values. + /// + /// The Info necessary to revert this clip. + public RevertInfo[] CacheState() + { + List reverts = new List(); + for (int i = 0; i < Actors.Count; i++) + { + if (Components[i] != null && Properties[i] != null && Properties[i] != "None") + { + Component component = Components[i]; + reverts.Add(new RevertInfo(this, component, Properties[i], + Components[i].GetType().GetProperty(Properties[i]).GetValue(Components[i], null))); + } + } + return reverts.ToArray(); + } + + internal void Revert() + { + } + + /// + /// Option for choosing when this curve clip will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this curve clip will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs.meta new file mode 100644 index 0000000..394a5a9 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineItems/CinemaMultiActorCurveClip.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3500bfa7a66c67e4b8c319d9009658ad +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks.meta new file mode 100644 index 0000000..59e3248 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: ea1a75ece2e3ca04f9cb032d4883015f +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs new file mode 100644 index 0000000..ffb5444 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs @@ -0,0 +1,286 @@ +using System; +// Cinema Suite +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A track which maintains all timeline items marked for actor tracks and multi actor tracks. + /// + [TimelineTrackAttribute("Actor Track", new TimelineTrackGenre[] { TimelineTrackGenre.ActorTrack, TimelineTrackGenre.MultiActorTrack }, CutsceneItemGenre.ActorItem)] + public class ActorItemTrack : TimelineTrack, IActorTrack, IMultiActorTrack + { + /// + /// Initialize this Track and all the timeline items contained within. + /// + public override void Initialize() + { + base.Initialize(); + + foreach (CinemaActorEvent cinemaEvent in this.ActorEvents) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + cinemaEvent.Initialize(actor.gameObject); + } + } + } + } + + /// + /// The cutscene has been set to an arbitrary time by the user. + /// Processing must take place to catch up to the new time. + /// + /// The new cutscene running time + public override void SetTime(float time) + { + float previousTime = elapsedTime; + base.SetTime(time); + + foreach (TimelineItem item in GetTimelineItems()) + { + // Check if it is an actor event. + CinemaActorEvent cinemaEvent = item as CinemaActorEvent; + if (cinemaEvent != null) + { + if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + cinemaEvent.Trigger(actor.gameObject); + } + } + else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + cinemaEvent.Reverse(actor.gameObject); + } + } + } + + // Check if it is an actor action. + CinemaActorAction action = item as CinemaActorAction; + if (action != null) + { + foreach (Transform actor in Actors) + { + if (actor != null) + action.SetTime(actor.gameObject, (time - action.Firetime), time - previousTime); + } + } + } + } + + /// + /// Update this track since the last frame. + /// + /// The new running time. + /// The deltaTime since last update. + public override void UpdateTrack(float time, float deltaTime) + { + float previousTime = base.elapsedTime; + base.UpdateTrack(time, deltaTime); + + foreach (TimelineItem item in GetTimelineItems()) + { + // Check if it is an actor event. + CinemaActorEvent cinemaEvent = item as CinemaActorEvent; + if (cinemaEvent != null) + { + if ((previousTime < cinemaEvent.Firetime) && (((base.elapsedTime >= cinemaEvent.Firetime)))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + cinemaEvent.Trigger(actor.gameObject); + } + } + if (((previousTime >= cinemaEvent.Firetime) && (base.elapsedTime < cinemaEvent.Firetime))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + cinemaEvent.Reverse(actor.gameObject); + } + } + } + + CinemaActorAction action = item as CinemaActorAction; + if (action != null) + { + if ((previousTime < action.Firetime && base.elapsedTime >= action.Firetime) && base.elapsedTime < action.EndTime) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + action.Trigger(actor.gameObject); + } + } + } + else if (previousTime <= action.EndTime && base.elapsedTime > action.EndTime) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + action.End(actor.gameObject); + } + } + } + else if (previousTime >= action.Firetime && previousTime < action.EndTime && base.elapsedTime < action.Firetime) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + action.ReverseTrigger(actor.gameObject); + } + } + } + else if ((previousTime > action.EndTime && (base.elapsedTime > action.Firetime) && (base.elapsedTime <= action.EndTime))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + action.ReverseEnd(actor.gameObject); + } + } + } + else if ((base.elapsedTime > action.Firetime) && (base.elapsedTime <= action.EndTime)) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + float runningTime = time - action.Firetime; + action.UpdateTime(actor.gameObject, runningTime, deltaTime); + } + } + } + } + } + } + + /// + /// Resume playback after being paused. + /// + public override void Resume() + { + base.Resume(); + foreach (TimelineItem item in GetTimelineItems()) + { + CinemaActorAction action = item as CinemaActorAction; + if (action != null) + { + if (((elapsedTime > action.Firetime)) && (elapsedTime < (action.Firetime + action.Duration))) + { + foreach (Transform actor in Actors) + { + if (actor != null) + { + action.Resume(actor.gameObject); + } + } + } + } + } + } + + /// + /// Stop the playback of this track. + /// + public override void Stop() + { + base.Stop(); + base.elapsedTime = 0f; + foreach (TimelineItem item in GetTimelineItems()) + { + CinemaActorEvent cinemaEvent = item as CinemaActorEvent; + if (cinemaEvent != null) + { + foreach (Transform actor in Actors) + { + if (actor != null) + cinemaEvent.Stop(actor.gameObject); + } + } + + CinemaActorAction action = item as CinemaActorAction; + if (action != null) + { + foreach (Transform actor in Actors) + { + if (actor != null) + action.Stop(actor.gameObject); + } + } + } + } + + /// + /// Get the Actor associated with this track. Can return null. + /// + public Transform Actor + { + get + { + ActorTrackGroup atg = this.TrackGroup as ActorTrackGroup; + if (atg == null) + { + Debug.LogError("No ActorTrackGroup found on parent.", this); + return null; + } + return atg.Actor; + } + } + + /// + /// Get the Actors associated with this track. Can return null. + /// In the case of MultiActors it will return the full list. + /// + public List Actors + { + get + { + ActorTrackGroup trackGroup = TrackGroup as ActorTrackGroup; + if (trackGroup != null) + { + List actors = new List() { }; + actors.Add(trackGroup.Actor); + return actors; + } + + MultiActorTrackGroup multiActorTrackGroup = TrackGroup as MultiActorTrackGroup; + if (multiActorTrackGroup != null) + { + return multiActorTrackGroup.Actors; + } + return null; + } + } + + public CinemaActorEvent[] ActorEvents + { + get + { + return base.GetComponentsInChildren(); + } + } + + public CinemaActorAction[] ActorActions + { + get + { + return base.GetComponentsInChildren(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs.meta new file mode 100644 index 0000000..0e8eb71 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/ActorItemTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5ba75415c29e8f498b4259e5bba527f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs new file mode 100644 index 0000000..885d8b3 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs @@ -0,0 +1,102 @@ + +namespace CinemaDirector +{ + /// + /// A track designed specifically to hold audio items. + /// + [TimelineTrackAttribute("Audio Track", TimelineTrackGenre.GlobalTrack, CutsceneItemGenre.AudioClipItem)] + public class AudioTrack : TimelineTrack + { + /// + /// Set the track to an arbitrary time. + /// + /// The new time. + public override void SetTime(float time) + { + foreach (CinemaAudio cinemaAudio in AudioClips) + { + float audioTime = time - cinemaAudio.Firetime; + cinemaAudio.SetTime(audioTime); + } + } + + /// + /// Pause all Audio Clips that are currently playing. + /// + public override void Pause() + { + foreach (CinemaAudio cinemaAudio in AudioClips) + { + cinemaAudio.Pause(); + } + } + + /// + /// Update the track and play any newly triggered items. + /// + /// The new running time. + /// The deltaTime since the last update call. + public override void UpdateTrack(float time, float deltaTime) + { + float elapsedTime = base.elapsedTime; + base.elapsedTime = time; + + foreach (CinemaAudio cinemaAudio in AudioClips) + { + if (cinemaAudio != null) + { + if (((elapsedTime < cinemaAudio.Firetime) || (elapsedTime <= 0f)) && (((base.elapsedTime >= cinemaAudio.Firetime)))) + { + cinemaAudio.Trigger(); + } + if ((base.elapsedTime > cinemaAudio.Firetime) && (base.elapsedTime <= (cinemaAudio.Firetime + cinemaAudio.Duration))) + { + float audioTime = time - cinemaAudio.Firetime; + cinemaAudio.UpdateTime(audioTime, deltaTime); + } + if (((elapsedTime <= (cinemaAudio.Firetime + cinemaAudio.Duration)) && (base.elapsedTime > (cinemaAudio.Firetime + cinemaAudio.Duration)))) + { + cinemaAudio.End(); + } + } + } + } + + /// + /// Resume playing audio clips after calling a Pause. + /// + public override void Resume() + { + foreach (CinemaAudio cinemaAudio in this.AudioClips) + { + if (((base.Cutscene.RunningTime > cinemaAudio.Firetime)) && (base.Cutscene.RunningTime < (cinemaAudio.Firetime + cinemaAudio.Duration))) + { + cinemaAudio.Resume(); + } + } + } + + /// + /// Stop playback of all playing audio items. + /// + public override void Stop() + { + base.elapsedTime = 0f; + foreach (CinemaAudio cinemaAudio in AudioClips) + { + cinemaAudio.Stop(); + } + } + + /// + /// Get all cinema audio objects associated with this audio track + /// + public CinemaAudio[] AudioClips + { + get + { + return GetComponentsInChildren(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs.meta new file mode 100644 index 0000000..b172b3d --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/AudioTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 933d0873fec0d0b4ba64937b697c194b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base.meta new file mode 100644 index 0000000..4cc0b72 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 99ff45f8d8ec28646926d9004aa660bd +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs new file mode 100644 index 0000000..ca91b33 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs @@ -0,0 +1,18 @@ + +using UnityEngine; +namespace CinemaDirector +{ + /// + /// Interface to implement with any track that is made to be held in an actor track group. + /// + public interface IActorTrack + { + /// + /// Get the single Actor associated with this Actor Track. + /// + Transform Actor + { + get; + } + } +} diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs.meta new file mode 100644 index 0000000..e7f610c --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IActorTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c631a3d5bdd0b8a459a1b5dbab28d7cd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs new file mode 100644 index 0000000..f8bf904 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs @@ -0,0 +1,20 @@ + +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Implement this interface in any track that is made for multiple actors. + /// + public interface IMultiActorTrack + { + /// + /// Get the Actors associated with this Track. + /// + List Actors + { + get; + } + } +} diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs.meta new file mode 100644 index 0000000..986a9f0 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/IMultiActorTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9dbf859c73d29247b77fabd010412c1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs new file mode 100644 index 0000000..cd4f6fb --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs @@ -0,0 +1,303 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + public abstract class TimelineTrack : MonoBehaviour, IOptimizable + { + [SerializeField] + private int ordinal = -1; // Ordering of Tracks + + [SerializeField] + private bool canOptimize = true; // If true, this Track will load all items into cache on Optimize(). + + // Options for when this Track will execute its Timeline Items. + public PlaybackMode PlaybackMode = PlaybackMode.RuntimeAndEdit; + + protected float elapsedTime; + + // A cache of the TimelineItems for optimization purposes. + protected TimelineItem[] itemCache; + + // A list of the cutscene item types that this Track is allowed to contain. + protected List allowedItemTypes; + + private bool hasBeenOptimized = false; + + /// + /// Prepares the TimelineTrack by caching all TimelineItems contained inside of it. + /// + public virtual void Optimize() + { + if (canOptimize) + { + itemCache = GetTimelineItems(); + } + foreach (TimelineItem item in GetTimelineItems()) + { + if (item is IOptimizable) + { + (item as IOptimizable).Optimize(); + } + } + hasBeenOptimized = true; + } + + /// + /// Perform any initialization before the cutscene begins a fresh playback + /// + public virtual void Initialize() + { + elapsedTime = -1f; + foreach (TimelineItem item in GetTimelineItems()) + { + item.Initialize(); + } + } + + /// + /// Update the track to the given time + /// + /// + public virtual void UpdateTrack(float runningTime, float deltaTime) + { + float previousTime = elapsedTime; + elapsedTime = runningTime; + + foreach (TimelineItem item in GetTimelineItems()) + { + CinemaGlobalEvent cinemaEvent = item as CinemaGlobalEvent; + if (cinemaEvent == null) continue; + + if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) + { + cinemaEvent.Trigger(); + } + else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) + { + cinemaEvent.Reverse(); + } + } + + foreach (TimelineItem item in GetTimelineItems()) + { + CinemaGlobalAction action = item as CinemaGlobalAction; + if (action == null) continue; + if ((previousTime < action.Firetime && elapsedTime >= action.Firetime) && elapsedTime < action.EndTime) + { + action.Trigger(); + } + else if ((previousTime < action.EndTime) && (elapsedTime >= action.EndTime)) + { + action.End(); + } + else if (previousTime > action.Firetime && previousTime <= action.EndTime && elapsedTime < action.Firetime) + { + action.ReverseTrigger(); + } + else if ((previousTime > (action.EndTime) && (elapsedTime > action.Firetime) && (elapsedTime <= action.EndTime))) + { + action.ReverseEnd(); + } + else if ((elapsedTime > action.Firetime) && (elapsedTime < action.EndTime)) + { + float t = runningTime - action.Firetime; + action.UpdateTime(t, deltaTime); + } + } + } + + /// + /// Notify track items that the cutscene has been paused + /// + public virtual void Pause() { } + + /// + /// Notify track items that the cutscene has been resumed from a paused state. + /// + public virtual void Resume() { } + + /// + /// The cutscene has been set to an arbitrary time by the user. + /// Processing must take place to catch up to the new time. + /// + /// The new cutscene running time + public virtual void SetTime(float time) + { + float previousTime = elapsedTime; + elapsedTime = time; + + foreach (TimelineItem item in GetTimelineItems()) + { + // Check if it is a global event. + CinemaGlobalEvent cinemaEvent = item as CinemaGlobalEvent; + if (cinemaEvent != null) + { + if ((previousTime < cinemaEvent.Firetime) && (((elapsedTime >= cinemaEvent.Firetime)))) + { + cinemaEvent.Trigger(); + } + else if (((previousTime >= cinemaEvent.Firetime) && (elapsedTime < cinemaEvent.Firetime))) + { + cinemaEvent.Reverse(); + } + } + + // Check if it is a global action. + CinemaGlobalAction action = item as CinemaGlobalAction; + if (action != null) + { + action.SetTime((time - action.Firetime), time - previousTime); + } + } + } + + /// + /// Retrieve a list of important times for this track within the given range. + /// + /// The starting point of the range. + /// The end point of the range. + /// A list of ordered milestone times within the given range. + public virtual List GetMilestones(float from, float to) + { + bool isReverse = from > to; + + List times = new List(); + foreach (TimelineItem item in GetTimelineItems()) + { + if ((!isReverse && from < item.Firetime && to >= item.Firetime) || (isReverse && from > item.Firetime && to <= item.Firetime)) + { + if (!times.Contains(item.Firetime)) + { + times.Add(item.Firetime); + } + } + + if (item is TimelineAction) + { + float endTime = (item as TimelineAction).EndTime; + if ((!isReverse && from < endTime && to >= endTime) || (isReverse && from > endTime && to <= endTime)) + { + if (!times.Contains(endTime)) + { + times.Add(endTime); + } + } + } + } + times.Sort(); + return times; + } + + /// + /// Notify the track items that the cutscene has been stopped + /// + public virtual void Stop() + { + foreach (TimelineItem item in GetTimelineItems()) + { + item.Stop(); + } + } + + /// + /// Returns all allowed Timeline Item types. + /// + /// A list of allowed cutscene item types. + public List GetAllowedCutsceneItems() + { + if (allowedItemTypes == null) + { + allowedItemTypes = DirectorRuntimeHelper.GetAllowedItemTypes(this); + } + return allowedItemTypes; + } + + /// + /// The Cutscene that this Track is associated with. Can return null. + /// + public Cutscene Cutscene + { + get { return ((this.TrackGroup == null) ? null : this.TrackGroup.Cutscene); } + } + + /// + /// The TrackGroup associated with this Track. Can return null. + /// + public TrackGroup TrackGroup + { + get + { + TrackGroup group = null; + if (transform.parent != null) + { + group = transform.parent.GetComponentInParent(); + if (group == null) + { + Debug.LogError("No TrackGroup found on parent.", this); + } + } + else + { + Debug.LogError("Track has no parent.", this); + } + return group; + } + } + + /// + /// Ordinal for UI ranking. + /// + public int Ordinal + { + get + { + return ordinal; + } + set + { + ordinal = value; + } + } + + /// + /// Enable this if the Track does not have Items added/removed during running. + /// + public bool CanOptimize + { + get { return canOptimize; } + set { canOptimize = value; } + } + + /// + /// Get all TimelineItems that are allowed to be in this Track. + /// + /// A filtered list of Timeline Items. + public TimelineItem[] GetTimelineItems() + { + // Return the cache if possible + if (hasBeenOptimized) + { + return itemCache; + } + + List items = new List(); + foreach (Type t in GetAllowedCutsceneItems()) + { + var components = GetComponentsInChildren(t); + foreach (var component in components) + { + items.Add((TimelineItem)component); + } + } + return items.ToArray(); + } + + public virtual TimelineItem[] TimelineItems + { + get { return base.GetComponentsInChildren(); } + } + } + +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs.meta new file mode 100644 index 0000000..76acd40 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4efd897a1b77d704890c3cc0ebbbe868 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs new file mode 100644 index 0000000..7e9ccde --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs @@ -0,0 +1,81 @@ +// Cinema Suite 2014 +using System; +using System.Collections.Generic; + +namespace CinemaDirector +{ + /// + /// The Attribute for tracks. + /// + [AttributeUsage(AttributeTargets.Class)] + public class TimelineTrackAttribute : Attribute + { + // The user friendly name for this Track. + private string label; + + // The genres of this track. + private List trackGenres = new List(); + + // The genres of items that this track can contain. + private List itemGenres = new List(); + + /// + /// Attribute for Track Groups + /// + /// The name of this track group. + /// The Genres of this track. + /// The Genres allowed to be contained in this track. + public TimelineTrackAttribute(string label, TimelineTrackGenre[] TrackGenres, params CutsceneItemGenre[] AllowedItemGenres) + { + this.label = label; + this.trackGenres.AddRange(TrackGenres); + this.itemGenres.AddRange(AllowedItemGenres); + } + + /// + /// Attribute for Track Groups. + /// + /// The name of this track group. + /// The Genre of this track. + /// The Genres allowed to be contained in this track. + public TimelineTrackAttribute(string label, TimelineTrackGenre TrackGenre, params CutsceneItemGenre[] AllowedItemGenres) + { + this.label = label; + this.trackGenres.Add(TrackGenre); + this.itemGenres.AddRange(AllowedItemGenres); + } + + /// + /// The label of this track. + /// + public string Label + { + get + { + return label; + } + } + + /// + /// The genres of this Track. + /// + public TimelineTrackGenre[] TrackGenres + { + get + { + return trackGenres.ToArray(); + } + } + + /// + /// The allowed item genres for this track. + /// + public CutsceneItemGenre[] AllowedItemGenres + { + get + { + return itemGenres.ToArray(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs.meta new file mode 100644 index 0000000..c2fda43 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/Base/TimelineTrackAttribute.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e97b5b6f8dad11d4bb315ceee8746f9b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs new file mode 100644 index 0000000..f4e78ca --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs @@ -0,0 +1,66 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// A track designed to hold Actor Curve Clip items. + /// + [TimelineTrackAttribute("Curve Track", TimelineTrackGenre.ActorTrack, CutsceneItemGenre.CurveClipItem)] + public class CurveTrack : TimelineTrack, IActorTrack + { + /// + /// Update all curve items. + /// + /// The new running time. + /// The deltaTime since last update. + public override void UpdateTrack(float time, float deltaTime) + { + base.elapsedTime = time; + foreach (CinemaActorClipCurve actorClipCurve in this.TimelineItems) + { + actorClipCurve.SampleTime(time); + } + } + + /// + /// Set the track to an arbitrary time. + /// + /// The new running time. + public override void SetTime(float time) + { + base.elapsedTime = time; + foreach (CinemaActorClipCurve actorClipCurve in this.TimelineItems) + { + actorClipCurve.SampleTime(time); + } + } + + /// + /// Stop and reset all the curve data. + /// + public override void Stop() + { + foreach (CinemaActorClipCurve actorClipCurve in this.TimelineItems) + { + actorClipCurve.Reset(); + } + } + + /// + /// Get the Actor associated with this Curve Track. + /// + public Transform Actor + { + get + { + ActorTrackGroup atg = this.TrackGroup as ActorTrackGroup; + if (atg == null) + { + Debug.LogError("No ActorTrackGroup found on parent.", this); + return null; + } + return atg.Actor; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs.meta new file mode 100644 index 0000000..193612c --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/CurveTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ee29e68f81b83642bee1811dd4e7925 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs new file mode 100644 index 0000000..dca2562 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs @@ -0,0 +1,49 @@ +// Cinema Suite 2014 + +using UnityEngine; +namespace CinemaDirector +{ + [TimelineTrackAttribute("Dialogue Track", TimelineTrackGenre.CharacterTrack, CutsceneItemGenre.AudioClipItem)] + public class DialogueTrack : AudioTrack, IActorTrack + { + [SerializeField] + private Transform anchor; + + public override void Initialize() + { + base.Initialize(); + setTransform(); + } + + public override void UpdateTrack(float time, float deltaTime) + { + setTransform(); + base.UpdateTrack(time, deltaTime); + } + + private void setTransform() + { + if (anchor != null) + { + this.transform.position = anchor.position; + } + else if (Actor != null) + { + this.transform.position = Actor.transform.position; + } + } + + public Transform Actor + { + get + { + ActorTrackGroup component = base.transform.parent.GetComponent(); + if (component == null) + { + return null; + } + return component.Actor; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs.meta new file mode 100644 index 0000000..8f777c8 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/DialogueTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23bcac684ea00804f9caa0e33690b5fc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs new file mode 100644 index 0000000..7952786 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs @@ -0,0 +1,46 @@ +using UnityEngine; + +namespace CinemaDirector +{ + [TimelineTrackAttribute("Global Track", TimelineTrackGenre.GlobalTrack, CutsceneItemGenre.GlobalItem)] + public class GlobalItemTrack : TimelineTrack + { + public CinemaGlobalEvent[] Events + { + get + { + return base.GetComponentsInChildren(); + } + } + + public CinemaGlobalAction[] Actions + { + get + { + return base.GetComponentsInChildren(); + } + } + + public override TimelineItem[] TimelineItems + { + get + { + CinemaGlobalEvent[] events = Events; + CinemaGlobalAction[] actions = Actions; + + TimelineItem[] items = new TimelineItem[events.Length + actions.Length]; + for (int i = 0; i < events.Length; i++) + { + items[i] = events[i]; + } + + for (int i = 0; i < actions.Length; i++) + { + items[i + events.Length] = actions[i]; + } + + return items; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs.meta new file mode 100644 index 0000000..3d103a7 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/GlobalItemTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db77ac72882afb443bab29b875c43ad0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs new file mode 100644 index 0000000..adcb8dd --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs @@ -0,0 +1,12 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Track for containing only mecanim Animator related content. + /// + [TimelineTrackAttribute("Mecanim Track", TimelineTrackGenre.CharacterTrack, CutsceneItemGenre.MecanimItem)] + public class MecanimTrack : ActorItemTrack + { } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs.meta new file mode 100644 index 0000000..5de3a57 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/MecanimTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 421c4f0e071d7fa43adafb0da621dbea +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs new file mode 100644 index 0000000..5df09a8 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs @@ -0,0 +1,56 @@ +// Cinema Suite 2014 + +using UnityEngine; +namespace CinemaDirector +{ + [TimelineTrackAttribute("Curve Track", TimelineTrackGenre.MultiActorTrack, CutsceneItemGenre.MultiActorCurveClipItem)] + public class MultiCurveTrack : TimelineTrack, IActorTrack + { + + public override void Initialize() + { + foreach (CinemaMultiActorCurveClip clipCurve in this.TimelineItems) + { + clipCurve.Initialize(); + } + } + + public override void UpdateTrack(float time, float deltaTime) + { + base.elapsedTime = time; + foreach (CinemaMultiActorCurveClip clipCurve in this.TimelineItems) + { + clipCurve.SampleTime(time); + } + } + + public override void Stop() + { + foreach (CinemaMultiActorCurveClip clipCurve in this.TimelineItems) + { + clipCurve.Revert(); + } + } + + public override TimelineItem[] TimelineItems + { + get + { + return GetComponentsInChildren(); + } + } + + public Transform Actor + { + get + { + ActorTrackGroup component = base.transform.parent.GetComponent(); + if (component == null) + { + return null; + } + return component.Actor; + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs.meta new file mode 100644 index 0000000..69e76ed --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/MultiCurveTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b90f935e22455e3419cd3f59572061b7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs new file mode 100644 index 0000000..6ef63c6 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs @@ -0,0 +1,159 @@ +// Cinema Suite +using System; +using UnityEngine; + +namespace CinemaDirector +{ + public delegate void ShotBeginsEventHandler(object sender, ShotEventArgs e); + public delegate void ShotEndsEventHandler(object sender, ShotEventArgs e); + + public class ShotEventArgs : EventArgs + { + public CinemaShot shot; + + public ShotEventArgs(CinemaShot shot) + { + this.shot = shot; + } + } + + /// + /// A track that sorts shots and manages associated cameras. + /// + [TimelineTrackAttribute("Shot Track", TimelineTrackGenre.GlobalTrack, CutsceneItemGenre.CameraShot)] + public class ShotTrack : TimelineTrack + { + public event ShotEndsEventHandler ShotEnds; + public event ShotBeginsEventHandler ShotBegins; + + /// + /// Initialize the shot track by enabling the first Camera and disabling all others in the track. + /// + public override void Initialize() + { + base.elapsedTime = 0f; + + CinemaShot firstCamera = null; + foreach (CinemaShot shot in GetTimelineItems()) + { + shot.Initialize(); + } + + foreach (CinemaShot shot in GetTimelineItems()) + { + if (shot.Firetime == 0) + { + firstCamera = shot; + } + else + { + shot.End(); + } + } + + if (firstCamera != null) + { + firstCamera.Trigger(); + if (ShotBegins != null) + { + ShotBegins(this, new ShotEventArgs(firstCamera)); + } + } + } + + /// + /// Update the Shot Track by deltaTime. Will fire ShotBegins and ShotEnds events. + /// + /// The current running time. + /// The deltaTime since the last update. + public override void UpdateTrack(float time, float deltaTime) + { + float previousTime = base.elapsedTime; + base.elapsedTime = time; + + foreach (CinemaShot shot in GetTimelineItems()) + { + float endTime = shot.CutTime + shot.Duration; + if ((previousTime <= shot.CutTime) && (base.elapsedTime >= shot.CutTime) && (base.elapsedTime < endTime)) + { + shot.Trigger(); + if (ShotBegins != null) + { + ShotBegins(this, new ShotEventArgs(shot)); + } + } + else if ((previousTime >= endTime) && (base.elapsedTime < endTime) && (base.elapsedTime >= shot.CutTime)) + { + shot.Trigger(); + if (ShotBegins != null) + { + ShotBegins(this, new ShotEventArgs(shot)); + } + } + else if ((previousTime >= shot.CutTime) && (previousTime < endTime) && (base.elapsedTime >= endTime)) + { + shot.End(); + if (ShotEnds != null) + { + ShotEnds(this, new ShotEventArgs(shot)); + } + } + else if ((previousTime > shot.CutTime) && (previousTime < endTime) && (base.elapsedTime < shot.CutTime)) + { + shot.End(); + if (ShotEnds != null) + { + ShotEnds(this, new ShotEventArgs(shot)); + } + } + } + } + + /// + /// The shot track will jump to the given time. Disabling the current shot and enabling the new one. + /// + /// The new running time. + public override void SetTime(float time) + { + CinemaShot previousShot = null; + CinemaShot newShot = null; + + // Get the old shot and the new shot + foreach (CinemaShot shot in GetTimelineItems()) + { + float endTime = shot.CutTime + shot.Duration; + if ((elapsedTime >= shot.CutTime) && (elapsedTime < endTime)) + { + previousShot = shot; + } + if ((time >= shot.CutTime) && (time < endTime)) + { + newShot = shot; + } + } + + // Trigger them as appropriate. + if (newShot != previousShot) + { + if (previousShot != null) + { + previousShot.End(); + if (ShotEnds != null) + { + ShotEnds(this, new ShotEventArgs(previousShot)); + } + } + if (newShot != null) + { + newShot.Trigger(); + if (ShotBegins != null) + { + ShotBegins(this, new ShotEventArgs(newShot)); + } + } + } + + elapsedTime = time; + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs.meta new file mode 100644 index 0000000..3aa9e9f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/ShotTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9b5c5ddb4f9d0a4ca33e7c33982df1d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs b/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs new file mode 100644 index 0000000..ffbee5c --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs @@ -0,0 +1,12 @@ +// Cinema Suite +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// Track for containing only mecanim Animator related content. + /// + [TimelineTrackAttribute("Transform Track", TimelineTrackGenre.CharacterTrack, CutsceneItemGenre.TransformItem)] + public class TransformTrack : ActorItemTrack + { } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs.meta b/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs.meta new file mode 100644 index 0000000..b698465 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TimelineTracks/TransformTrack.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 133728166642e6b409c391fcf785c7b2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups.meta b/Assets/Cinema Director/System/Runtime/TrackGroups.meta new file mode 100644 index 0000000..61a4508 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d0f75971c2d4e7249944be78d4ec2b45 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs new file mode 100644 index 0000000..61d4d93 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs @@ -0,0 +1,24 @@ +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The ActorTrackGroup maintains an Actor and a set of tracks that affect + /// that actor over the course of the Cutscene. + /// + [TrackGroupAttribute("Actor Track Group", TimelineTrackGenre.ActorTrack)] + public class ActorTrackGroup : TrackGroup + { + [SerializeField] + private Transform actor; + + /// + /// The Actor that this TrackGroup is focused on. + /// + public Transform Actor + { + get { return actor; } + set { actor = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs.meta new file mode 100644 index 0000000..4a37342 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/ActorTrackGroup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f721a7f4a938be4196ba9be816a39d0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/Base.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/Base.meta new file mode 100644 index 0000000..6951fb2 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/Base.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d304cd9588562eb44ab267cb3ff2aa6a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs new file mode 100644 index 0000000..59f3407 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The main organizational unit of a Cutscene, The TrackGroup contains tracks. + /// + [TrackGroupAttribute("Track Group", TimelineTrackGenre.GlobalTrack)] + public abstract class TrackGroup : MonoBehaviour, IOptimizable + { + [SerializeField] + private int ordinal = -1; // For ordering in UI + + [SerializeField] + private bool canOptimize = true; // If true, this Track Group will load all tracks into cache on Optimize(). + + // A cache of the tracks for optimization purposes. + protected TimelineTrack[] trackCache; + + // A list of the types that this Track Group is allowed to contain. + protected List allowedTrackTypes; + + private bool hasBeenOptimized = false; + + /// + /// Prepares the TrackGroup by caching all TimelineTracks. + /// + public virtual void Optimize() + { + if (canOptimize) + { + trackCache = GetTracks(); + } + foreach (TimelineTrack track in GetTracks()) + { + track.Optimize(); + } + hasBeenOptimized = true; + } + + /// + /// Initialize all Tracks before beginning a fresh playback. + /// + public virtual void Initialize() + { + foreach (TimelineTrack track in GetTracks()) + { + track.Initialize(); + } + } + + /// + /// Update the track group to the current running time of the cutscene. + /// + /// The current running time + /// The deltaTime since the last update call + public virtual void UpdateTrackGroup(float time, float deltaTime) + { + foreach (TimelineTrack track in GetTracks()) + { + track.UpdateTrack(time, deltaTime); + } + } + + /// + /// Pause all Track Items that this TrackGroup contains. + /// + public virtual void Pause() + { + foreach (TimelineTrack track in GetTracks()) + { + track.Pause(); + } + } + + /// + /// Stop all Track Items that this TrackGroup contains. + /// + public virtual void Stop() + { + foreach (TimelineTrack track in GetTracks()) + { + track.Stop(); + } + } + + /// + /// Resume all Track Items that this TrackGroup contains. + /// + public virtual void Resume() + { + foreach (TimelineTrack track in GetTracks()) + { + track.Resume(); + } + } + + /// + /// Set this TrackGroup to the state of a given new running time. + /// + /// The new running time + public virtual void SetRunningTime(float time) + { + foreach (TimelineTrack track in GetTracks()) + { + track.SetTime(time); + } + } + + /// + /// Retrieve a list of important times for this track group within the given range. + /// + /// the starting time + /// the ending time + /// A list of ordered milestone times within the given range. + public virtual List GetMilestones(float from, float to) + { + List times = new List(); + foreach (TimelineTrack track in GetTracks()) + { + List trackTimes = track.GetMilestones(from, to); + foreach(float f in trackTimes) + { + if(!times.Contains(f)) + { + times.Add(f); + } + } + } + times.Sort(); + return times; + } + + /// + /// The Cutscene that this TrackGroup is associated with. Will return null if TrackGroup does not have a Cutscene as a parent. + /// + public Cutscene Cutscene + { + get + { + Cutscene cutscene = null; + if (transform.parent != null) + { + cutscene = transform.parent.GetComponentInParent(); + if (cutscene == null) + { + Debug.LogError("No Cutscene found on parent!", this); + } + } + else + { + Debug.LogError("TrackGroup has no parent!", this); + } + return cutscene; + } + } + + /// + /// The TimelineTracks that this TrackGroup contains. + /// + public virtual TimelineTrack[] GetTracks() + { + // Return the cache if possible + if (hasBeenOptimized) + { + return trackCache; + } + + List tracks = new List(); + foreach (Type t in GetAllowedTrackTypes()) + { + var components = GetComponentsInChildren(t); + foreach(var component in components) + { + tracks.Add((TimelineTrack)component); + } + } + return tracks.ToArray(); + } + + /// + /// Provides a list of Types this Track Group is allowed to contain. Loaded by looking at Attributes. + /// + /// The list of track types. + public List GetAllowedTrackTypes() + { + if (allowedTrackTypes == null) + { + allowedTrackTypes = DirectorRuntimeHelper.GetAllowedTrackTypes(this); + } + return allowedTrackTypes; + } + + /// + /// Ordinal for UI ranking. + /// + public int Ordinal + { + get { return ordinal; } + set { ordinal = value; } + } + + /// + /// Enable this if the TrackGroup does not have Tracks added/removed during running. + /// + public bool CanOptimize + { + get { return canOptimize; } + set { canOptimize = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs.meta new file mode 100644 index 0000000..f08367f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1f436369d67d5ca45aa70435c4a91302 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs new file mode 100644 index 0000000..75e5389 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs @@ -0,0 +1,52 @@ +// Cinema Suite 2014 +using System; +using System.Collections.Generic; + +namespace CinemaDirector +{ + /// + /// The Attribute for track groups. + /// + [AttributeUsage(AttributeTargets.Class)] + public class TrackGroupAttribute : Attribute + { + // The user friendly name for this Track Group. + private string label; + + // The list of Track Genres that this Track Group allows. + private List trackGenres = new List(); + + /// + /// Attribute for Track Groups + /// + /// The name of this track group. + /// The Track Genres that this Track Group is allowed to contain. + public TrackGroupAttribute(string label, params TimelineTrackGenre[] TrackGenres) + { + this.label = label; + this.trackGenres.AddRange(TrackGenres); + } + + /// + /// The label of this track group. + /// + public string Label + { + get + { + return label; + } + } + + /// + /// The Track Genres that this Track Group can contain. + /// + public TimelineTrackGenre[] AllowedTrackGenres + { + get + { + return trackGenres.ToArray(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs.meta new file mode 100644 index 0000000..2079603 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/Base/TrackGroupAttribute.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1db6c43ad94d8244292101262898840d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs new file mode 100644 index 0000000..5f6f7a2 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs @@ -0,0 +1,164 @@ +// Cinema Suite +using CinemaDirector.Helpers; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The character track group is a type of actor group, specialized for humanoid characters. + /// + [TrackGroupAttribute("Character Track Group", TimelineTrackGenre.CharacterTrack)] + public class CharacterTrackGroup : ActorTrackGroup, IRevertable, IBakeable + { + // Options for reverting in editor. + [SerializeField] + private RevertMode editorRevertMode = RevertMode.Revert; + + // Options for reverting during runtime. + [SerializeField] + private RevertMode runtimeRevertMode = RevertMode.Revert; + + // Has a bake been called on this track group? + private bool hasBeenBaked = false; + + /// + /// Bake the Mecanim preview data. + /// + public void Bake() + { + if (Actor == null || Application.isPlaying) return; + Animator animator = Actor.GetComponent(); + if (animator == null) + { return; } + + float frameRate = 30; + int frameCount = (int)((Cutscene.Duration * frameRate) + 2); + animator.StopPlayback(); + animator.recorderStartTime = 0; + animator.StartRecording(frameCount); + for (int i = 0; i < frameCount; i++) + { + base.UpdateTrackGroup(i * (1.0f / frameRate), (1.0f / frameRate)); + animator.Update(1.0f / frameRate); + } + animator.recorderStopTime = frameCount * (1.0f / frameRate); + animator.StopRecording(); + animator.StartPlayback(); + + hasBeenBaked = true; + } + + /// + /// Cache the Actor Transform. + /// + /// The revert info for the Actor's transform. + public RevertInfo[] CacheState() + { + RevertInfo[] reverts = new RevertInfo[3]; + if (Actor == null) return new RevertInfo[0]; + reverts[0] = new RevertInfo(this, Actor.transform, "localPosition", Actor.transform.localPosition); + reverts[1] = new RevertInfo(this, Actor.transform, "localRotation", Actor.transform.localRotation); + reverts[2] = new RevertInfo(this, Actor.transform, "localScale", Actor.transform.localScale); + return reverts; + } + + /// + /// Initialize the Track Group as normal and initialize the Animator if in Editor Mode. + /// + public override void Initialize() + { + base.Initialize(); + if (!Application.isPlaying) + { + if (Actor == null) return; + Animator animator = Actor.GetComponent(); + if (animator == null) + { + return; + } + animator.StartPlayback(); + } + } + + /// + /// Update the Track Group over time. If in editor mode, play the baked animator data. + /// + /// The new running time. + /// the deltaTime since last update. + public override void UpdateTrackGroup(float time, float deltaTime) + { + if (Application.isPlaying) + { + base.UpdateTrackGroup(time, deltaTime); + } + else + { + foreach (TimelineTrack track in GetTracks()) + { + if (!(track is MecanimTrack)) + { + track.UpdateTrack(time, deltaTime); + } + } + + if (Actor == null) return; + Animator animator = Actor.GetComponent(); + if (animator == null) + { + return; + } + + animator.playbackTime = time; + animator.Update(0); + } + } + + /// + /// Stop this track group and stop playback on animator. + /// + public override void Stop() + { + base.Stop(); + + if (!Application.isPlaying) + { + if (hasBeenBaked) + { + Animator animator = Actor.GetComponent(); + if (animator == null) + { + return; + } + + if (animator.recorderStopTime > 0) + { + animator.StartPlayback(); + animator.playbackTime = 0; + animator.Update(0); + animator.StopPlayback(); + + animator.Rebind(); + } + } + } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Editor. + /// + public RevertMode EditorRevertMode + { + get { return editorRevertMode; } + set { editorRevertMode = value; } + } + + /// + /// Option for choosing when this Event will Revert to initial state in Runtime. + /// + public RevertMode RuntimeRevertMode + { + get { return runtimeRevertMode; } + set { runtimeRevertMode = value; } + } + } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs.meta new file mode 100644 index 0000000..17d892f --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/CharacterTrackGroup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 32c218e8b5c1edb4cb0c62f4a185621b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs new file mode 100644 index 0000000..9ac5143 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs @@ -0,0 +1,10 @@ + +namespace CinemaDirector +{ + /// + /// The Director Group maintains tracks that are not attached to specific actors. + /// + [TrackGroupAttribute("Director Group", TimelineTrackGenre.GlobalTrack)] + public sealed class DirectorGroup : TrackGroup + { } +} \ No newline at end of file diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs.meta new file mode 100644 index 0000000..bb558a4 --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/DirectorGroup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41c562ff222567246ae2699a1b3300b9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs b/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs new file mode 100644 index 0000000..06ff9aa --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace CinemaDirector +{ + /// + /// The MultiActorTrackGroup maintains a list of Actors that have something in + /// common and a set of tracks that act upon those Actors. + /// + [TrackGroupAttribute("MultiActor Track Group", TimelineTrackGenre.MultiActorTrack)] + public class MultiActorTrackGroup : TrackGroup + { + [SerializeField] + private List actors = new List(); + + /// + /// The Actors that this TrackGroup is focused on + /// + public List Actors + { + get + { + return actors; + } + set + { + actors = value; + } + } + } +} diff --git a/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs.meta b/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs.meta new file mode 100644 index 0000000..83e8fae --- /dev/null +++ b/Assets/Cinema Director/System/Runtime/TrackGroups/MultiActorTrackGroup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53c7c16722d4a664a88a0f3780a7a717 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Cinema Director/Third Party.meta b/Assets/Cinema Director/Third Party.meta new file mode 100644 index 0000000..0d22c77 --- /dev/null +++ b/Assets/Cinema Director/Third Party.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 87661ffef1437c64087321d0bb600f6c +folderAsset: yes +timeCreated: 1461606312 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Behavior Designer.meta b/Assets/Cinema Director/Third Party/Behavior Designer.meta new file mode 100644 index 0000000..99d3308 --- /dev/null +++ b/Assets/Cinema Director/Third Party/Behavior Designer.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d7293202ab7667244a6dc28ee7eb0dc3 +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Behavior Designer/CinemaDirector_BehaviorDesigner_Integration.unitypackage.meta b/Assets/Cinema Director/Third Party/Behavior Designer/CinemaDirector_BehaviorDesigner_Integration.unitypackage.meta new file mode 100644 index 0000000..c6b032c --- /dev/null +++ b/Assets/Cinema Director/Third Party/Behavior Designer/CinemaDirector_BehaviorDesigner_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00dd5fe552c66454dbe1a9304431568e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Cinemachine.meta b/Assets/Cinema Director/Third Party/Cinemachine.meta new file mode 100644 index 0000000..1003556 --- /dev/null +++ b/Assets/Cinema Director/Third Party/Cinemachine.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b1dc30827a923ab4f8fedff1f6ddc315 +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Cinemachine/Cinemachine_CinemaDirector_Integration.unitypackage.meta b/Assets/Cinema Director/Third Party/Cinemachine/Cinemachine_CinemaDirector_Integration.unitypackage.meta new file mode 100644 index 0000000..17da8aa --- /dev/null +++ b/Assets/Cinema Director/Third Party/Cinemachine/Cinemachine_CinemaDirector_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f613a1d870a6c7049802bc367fbda0b6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/NodeCanvas.meta b/Assets/Cinema Director/Third Party/NodeCanvas.meta new file mode 100644 index 0000000..2287562 --- /dev/null +++ b/Assets/Cinema Director/Third Party/NodeCanvas.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 31a98e28730a233479007a4c801f607c +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/NodeCanvas/NodeCanvas_CinemaDirector_Integration.unitypackage.meta b/Assets/Cinema Director/Third Party/NodeCanvas/NodeCanvas_CinemaDirector_Integration.unitypackage.meta new file mode 100644 index 0000000..d899087 --- /dev/null +++ b/Assets/Cinema Director/Third Party/NodeCanvas/NodeCanvas_CinemaDirector_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3365e3bfb75519e40a2bf7b491091bf0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Playmaker.meta b/Assets/Cinema Director/Third Party/Playmaker.meta new file mode 100644 index 0000000..1f32651 --- /dev/null +++ b/Assets/Cinema Director/Third Party/Playmaker.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 43e809f6bbe637f4590fec65bb6b7278 +folderAsset: yes +timeCreated: 1461606313 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/Third Party/Playmaker/Playmaker_CinemaDirector_Integration.unitypackage.meta b/Assets/Cinema Director/Third Party/Playmaker/Playmaker_CinemaDirector_Integration.unitypackage.meta new file mode 100644 index 0000000..723d6c5 --- /dev/null +++ b/Assets/Cinema Director/Third Party/Playmaker/Playmaker_CinemaDirector_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1189fa19477eb9744af4f5a96dac2ba6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinema Director/link.xml b/Assets/Cinema Director/link.xml new file mode 100644 index 0000000..c2fe533 --- /dev/null +++ b/Assets/Cinema Director/link.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Cinema Director/link.xml.meta b/Assets/Cinema Director/link.xml.meta new file mode 100644 index 0000000..44f77e3 --- /dev/null +++ b/Assets/Cinema Director/link.xml.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 1d110304dc24ebc499043cc1b997095e +TextScriptImporter: + userData: diff --git a/Assets/Cinematic Effects/AmbientOcclusion.meta b/Assets/Cinematic Effects/AmbientOcclusion.meta new file mode 100644 index 0000000..d6631d6 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ed6d7947a564a4dd1987f60392be4349 +folderAsset: yes +timeCreated: 1457326591 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs b/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs new file mode 100644 index 0000000..c3808f9 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs @@ -0,0 +1,347 @@ +using UnityEngine; +using UnityEngine.Rendering; + +namespace UnityStandardAssets.CinematicEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Cinematic/Ambient Occlusion")] +#if UNITY_5_4_OR_NEWER + [ImageEffectAllowedInSceneView] +#endif + public partial class AmbientOcclusion : MonoBehaviour + { + #region Public Properties + + /// Effect settings. + [SerializeField] + public Settings settings = Settings.defaultSettings; + + /// Checks if the ambient-only mode is supported under the current settings. + public bool isAmbientOnlySupported + { + get { return targetCamera.hdr && isGBufferAvailable; } + } + + #endregion + + #region Private Properties + + // Properties referring to the current settings + + float intensity + { + get { return settings.intensity; } + } + + float radius + { + get { return Mathf.Max(settings.radius, 1e-4f); } + } + + SampleCount sampleCount + { + get { return settings.sampleCount; } + } + + int sampleCountValue + { + get + { + switch (settings.sampleCount) + { + case SampleCount.Lowest: return 3; + case SampleCount.Low: return 6; + case SampleCount.Medium: return 12; + case SampleCount.High: return 20; + } + return Mathf.Clamp(settings.sampleCountValue, 1, 256); + } + } + + bool downsampling + { + get { return settings.downsampling; } + } + + bool ambientOnly + { + get { return settings.ambientOnly && isAmbientOnlySupported; } + } + + // AO shader + Shader aoShader + { + get + { + if (_aoShader == null) + _aoShader = Shader.Find("Hidden/Image Effects/Cinematic/AmbientOcclusion"); + return _aoShader; + } + } + + [SerializeField] Shader _aoShader; + + // Temporary aterial for the AO shader + Material aoMaterial + { + get + { + if (_aoMaterial == null) + _aoMaterial = ImageEffectHelper.CheckShaderAndCreateMaterial(aoShader); + return _aoMaterial; + } + } + + Material _aoMaterial; + + // Command buffer for the AO pass + CommandBuffer aoCommands + { + get + { + if (_aoCommands == null) + { + _aoCommands = new CommandBuffer(); + _aoCommands.name = "AmbientOcclusion"; + } + return _aoCommands; + } + } + + CommandBuffer _aoCommands; + + // Target camera + Camera targetCamera + { + get { return GetComponent(); } + } + + // Property observer + PropertyObserver propertyObserver { get; set; } + + // Check if the G-buffer is available + bool isGBufferAvailable + { + get + { + var path = targetCamera.actualRenderingPath; + return path == RenderingPath.DeferredShading; + } + } + + // Reference to the quad mesh in the built-in assets + // (used in MRT blitting) + Mesh quadMesh + { + get { return _quadMesh; } + } + + [SerializeField] Mesh _quadMesh; + + #endregion + + #region Effect Passes + + // Build commands for the AO pass (used in the ambient-only mode). + void BuildAOCommands() + { + var cb = aoCommands; + + var tw = targetCamera.pixelWidth; + var th = targetCamera.pixelHeight; + var ts = downsampling ? 2 : 1; + var format = RenderTextureFormat.R8; + var rwMode = RenderTextureReadWrite.Linear; + var filter = FilterMode.Bilinear; + + // AO buffer + var m = aoMaterial; + var rtMask = Shader.PropertyToID("_OcclusionTexture"); + cb.GetTemporaryRT(rtMask, tw / ts, th / ts, 0, filter, format, rwMode); + + // AO estimation + cb.Blit((Texture)null, rtMask, m, 0); + + // Blur buffer + var rtBlur = Shader.PropertyToID("_OcclusionBlurTexture"); + + // Primary blur filter (large kernel) + cb.GetTemporaryRT(rtBlur, tw, th, 0, filter, format, rwMode); + cb.SetGlobalVector("_BlurVector", Vector2.right * 2); + cb.Blit(rtMask, rtBlur, m, 1); + cb.ReleaseTemporaryRT(rtMask); + + cb.GetTemporaryRT(rtMask, tw, th, 0, filter, format, rwMode); + cb.SetGlobalVector("_BlurVector", Vector2.up * 2 * ts); + cb.Blit(rtBlur, rtMask, m, 1); + cb.ReleaseTemporaryRT(rtBlur); + + // Secondary blur filter (small kernel) + cb.GetTemporaryRT(rtBlur, tw, th, 0, filter, format, rwMode); + cb.SetGlobalVector("_BlurVector", Vector2.right * ts); + cb.Blit(rtMask, rtBlur, m, 2); + cb.ReleaseTemporaryRT(rtMask); + + cb.GetTemporaryRT(rtMask, tw, th, 0, filter, format, rwMode); + cb.SetGlobalVector("_BlurVector", Vector2.up * ts); + cb.Blit(rtBlur, rtMask, m, 2); + cb.ReleaseTemporaryRT(rtBlur); + + // Combine AO to the G-buffer. + var mrt = new RenderTargetIdentifier[] { + BuiltinRenderTextureType.GBuffer0, // Albedo, Occ + BuiltinRenderTextureType.CameraTarget // Ambient + }; + cb.SetRenderTarget(mrt, BuiltinRenderTextureType.CameraTarget); + cb.SetGlobalTexture("_OcclusionTexture", rtMask); + cb.DrawMesh(quadMesh, Matrix4x4.identity, m, 0, 4); + + cb.ReleaseTemporaryRT(rtMask); + } + + // Execute the AO pass immediately (used in the forward mode). + void ExecuteAOPass(RenderTexture source, RenderTexture destination) + { + var tw = source.width; + var th = source.height; + var ts = downsampling ? 2 : 1; + var format = RenderTextureFormat.R8; + var rwMode = RenderTextureReadWrite.Linear; + + // AO buffer + var m = aoMaterial; + var rtMask = RenderTexture.GetTemporary(tw / ts, th / ts, 0, format, rwMode); + + // AO estimation + Graphics.Blit((Texture)null, rtMask, m, 0); + + // Primary blur filter (large kernel) + var rtBlur = RenderTexture.GetTemporary(tw, th, 0, format, rwMode); + m.SetVector("_BlurVector", Vector2.right * 2); + Graphics.Blit(rtMask, rtBlur, m, 1); + RenderTexture.ReleaseTemporary(rtMask); + + rtMask = RenderTexture.GetTemporary(tw, th, 0, format, rwMode); + m.SetVector("_BlurVector", Vector2.up * 2 * ts); + Graphics.Blit(rtBlur, rtMask, m, 1); + RenderTexture.ReleaseTemporary(rtBlur); + + // Secondary blur filter (small kernel) + rtBlur = RenderTexture.GetTemporary(tw, th, 0, format, rwMode); + m.SetVector("_BlurVector", Vector2.right * ts); + Graphics.Blit(rtMask, rtBlur, m, 2); + RenderTexture.ReleaseTemporary(rtMask); + + rtMask = RenderTexture.GetTemporary(tw, th, 0, format, rwMode); + m.SetVector("_BlurVector", Vector2.up * ts); + Graphics.Blit(rtBlur, rtMask, m, 2); + RenderTexture.ReleaseTemporary(rtBlur); + + // Combine AO with the source. + m.SetTexture("_OcclusionTexture", rtMask); + + if (!settings.debug) + Graphics.Blit(source, destination, m, 3); + else + Graphics.Blit(source, destination, m, 5); + + RenderTexture.ReleaseTemporary(rtMask); + } + + // Update the common material properties. + void UpdateMaterialProperties() + { + var m = aoMaterial; + m.shaderKeywords = null; + + m.SetFloat("_Intensity", intensity); + m.SetFloat("_Radius", radius); + m.SetFloat("_TargetScale", downsampling ? 0.5f : 1); + + // Use G-buffer if available. + if (isGBufferAvailable) + m.EnableKeyword("_SOURCE_GBUFFER"); + + // Sample count + if (sampleCount == SampleCount.Lowest) + m.EnableKeyword("_SAMPLECOUNT_LOWEST"); + else + m.SetInt("_SampleCount", sampleCountValue); + } + + #endregion + + #region MonoBehaviour Functions + + void OnEnable() + { + // Check if the shader is supported in the current platform. + if (!ImageEffectHelper.IsSupported(aoShader, true, false, this)) + { + enabled = false; + return; + } + + // Register the command buffer if in the ambient-only mode. + if (ambientOnly) + targetCamera.AddCommandBuffer(CameraEvent.BeforeReflections, aoCommands); + + // Requires DepthNormals when G-buffer is not available. + if (!isGBufferAvailable) + targetCamera.depthTextureMode |= DepthTextureMode.DepthNormals; + } + + void OnDisable() + { + // Destroy all the temporary resources. + if (_aoMaterial != null) DestroyImmediate(_aoMaterial); + _aoMaterial = null; + + if (_aoCommands != null) + targetCamera.RemoveCommandBuffer(CameraEvent.BeforeReflections, _aoCommands); + _aoCommands = null; + } + + void Update() + { + if (propertyObserver.CheckNeedsReset(settings, targetCamera)) + { + // Reinitialize all the resources by disabling/enabling itself. + // This is not very efficient way but just works... + OnDisable(); + OnEnable(); + + // Build the command buffer if in the ambient-only mode. + if (ambientOnly) + { + aoCommands.Clear(); + BuildAOCommands(); + } + + propertyObserver.Update(settings, targetCamera); + } + + // Update the material properties (later used in the AO commands). + if (ambientOnly) UpdateMaterialProperties(); + } + + [ImageEffectOpaque] + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (ambientOnly) + { + // Do nothing in the ambient-only mode. + Graphics.Blit(source, destination); + } + else + { + // Execute the AO pass. + UpdateMaterialProperties(); + ExecuteAOPass(source, destination); + } + } + + #endregion + } +} diff --git a/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs.meta b/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs.meta new file mode 100644 index 0000000..30be0c0 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/AmbientOcclusion.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: e89654dcf6db746d2a57aeaaa14f5e83 +timeCreated: 1457327177 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - _aoShader: {fileID: 4800000, guid: 65e203e5acda447acbf9dc1ef78c4a39, type: 3} + - _quadMesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Editor.meta b/Assets/Cinematic Effects/AmbientOcclusion/Editor.meta new file mode 100644 index 0000000..aedb738 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c1589efc0706e448d9a0af709e2c99cc +folderAsset: yes +timeCreated: 1457326964 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs b/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs new file mode 100644 index 0000000..82cae01 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs @@ -0,0 +1,63 @@ +using UnityEngine; +using UnityEditor; + +namespace UnityStandardAssets.CinematicEffects +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(AmbientOcclusion))] + public class AmbientOcclusionEditor : Editor + { + SerializedProperty _intensity; + SerializedProperty _radius; + SerializedProperty _sampleCount; + SerializedProperty _sampleCountValue; + SerializedProperty _downsampling; + SerializedProperty _ambientOnly; + SerializedProperty _debug; + + static GUIContent _textValue = new GUIContent("Value"); + + static string _textNoAmbientOnly = + "The ambient-only mode is currently disabled; " + + "it needs deferred shading and HDR rendering."; + + void OnEnable() + { + _intensity = serializedObject.FindProperty("settings.intensity"); + _radius = serializedObject.FindProperty("settings.radius"); + _sampleCount = serializedObject.FindProperty("settings.sampleCount"); + _sampleCountValue = serializedObject.FindProperty("settings.sampleCountValue"); + _downsampling = serializedObject.FindProperty("settings.downsampling"); + _ambientOnly = serializedObject.FindProperty("settings.ambientOnly"); + _debug = serializedObject.FindProperty("settings.debug"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_intensity); + EditorGUILayout.PropertyField(_radius); + EditorGUILayout.PropertyField(_sampleCount); + + if (_sampleCount.hasMultipleDifferentValues || + _sampleCount.enumValueIndex == (int)AmbientOcclusion.SampleCount.Variable) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(_sampleCountValue, _textValue); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(_downsampling); + EditorGUILayout.PropertyField(_ambientOnly); + EditorGUILayout.PropertyField(_debug); + + // Show a warning if the ambient-only mode is not supported. + if (!_ambientOnly.hasMultipleDifferentValues && _ambientOnly.boolValue) + if (!((AmbientOcclusion)target).isAmbientOnlySupported) + EditorGUILayout.HelpBox(_textNoAmbientOnly, MessageType.Info); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs.meta b/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs.meta new file mode 100644 index 0000000..bb319ee --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Editor/AmbientOcclusionEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 05ea8e27ed8e74e67a9220b4f4119e51 +timeCreated: 1457327141 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Helpers.meta b/Assets/Cinematic Effects/AmbientOcclusion/Helpers.meta new file mode 100644 index 0000000..127ad26 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Helpers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1d775599023574a39befabe47bdfddde +folderAsset: yes +timeCreated: 1457326936 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs new file mode 100644 index 0000000..e53f0a4 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs @@ -0,0 +1,38 @@ +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + public partial class AmbientOcclusion : MonoBehaviour + { + // Observer class that detects changes on properties + struct PropertyObserver + { + // AO properties + bool _downsampling; + bool _ambientOnly; + + // Camera properties + int _pixelWidth; + int _pixelHeight; + + // Check if it has to reset itself for property changes. + public bool CheckNeedsReset(Settings setting, Camera camera) + { + return + _downsampling != setting.downsampling || + _ambientOnly != setting.ambientOnly || + _pixelWidth != camera.pixelWidth || + _pixelHeight != camera.pixelHeight; + } + + // Update the internal state. + public void Update(Settings setting, Camera camera) + { + _downsampling = setting.downsampling; + _ambientOnly = setting.ambientOnly; + _pixelWidth = camera.pixelWidth; + _pixelHeight = camera.pixelHeight; + } + } + } +} diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs.meta b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs.meta new file mode 100644 index 0000000..2068429 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/PropertyObserver.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d9548d9a173a40e4b758ecf6e4fed49 +timeCreated: 1457326885 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs new file mode 100644 index 0000000..5ce57f5 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs @@ -0,0 +1,71 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + public partial class AmbientOcclusion : MonoBehaviour + { + /// Values for Settings.sampleCount, determining the number of sample points. + public enum SampleCount + { + Lowest, Low, Medium, High, Variable + } + + /// Class used for storing settings of AmbientOcclusion. + [Serializable] + public class Settings + { + /// Degree of darkness produced by the effect. + [SerializeField, Range(0, 4)] + [Tooltip("Degree of darkness produced by the effect.")] + public float intensity; + + /// Radius of sample points, which affects extent of darkened areas. + [SerializeField] + [Tooltip("Radius of sample points, which affects extent of darkened areas.")] + public float radius; + + /// Number of sample points, which affects quality and performance. + [SerializeField] + [Tooltip("Number of sample points, which affects quality and performance.")] + public SampleCount sampleCount; + + /// Determines the sample count when SampleCount.Variable is used. + [SerializeField] + [Tooltip("Determines the sample count when SampleCount.Variable is used.")] + public int sampleCountValue; + + /// Halves the resolution of the effect to increase performance. + [SerializeField] + [Tooltip("Halves the resolution of the effect to increase performance.")] + public bool downsampling; + + /// Enables the ambient-only mode in that the effect only affects + /// ambient lighting. This mode is only available with deferred + /// shading and HDR rendering. + [SerializeField] + [Tooltip("If checked, the effect only affects ambient lighting.")] + public bool ambientOnly; + + [SerializeField] + public bool debug; + + /// Returns the default settings. + public static Settings defaultSettings + { + get + { + return new Settings + { + intensity = 1, + radius = 0.3f, + sampleCount = SampleCount.Medium, + sampleCountValue = 24, + downsampling = false, + ambientOnly = false + }; + } + } + } + } +} diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs.meta b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs.meta new file mode 100644 index 0000000..0a3a30a --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Helpers/Settings.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e952a344c72354904a417d27abe6f55e +timeCreated: 1457331804 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Resources.meta b/Assets/Cinematic Effects/AmbientOcclusion/Resources.meta new file mode 100644 index 0000000..1719486 --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ae08100d29090452888e1b6a7b5a7170 +folderAsset: yes +timeCreated: 1457326958 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader b/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader new file mode 100644 index 0000000..f95f84c --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader @@ -0,0 +1,476 @@ +Shader "Hidden/Image Effects/Cinematic/AmbientOcclusion" +{ + Properties + { + _MainTex("", 2D) = ""{} + _OcclusionTexture("", 2D) = ""{} + } + CGINCLUDE + + // -------- + // Additional options for further customization + // -------- + + // By default, a fixed sampling pattern is used in the AO estimator. + // Although this gives preferable results in most cases, a completely + // random sampling pattern could give aesthetically good results in some + // cases. Comment out the line below to use the random pattern instead of + // the fixed one. + #define FIXED_SAMPLING_PATTERN 1 + + // The constant below determines the contrast of occlusion. Altough this + // allows intentional over/under occlusion, currently is not exposed to the + // editor, because it’s thought to be rarely useful. + static const float kContrast = 0.6; + + // The constant below controls the geometry-awareness of the blur filter. + // The higher value, the more sensitive it is. + static const float kGeom = 50; + + // The constants below are used in the AO estimator. Beta is mainly used + // for suppressing self-shadowing noise, and Epsilon is used to prevent + // calculation underflow. See the paper (Morgan 2011 http://goo.gl/2iz3P) + // for further details of these constants. + static const float kBeta = 0.002; + static const float kEpsilon = 1e-4; + + // -------- + + #include "UnityCG.cginc" + + #if _SAMPLECOUNT_LOWEST + static const int _SampleCount = 3; + #else + int _SampleCount; + #endif + + // Global shader properties + #if _SOURCE_GBUFFER + sampler2D _CameraGBufferTexture2; + sampler2D_float _CameraDepthTexture; + float4x4 _WorldToCamera; + #else + sampler2D_float _CameraDepthNormalsTexture; + #endif + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + + sampler2D _OcclusionTexture; + + // Material shader properties + half _Intensity; + float _Radius; + float _TargetScale; + float2 _BlurVector; + + // Utility for sin/cos + float2 CosSin(float theta) + { + float sn, cs; + sincos(theta, sn, cs); + return float2(cs, sn); + } + + // Gamma encoding function for AO value + // (do nothing if in the linear mode) + half EncodeAO(half x) + { + // Gamma encoding + half x_g = 1 - pow(1 - x, 1 / 2.2); + // ColorSpaceLuminance.w is 0 (gamma) or 1 (linear). + return lerp(x_g, x, unity_ColorSpaceLuminance.w); + } + + // Pseudo random number generator with 2D argument + float UVRandom(float u, float v) + { + float f = dot(float2(12.9898, 78.233), float2(u, v)); + return frac(43758.5453 * sin(f)); + } + + // Interleaved gradient function from Jimenez 2014 http://goo.gl/eomGso + float GradientNoise(float2 uv) + { + uv = floor(uv * _ScreenParams.xy); + float f = dot(float2(0.06711056f, 0.00583715f), uv); + return frac(52.9829189f * frac(f)); + } + + // Boundary check for depth sampler + // (returns a very large value if it lies out of bounds) + float CheckBounds(float2 uv, float d) + { + float ob = any(uv < 0) + any(uv > 1); + #if defined(UNITY_REVERSED_Z) + ob += (d <= 0.00001); + #else + ob += (d >= 0.99999); + #endif + return ob * 1e8; + } + + // Depth/normal sampling functions + float SampleDepth(float2 uv) + { + #if _SOURCE_GBUFFER + float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv); + return LinearEyeDepth(d) + CheckBounds(uv, d); + #else + float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); + float d = DecodeFloatRG(cdn.zw); + return d * _ProjectionParams.z + CheckBounds(uv, d); + #endif + } + + float3 SampleNormal(float2 uv) + { + #if _SOURCE_GBUFFER + float3 norm = tex2D(_CameraGBufferTexture2, uv).xyz * 2 - 1; + return mul((float3x3)_WorldToCamera, norm); + #else + float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); + return DecodeViewNormalStereo(cdn) * float3(1, 1, -1); + #endif + } + + float SampleDepthNormal(float2 uv, out float3 normal) + { + #if _SOURCE_GBUFFER + normal = SampleNormal(uv); + return SampleDepth(uv); + #else + float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); + normal = DecodeViewNormalStereo(cdn) * float3(1, 1, -1); + float d = DecodeFloatRG(cdn.zw); + return d * _ProjectionParams.z + CheckBounds(uv, d); + #endif + } + + // Reconstruct view-space position from UV and depth. + // p11_22 = (unity_CameraProjection._11, unity_CameraProjection._22) + // p13_31 = (unity_CameraProjection._13, unity_CameraProjection._23) + float3 ReconstructViewPos(float2 uv, float depth, float2 p11_22, float2 p13_31) + { + return float3((uv * 2 - 1 - p13_31) / p11_22, 1) * depth; + } + + // Normal vector comparer (for geometry-aware weighting) + half CompareNormal(half3 d1, half3 d2) + { + return pow((dot(d1, d2) + 1) * 0.5, kGeom); + } + + // Final combiner function + half3 CombineOcclusion(half3 src, half3 ao) + { + return lerp(src, 0, EncodeAO(ao)); + } + + // Sample point picker + float3 PickSamplePoint(float2 uv, float index) + { + // Uniformaly distributed points on a unit sphere http://goo.gl/X2F1Ho + #if FIXED_SAMPLING_PATTERN + float gn = GradientNoise(uv * _TargetScale); + float u = frac(UVRandom(0, index) + gn) * 2 - 1; + float theta = (UVRandom(1, index) + gn) * UNITY_PI * 2; + #else + float u = UVRandom(uv.x + _Time.x, uv.y + index) * 2 - 1; + float theta = UVRandom(-uv.x - _Time.x, uv.y + index) * UNITY_PI * 2; + #endif + float3 v = float3(CosSin(theta) * sqrt(1 - u * u), u); + // Make them distributed between [0, _Radius] + float l = sqrt((index + 1) / _SampleCount) * _Radius; + return v * l; + } + + // Occlusion estimator function + float EstimateOcclusion(float2 uv) + { + // Parameters used in coordinate conversion + float3x3 proj = (float3x3)unity_CameraProjection; + float2 p11_22 = float2(unity_CameraProjection._11, unity_CameraProjection._22); + float2 p13_31 = float2(unity_CameraProjection._13, unity_CameraProjection._23); + + // View space normal and depth + float3 norm_o; + float depth_o = SampleDepthNormal(uv, norm_o); + + #if _SOURCE_DEPTHNORMALS + // Offset the depth value to avoid precision error. + // (depth in the DepthNormals mode has only 16-bit precision) + depth_o -= _ProjectionParams.z / 65536; + #endif + + // Reconstruct the view-space position. + float3 vpos_o = ReconstructViewPos(uv, depth_o, p11_22, p13_31); + + // Distance-based AO estimator based on Morgan 2011 http://goo.gl/2iz3P + float ao = 0.0; + + for (int s = 0; s < _SampleCount; s++) + { + // Sample point + float3 v_s1 = PickSamplePoint(uv, s); + v_s1 = faceforward(v_s1, -norm_o, v_s1); + float3 vpos_s1 = vpos_o + v_s1; + + // Reproject the sample point + float3 spos_s1 = mul(proj, vpos_s1); + float2 uv_s1 = (spos_s1.xy / vpos_s1.z + 1) * 0.5; + + // Depth at the sample point + float depth_s1 = SampleDepth(uv_s1); + + // Relative position of the sample point + float3 vpos_s2 = ReconstructViewPos(uv_s1, depth_s1, p11_22, p13_31); + float3 v_s2 = vpos_s2 - vpos_o; + + // Estimate the obscurance value + float a1 = max(dot(v_s2, norm_o) - kBeta * depth_o, 0); + float a2 = dot(v_s2, v_s2) + kEpsilon; + ao += a1 / a2; + } + + ao *= _Radius; // intensity normalization + + // Apply other parameters. + return pow(ao * _Intensity / _SampleCount, kContrast); + } + + // Geometry-aware separable blur filter (large kernel) + half SeparableBlurLarge(sampler2D tex, float2 uv, float2 delta) + { + #if !SHADER_API_MOBILE + // 9-tap Gaussian blur with adaptive sampling + float2 uv1a = uv - delta; + float2 uv1b = uv + delta; + float2 uv2a = uv - delta * 2; + float2 uv2b = uv + delta * 2; + float2 uv3a = uv - delta * 3.2307692308; + float2 uv3b = uv + delta * 3.2307692308; + + half3 n0 = SampleNormal(uv); + + half w0 = 0.37004405286; + half w1a = CompareNormal(n0, SampleNormal(uv1a)) * 0.31718061674; + half w1b = CompareNormal(n0, SampleNormal(uv1b)) * 0.31718061674; + half w2a = CompareNormal(n0, SampleNormal(uv2a)) * 0.19823788546; + half w2b = CompareNormal(n0, SampleNormal(uv2b)) * 0.19823788546; + half w3a = CompareNormal(n0, SampleNormal(uv3a)) * 0.11453744493; + half w3b = CompareNormal(n0, SampleNormal(uv3b)) * 0.11453744493; + + half s = tex2D(_MainTex, uv).r * w0; + s += tex2D(_MainTex, uv1a).r * w1a; + s += tex2D(_MainTex, uv1b).r * w1b; + s += tex2D(_MainTex, uv2a).r * w2a; + s += tex2D(_MainTex, uv2b).r * w2b; + s += tex2D(_MainTex, uv3a).r * w3a; + s += tex2D(_MainTex, uv3b).r * w3b; + + return s / (w0 + w1a + w1b + w2a + w2b + w3a + w3b); + #else + // 9-tap Gaussian blur with linear sampling + // (less quality but slightly fast) + float2 uv1a = uv - delta * 1.3846153846; + float2 uv1b = uv + delta * 1.3846153846; + float2 uv2a = uv - delta * 3.2307692308; + float2 uv2b = uv + delta * 3.2307692308; + + half3 n0 = SampleNormal(uv); + + half w0 = 0.2270270270; + half w1a = CompareNormal(n0, SampleNormal(uv1a)) * 0.3162162162; + half w1b = CompareNormal(n0, SampleNormal(uv1b)) * 0.3162162162; + half w2a = CompareNormal(n0, SampleNormal(uv2a)) * 0.0702702703; + half w2b = CompareNormal(n0, SampleNormal(uv2b)) * 0.0702702703; + + half s = tex2D(_MainTex, uv).r * w0; + s += tex2D(_MainTex, uv1a).r * w1a; + s += tex2D(_MainTex, uv1b).r * w1b; + s += tex2D(_MainTex, uv2a).r * w2a; + s += tex2D(_MainTex, uv2b).r * w2b; + + return s / (w0 + w1a + w1b + w2a + w2b); + #endif + } + + // Geometry-aware separable blur filter (small kernel) + half SeparableBlurSmall(sampler2D tex, float2 uv, float2 delta) + { + float2 uv1 = uv - delta; + float2 uv2 = uv + delta; + + half3 n0 = SampleNormal(uv); + + half w0 = 2; + half w1 = CompareNormal(n0, SampleNormal(uv1)); + half w2 = CompareNormal(n0, SampleNormal(uv2)); + + half s = tex2D(_MainTex, uv).r * w0; + s += tex2D(_MainTex, uv1).r * w1; + s += tex2D(_MainTex, uv2).r * w2; + + return s / (w0 + w1 + w2); + } + + // Pass 0: Occlusion estimation + half4 frag_ao(v2f_img i) : SV_Target + { + return EstimateOcclusion(i.uv); + } + + // Pass 1: Primary blur filter + half4 frag_blur1(v2f_img i) : SV_Target + { + float2 delta = _MainTex_TexelSize.xy * _BlurVector; + return SeparableBlurLarge(_MainTex, i.uv, delta); + } + + // Pass 2: Secondary blur filter + half4 frag_blur2(v2f_img i) : SV_Target + { + float2 delta = _MainTex_TexelSize.xy * _BlurVector; + return SeparableBlurSmall(_MainTex, i.uv, delta); + } + + // Pass 3: Combiner for the forward mode + struct v2f_multitex + { + float4 pos : SV_POSITION; + float2 uv0 : TEXCOORD0; + float2 uv1 : TEXCOORD1; + }; + + v2f_multitex vert_multitex(appdata_img v) + { + // Handles vertically-flipped case. + float vflip = sign(_MainTex_TexelSize.y); + + v2f_multitex o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv0 = v.texcoord.xy; + o.uv1 = (v.texcoord.xy - 0.5) * float2(1, vflip) + 0.5; + return o; + } + + half4 frag_combine(v2f_multitex i) : SV_Target + { + half4 src = tex2D(_MainTex, i.uv0); + half ao = tex2D(_OcclusionTexture, i.uv1).r; + return half4(CombineOcclusion(src.rgb, ao), src.a); + } + + // Pass 4: Combiner for the ambient-only mode + v2f_img vert_gbuffer(appdata_img v) + { + v2f_img o; + o.pos = v.vertex * float4(2, 2, 0, 0) + float4(0, 0, 0, 1); + #if UNITY_UV_STARTS_AT_TOP + o.uv = v.texcoord * float2(1, -1) + float2(0, 1); + #else + o.uv = v.texcoord; + #endif + return o; + } + +#if !SHADER_API_GLES // excluding the MRT pass under GLES2 + + struct CombinerOutput + { + half4 gbuffer0 : SV_Target0; + half4 gbuffer3 : SV_Target1; + }; + + CombinerOutput frag_gbuffer_combine(v2f_img i) + { + half ao = tex2D(_OcclusionTexture, i.uv).r; + CombinerOutput o; + o.gbuffer0 = half4(0, 0, 0, ao); + o.gbuffer3 = half4((half3)EncodeAO(ao), 0); + return o; + } + +#else + + fixed4 frag_gbuffer_combine(v2f_img i) : SV_Target0 + { + return 0; + } + +#endif + + // Pass 5: Debug blit + half4 frag_blit_ao(v2f_multitex i) : SV_Target + { + half4 src = tex2D(_MainTex, i.uv0); + half ao = tex2D(_OcclusionTexture, i.uv1).r; + return half4(CombineOcclusion(1, ao), src.a); + } + + ENDCG + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _SOURCE_DEPTHNORMALS _SOURCE_GBUFFER + #pragma multi_compile _ _SAMPLECOUNT_LOWEST + #pragma vertex vert_img + #pragma fragment frag_ao + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _SOURCE_DEPTHNORMALS _SOURCE_GBUFFER + #pragma vertex vert_img + #pragma fragment frag_blur1 + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _SOURCE_DEPTHNORMALS _SOURCE_GBUFFER + #pragma vertex vert_img + #pragma fragment frag_blur2 + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma vertex vert_multitex + #pragma fragment frag_combine + #pragma target 3.0 + ENDCG + } + Pass + { + Blend Zero OneMinusSrcColor, Zero OneMinusSrcAlpha + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma vertex vert_gbuffer + #pragma fragment frag_gbuffer_combine + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma vertex vert_multitex + #pragma fragment frag_blit_ao + #pragma target 3.0 + ENDCG + } + } +} diff --git a/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader.meta b/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader.meta new file mode 100644 index 0000000..b7de14f --- /dev/null +++ b/Assets/Cinematic Effects/AmbientOcclusion/Resources/AmbientOcclusion.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 65e203e5acda447acbf9dc1ef78c4a39 +timeCreated: 1457327141 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom.meta b/Assets/Cinematic Effects/Bloom.meta new file mode 100644 index 0000000..7cd206d --- /dev/null +++ b/Assets/Cinematic Effects/Bloom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 193f90bb87f484c62ad73788d9cb2d44 +folderAsset: yes +timeCreated: 1454052266 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom/Bloom.cs b/Assets/Cinematic Effects/Bloom/Bloom.cs new file mode 100644 index 0000000..fadd47f --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Bloom.cs @@ -0,0 +1,223 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Cinematic/Bloom")] +#if UNITY_5_4_OR_NEWER + [ImageEffectAllowedInSceneView] +#endif + public class Bloom : MonoBehaviour + { + [Serializable] + public struct Settings + { + [SerializeField] + [Tooltip("Filters out pixels under this level of brightness.")] + public float threshold; + + public float thresholdGamma + { + set { threshold = value; } + get { return Mathf.Max(0.0f, threshold); } + } + + public float thresholdLinear + { + set { threshold = Mathf.LinearToGammaSpace(value); } + get { return Mathf.GammaToLinearSpace(thresholdGamma); } + } + + [SerializeField, Range(1, 7)] + [Tooltip("Changes extent of veiling effects in a screen resolution-independent fashion.")] + public float radius; + + [SerializeField] + [Tooltip("Blend factor of the result image.")] + public float intensity; + + [SerializeField] + [Tooltip("Controls filter quality and buffer resolution.")] + public bool highQuality; + + [SerializeField] + [Tooltip("Reduces flashing noise with an additional filter.")] + public bool antiFlicker; + + public static Settings defaultSettings + { + get + { + var settings = new Settings + { + threshold = 0.9f, + radius = 2.0f, + intensity = 0.7f, + highQuality = true, + antiFlicker = false + }; + return settings; + } + } + } + + #region Public Properties + + [SerializeField] + public Settings settings = Settings.defaultSettings; + + #endregion + + [SerializeField, HideInInspector] + private Shader m_Shader; + + public Shader shader + { + get + { + if (m_Shader == null) + { + const string shaderName = "Hidden/Image Effects/Cinematic/Bloom"; + m_Shader = Shader.Find(shaderName); + } + + return m_Shader; + } + } + + private Material m_Material; + public Material material + { + get + { + if (m_Material == null) + m_Material = ImageEffectHelper.CheckShaderAndCreateMaterial(shader); + + return m_Material; + } + } + + #region Private Members + + const int kMaxIterations = 16; + RenderTexture[] m_blurBuffer1 = new RenderTexture[kMaxIterations]; + RenderTexture[] m_blurBuffer2 = new RenderTexture[kMaxIterations]; + + private void OnEnable() + { + if (!ImageEffectHelper.IsSupported(shader, true, false, this)) + enabled = false; + } + + private void OnDisable() + { + if (m_Material != null) + DestroyImmediate(m_Material); + + m_Material = null; + } + + private void OnRenderImage(RenderTexture source, RenderTexture destination) + { + var useRGBM = Application.isMobilePlatform; + var isGamma = QualitySettings.activeColorSpace == ColorSpace.Gamma; + + // source texture size + var tw = source.width; + var th = source.height; + + // halve the texture size for the low quality mode + if (!settings.highQuality) + { + tw /= 2; + th /= 2; + } + + // blur buffer format + var rtFormat = useRGBM ? RenderTextureFormat.Default : RenderTextureFormat.DefaultHDR; + + // determine the iteration count + var logh = Mathf.Log(th, 2) + settings.radius - 8; + var logh_i = (int)logh; + var iterations = Mathf.Clamp(logh_i, 1, kMaxIterations); + + // update the shader properties + var threshold = settings.thresholdLinear; + material.SetFloat("_Threshold", threshold); + + const float softKneeRatio = 0.5f; + var knee = threshold * softKneeRatio + 1e-5f; + var curve = new Vector3(threshold - knee, knee * 2, 0.25f / knee); + material.SetVector("_Curve", curve); + + var pfo = !settings.highQuality && settings.antiFlicker; + material.SetFloat("_PrefilterOffs", pfo ? -0.5f : 0.0f); + + material.SetFloat("_SampleScale", 0.5f + logh - logh_i); + material.SetFloat("_Intensity", Mathf.Max(0.0f, settings.intensity)); + + if (settings.highQuality) + material.EnableKeyword("HIGH_QUALITY"); + else + material.DisableKeyword("HIGH_QUALITY"); + + if (settings.antiFlicker) + material.EnableKeyword("ANTI_FLICKER"); + else + material.DisableKeyword("ANTI_FLICKER"); + + if (isGamma) + { + material.DisableKeyword("LINEAR_COLOR"); + material.EnableKeyword("GAMMA_COLOR"); + } + else + { + material.EnableKeyword("LINEAR_COLOR"); + material.DisableKeyword("GAMMA_COLOR"); + } + + // prefilter pass + var prefiltered = RenderTexture.GetTemporary(tw, th, 0, rtFormat); + Graphics.Blit(source, prefiltered, material, 0); + + // construct a mip pyramid + var last = prefiltered; + for (var level = 0; level < iterations; level++) + { + m_blurBuffer1[level] = RenderTexture.GetTemporary(last.width / 2, last.height / 2, 0, rtFormat); + Graphics.Blit(last, m_blurBuffer1[level], material, (level == 0) ? 1 : 2); + last = m_blurBuffer1[level]; + } + + // upsample and combine loop + for (var level = iterations - 2; level >= 0; level--) + { + var basetex = m_blurBuffer1[level]; + material.SetTexture("_BaseTex", basetex); + m_blurBuffer2[level] = RenderTexture.GetTemporary(basetex.width, basetex.height, 0, rtFormat); + Graphics.Blit(last, m_blurBuffer2[level], material, 3); + last = m_blurBuffer2[level]; + } + + // finish process + material.SetTexture("_BaseTex", source); + Graphics.Blit(last, destination, material, 4); + + // release the temporary buffers + for (var i = 0; i < kMaxIterations; i++) + { + if (m_blurBuffer1[i] != null) RenderTexture.ReleaseTemporary(m_blurBuffer1[i]); + if (m_blurBuffer2[i] != null) RenderTexture.ReleaseTemporary(m_blurBuffer2[i]); + m_blurBuffer1[i] = null; + m_blurBuffer2[i] = null; + } + + RenderTexture.ReleaseTemporary(prefiltered); + } + + #endregion + } +} diff --git a/Assets/Cinematic Effects/Bloom/Bloom.cs.meta b/Assets/Cinematic Effects/Bloom/Bloom.cs.meta new file mode 100644 index 0000000..95024ea --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Bloom.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 32187365ced0c42219cde2b57c99b323 +timeCreated: 1454052338 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - _shader: {fileID: 4800000, guid: e45d4f28262b04d10a075856ab5fdb5e, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom/Editor.meta b/Assets/Cinematic Effects/Bloom/Editor.meta new file mode 100644 index 0000000..0a74df6 --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 92a024b1f1430409eb656f65969aa3d5 +folderAsset: yes +timeCreated: 1454052266 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs b/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs new file mode 100644 index 0000000..0a9e4f1 --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using UnityEditor; + +namespace UnityStandardAssets.CinematicEffects +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(Bloom))] + public class BloomEditor : Editor + { + [NonSerialized] + private List m_Properties = new List(); + + void OnEnable() + { + var settings = FieldFinder.GetField(x => x.settings); + foreach (var setting in settings.FieldType.GetFields()) + { + var prop = settings.Name + "." + setting.Name; + m_Properties.Add(serializedObject.FindProperty(prop)); + } + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + foreach (var property in m_Properties) + EditorGUILayout.PropertyField(property); + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs.meta b/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs.meta new file mode 100644 index 0000000..3569f9f --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Editor/BloomEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 38020a6029a85434a95a6f725a5aae5f +timeCreated: 1454052266 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom/Resources.meta b/Assets/Cinematic Effects/Bloom/Resources.meta new file mode 100644 index 0000000..7099ea8 --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4af3202dbe79e460e9be42bcb6509fe0 +folderAsset: yes +timeCreated: 1454052266 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader b/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader new file mode 100644 index 0000000..9d23541 --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader @@ -0,0 +1,284 @@ +Shader "Hidden/Image Effects/Cinematic/Bloom" +{ + Properties + { + _MainTex("", 2D) = "" {} + _BaseTex("", 2D) = "" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + // Mobile: use RGBM instead of float/half RGB + #define USE_RGBM defined(SHADER_API_MOBILE) + + sampler2D _MainTex; + sampler2D _BaseTex; + float2 _MainTex_TexelSize; + float2 _BaseTex_TexelSize; + + float _PrefilterOffs; + half _Threshold; + half3 _Curve; + float _SampleScale; + half _Intensity; + + // Brightness function + half Brightness(half3 c) + { + return max(max(c.r, c.g), c.b); + } + + // 3-tap median filter + half3 Median(half3 a, half3 b, half3 c) + { + return a + b + c - min(min(a, b), c) - max(max(a, b), c); + } + + // Clamp HDR value within a safe range + half3 SafeHDR(half3 c) { return min(c, 65000); } + half4 SafeHDR(half4 c) { return min(c, 65000); } + + // RGBM encoding/decoding + half4 EncodeHDR(float3 rgb) + { + #if USE_RGBM + rgb *= 1.0 / 8; + float m = max(max(rgb.r, rgb.g), max(rgb.b, 1e-6)); + m = ceil(m * 255) / 255; + return half4(rgb / m, m); + #else + return half4(rgb, 0); + #endif + } + + float3 DecodeHDR(half4 rgba) + { + #if USE_RGBM + return rgba.rgb * rgba.a * 8; + #else + return rgba.rgb; + #endif + } + + // Downsample with a 4x4 box filter + half3 DownsampleFilter(float2 uv) + { + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + return s * (1.0 / 4); + } + + // Downsample with a 4x4 box filter + anti-flicker filter + half3 DownsampleAntiFlickerFilter(float2 uv) + { + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); + + half3 s1 = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + half3 s2 = DecodeHDR(tex2D(_MainTex, uv + d.zy)); + half3 s3 = DecodeHDR(tex2D(_MainTex, uv + d.xw)); + half3 s4 = DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + // Karis's luma weighted average + half s1w = 1 / (Brightness(s1) + 1); + half s2w = 1 / (Brightness(s2) + 1); + half s3w = 1 / (Brightness(s3) + 1); + half s4w = 1 / (Brightness(s4) + 1); + half one_div_wsum = 1.0 / (s1w + s2w + s3w + s4w); + + return (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * one_div_wsum; + } + + half3 UpsampleFilter(float2 uv) + { + #if HIGH_QUALITY + // 9-tap bilinear upsampler (tent filter) + float4 d = _MainTex_TexelSize.xyxy * float4(1, 1, -1, 0) * _SampleScale; + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv - d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv - d.wy)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv - d.zy)); + + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv )) * 4; + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)) * 2; + + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.wy)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv + d.xy)); + + return s * (1.0 / 16); + #else + // 4-tap bilinear upsampler + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1) * (_SampleScale * 0.5); + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + return s * (1.0 / 4); + #endif + } + + // + // Vertex shader + // + + struct v2f_multitex + { + float4 pos : SV_POSITION; + float2 uvMain : TEXCOORD0; + float2 uvBase : TEXCOORD1; + }; + + v2f_multitex vert_multitex(appdata_full v) + { + v2f_multitex o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uvMain = v.texcoord.xy; + o.uvBase = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if (_BaseTex_TexelSize.y < 0.0) + o.uvBase.y = 1.0 - v.texcoord.y; + #endif + return o; + } + + // + // fragment shader + // + + half4 frag_prefilter(v2f_img i) : SV_Target + { + float2 uv = i.uv + _MainTex_TexelSize.xy * _PrefilterOffs; + + #if ANTI_FLICKER + float3 d = _MainTex_TexelSize.xyx * float3(1, 1, 0); + half4 s0 = SafeHDR(tex2D(_MainTex, uv)); + half3 s1 = SafeHDR(tex2D(_MainTex, uv - d.xz).rgb); + half3 s2 = SafeHDR(tex2D(_MainTex, uv + d.xz).rgb); + half3 s3 = SafeHDR(tex2D(_MainTex, uv - d.zy).rgb); + half3 s4 = SafeHDR(tex2D(_MainTex, uv + d.zy).rgb); + half3 m = Median(Median(s0.rgb, s1, s2), s3, s4); + #else + half4 s0 = SafeHDR(tex2D(_MainTex, uv)); + half3 m = s0.rgb; + #endif + + #if GAMMA_COLOR + m = GammaToLinearSpace(m); + #endif + // Pixel brightness + half br = Brightness(m); + + // Under-threshold part: quadratic curve + half rq = clamp(br - _Curve.x, 0, _Curve.y); + rq = _Curve.z * rq * rq; + + // Combine and apply the brightness response curve. + m *= max(rq, br - _Threshold) / (br + 1e-5); + + return EncodeHDR(m); + } + + half4 frag_downsample1(v2f_img i) : SV_Target + { + #if ANTI_FLICKER + return EncodeHDR(DownsampleAntiFlickerFilter(i.uv)); + #else + return EncodeHDR(DownsampleFilter(i.uv)); + #endif + } + + half4 frag_downsample2(v2f_img i) : SV_Target + { + return EncodeHDR(DownsampleFilter(i.uv)); + } + + half4 frag_upsample(v2f_multitex i) : SV_Target + { + half3 base = DecodeHDR(tex2D(_BaseTex, i.uvBase)); + half3 blur = UpsampleFilter(i.uvMain); + return EncodeHDR(base + blur); + } + + half4 frag_upsample_final(v2f_multitex i) : SV_Target + { + half4 base = tex2D(_BaseTex, i.uvBase); + half3 blur = UpsampleFilter(i.uvMain); + #if GAMMA_COLOR + base.rgb = GammaToLinearSpace(base.rgb); + #endif + half3 cout = base.rgb + blur * _Intensity; + #if GAMMA_COLOR + cout = LinearToGammaSpace(cout); + #endif + return half4(cout, base.a); + } + + ENDCG + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ ANTI_FLICKER + #pragma multi_compile LINEAR_COLOR GAMMA_COLOR + #pragma vertex vert_img + #pragma fragment frag_prefilter + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ ANTI_FLICKER + #pragma vertex vert_img + #pragma fragment frag_downsample1 + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_downsample2 + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ HIGH_QUALITY + #pragma vertex vert_multitex + #pragma fragment frag_upsample + #pragma target 3.0 + ENDCG + } + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ HIGH_QUALITY + #pragma multi_compile LINEAR_COLOR GAMMA_COLOR + #pragma vertex vert_multitex + #pragma fragment frag_upsample_final + #pragma target 3.0 + ENDCG + } + } +} diff --git a/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader.meta b/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader.meta new file mode 100644 index 0000000..c2a82ba --- /dev/null +++ b/Assets/Cinematic Effects/Bloom/Resources/Bloom.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e45d4f28262b04d10a075856ab5fdb5e +timeCreated: 1454052270 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta.meta b/Assets/Cinematic Effects/BloomBeta.meta new file mode 100644 index 0000000..4421927 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c6eb038cfff9e4dd990eeca4d9f4013f +folderAsset: yes +timeCreated: 1461974392 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Editor.meta b/Assets/Cinematic Effects/BloomBeta/Editor.meta new file mode 100644 index 0000000..ea5e5ab --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 59c160308a8e47545a7b1baa9377c744 +folderAsset: yes +timeCreated: 1443580217 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs b/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs new file mode 100644 index 0000000..2510b00 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs @@ -0,0 +1,526 @@ +using UnityEngine; +using System.Collections.Generic; +using UnityEditor; +using System.IO; +using System; + +public class CameraDirtTextureGenerator : EditorWindow +{ + + + Texture2D m_DestinationTexture = null; + + [SerializeField] + int m_PassCount; + + + [SerializeField] + BokehGenerationPass[] m_BokehPasses = new BokehGenerationPass[5]; + + [Serializable] + class BokehGenerationPass + { + [SerializeField] + public Texture2D m_BokehTexture; + [SerializeField] + public float m_MinimumSize = 100.0f; + [SerializeField] + public float m_MaximumSize = 200.0f; + [SerializeField] + public float m_Density = 0.1f; + [SerializeField] + public float m_MinIntensity = 0.1f; + [SerializeField] + public float m_MaxIntensity = 0.3f; + [SerializeField] + public float m_BlurRadius = 1; + [SerializeField] + public float m_VignettePower = 0.5f; + [SerializeField] + public float m_ChromaticAberration = 20.0f; + [SerializeField] + public float m_HueVariation = 0.3f; + [SerializeField] + public bool m_RandomRotation = false; + } + + List[] m_Positions = new List[5]; + float[] m_MinimumDistance = new float[5]; + + Vector2 m_ScrollPos; + + [MenuItem("Window/Bokeh Texture Generator")] + public static void ShowWindow() + { + EditorWindow.GetWindow(typeof(CameraDirtTextureGenerator)); + } + + + GUIStyle m_Background1; + GUIStyle m_Background2; + GUIStyle m_Background3; + GUIStyle m_Background4; + void OnEnable() + { + m_Background1 = new GUIStyle(); + m_Background1.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.1f)); + m_Background2 = new GUIStyle(); + m_Background2.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.0f)); + m_Background3 = new GUIStyle(); + m_Background3.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.05f)); + m_Background4 = new GUIStyle(); + m_Background4.normal.background = MakeTex(600, 1, new Color(0.0f, 0.0f, 0.0f, 1.0f)); + + + } + + void OnDisable() + { + GameObject.DestroyImmediate(m_Background1.normal.background); + GameObject.DestroyImmediate(m_Background2.normal.background); + GameObject.DestroyImmediate(m_Background3.normal.background); + GameObject.DestroyImmediate(m_Background4.normal.background); + } + + void CreateAndSetTexture() + { + Texture2D tmp = new Texture2D(m_Width, m_Height); + var bytes = tmp.EncodeToPNG(); + File.WriteAllBytes("Assets/UB_BokehTexture.png", bytes); + AssetDatabase.ImportAsset("Assets/UB_BokehTexture.png"); + + m_DestinationTexture = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/UB_BokehTexture.png", typeof(Texture2D)); + } + + int m_Width = 1280; + int m_Height = 720; + + void OnGUI() + { + Undo.RecordObject(this, "Lens Bokeh Texture Generator"); + + GUILayout.Label("SETTINGS", EditorStyles.boldLabel); + + m_DestinationTexture = (Texture2D)EditorGUILayout.ObjectField("Destination Texture", m_DestinationTexture, typeof(Texture2D), false); + + if (m_DestinationTexture == null) + { + GUILayout.Label("Please set or create a destination texture."); + GUILayout.BeginHorizontal(); + m_Width = Mathf.Clamp(EditorGUILayout.IntField("Width", m_Width),10, 4096); + m_Height = Mathf.Clamp(EditorGUILayout.IntField("Height", m_Height), 10, 4096); + GUILayout.EndHorizontal(); + if (GUILayout.Button("Create and set Texture")) + { + CreateAndSetTexture(); + } + } + else + { + m_PassCount = Mathf.Clamp(EditorGUILayout.IntField("Layer Count", m_PassCount), 1, 5); + GUILayout.Space(20.0f); + GUILayout.Label("LAYERS", EditorStyles.boldLabel); + m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos); + for (int i = 0; i < m_PassCount; ++i) + { + GUILayout.BeginVertical(i % 2 == 0 ? m_Background3 : m_Background1); + BokehGenerationPass p = m_BokehPasses[i]; + p.m_BokehTexture = (Texture2D)EditorGUILayout.ObjectField("Sprite Texture", p.m_BokehTexture, typeof(Texture2D), false); + p.m_MinimumSize = DoSlider("Minimum Size", p.m_MinimumSize, 20.0f, 400.0f); + p.m_MaximumSize = DoSlider("Maximum Size", p.m_MaximumSize, 20.0f, 400.0f); + p.m_BlurRadius = DoSlider("Blur Radius", p.m_BlurRadius, 0.0f, 10.0f); + p.m_VignettePower = DoSlider("Vignette Power", p.m_VignettePower, 0.0f, 10.0f); + p.m_HueVariation = DoSlider("Hue Variation", p.m_HueVariation, 0.0f, 0.8f); + p.m_MinIntensity = DoSlider("Minimum Intensity", p.m_MinIntensity, 0.0f, 1.0f); + p.m_MaxIntensity = DoSlider("Maximum Intensity", p.m_MaxIntensity, 0.0f, 1.0f); + p.m_Density = DoSlider("Density", p.m_Density, 0.0f, 1.0f); + p.m_ChromaticAberration = DoSlider("Chromatic Aberration", p.m_ChromaticAberration, 0.0f, 50.0f); + p.m_RandomRotation = EditorGUILayout.Toggle("Random Rotation", p.m_RandomRotation); + GUILayout.Space(20.0f); + GUILayout.EndVertical(); + } + GUILayout.EndScrollView(); + + + + + if (GUILayout.Button("Generate Bokeh Texture")) + { + GenerateTexture(); + } + + if (m_DestinationTexture != null) + { + GUILayout.BeginVertical(m_Background4); + + float w = m_DestinationTexture.width; + if (m_DestinationTexture.width > 300.0f) + w = 300.0f; + + float h = ((float)m_DestinationTexture.height / (float)m_DestinationTexture.width) * w; + + Rect r = GUILayoutUtility.GetRect(w, h); + + + r.position = new Vector2(r.width * 0.5f - w*0.5f, r.position.y); + + r.height = h; + r.width = w; + + //Debug.Log("r=" + h); + EditorGUI.DrawPreviewTexture(r, m_DestinationTexture); + + GUILayout.EndVertical(); + } + + + } + + + + if (GUI.changed) + { + EditorUtility.SetDirty(this); + } + } + + float DoSlider(string label, float value, float min, float max) + { + float v = value; + EditorGUILayout.BeginHorizontal(); + v = Mathf.Clamp(EditorGUILayout.FloatField(label, v), min, max); + v = GUILayout.HorizontalSlider(v, min, max); + EditorGUILayout.EndHorizontal(); + + return v; + } + + Material m_MixerMaterial = null; + + void GenerateTexture() + { + for (int i = 0; i < m_Positions.Length; ++i) + { + m_Positions[i] = new List(); + m_MinimumDistance[i] = 1.0f; + } + + Material bokehMaterial = new Material(Shader.Find("Hidden/Ultimate/BokehTexture")); + bokehMaterial.hideFlags = HideFlags.HideAndDontSave; + + Material blurMaterial = new Material(Shader.Find("Hidden/Ultimate/Sampling")); + blurMaterial.hideFlags = HideFlags.HideAndDontSave; + + Material miscMaterial = new Material(Shader.Find("Hidden/Ultimate/BokehMisc")); + miscMaterial.hideFlags = HideFlags.HideAndDontSave; + + Material mixerMaterial = new Material(Shader.Find("Hidden/Ultimate/BloomMixer")); + mixerMaterial.hideFlags = HideFlags.HideAndDontSave; + + m_MixerMaterial = mixerMaterial; + + RenderTexture accumulation = null; + for (int i = 0; i < m_PassCount; ++i) + { + RenderTexture current = GenerateTexture(i, bokehMaterial, blurMaterial, miscMaterial, m_DestinationTexture.width, m_DestinationTexture.height, m_BokehPasses[i]); + if (accumulation == null && current != null) + accumulation = current; + else if (current != null) + { + RenderTextureAdditive(current, accumulation, 1.0f); + RenderTexture.ReleaseTemporary(current); + } + } + + + string path = AssetDatabase.GetAssetPath(m_DestinationTexture); + + Texture2D newTexture = new Texture2D(m_DestinationTexture.width, m_DestinationTexture.height); + + RenderTexture.active = accumulation; + newTexture.ReadPixels(new Rect(0, 0, newTexture.width, newTexture.height), 0, 0); + newTexture.Apply(); + + var bytes = newTexture.EncodeToPNG(); + File.WriteAllBytes(path, bytes); + AssetDatabase.ImportAsset(path); + + GameObject.DestroyImmediate(bokehMaterial); + GameObject.DestroyImmediate(miscMaterial); + GameObject.DestroyImmediate(mixerMaterial); + + + } + + private RenderTexture GenerateTexture(int idx, Material material, Material blurMaterial, Material miscMaterial,int width, int height, BokehGenerationPass p) + { + RenderTexture rtA = RenderTexture.GetTemporary(width, height); + //RenderTexture lastActive = RenderTexture.active; + + material.mainTexture = p.m_BokehTexture; + + RenderTexture.active = rtA; + GL.Clear(true, true, Color.black); + + + //GL.LoadPixelMatrix(0,width,0,height); + //GL.LoadPixelMatrix(0, width, 0, height); + Matrix4x4 proj = Matrix4x4.Ortho(0, width, 0, height, -1.0f, 1.0f); + + material.SetMatrix("_MeshProjectionMatrix", proj); + + int nbPixel = width * height; + int nbQuad = (int)(p.m_Density * 0.0004f * nbPixel); + material.SetFloat("_Intensity", UnityEngine.Random.Range( p.m_MinIntensity, p.m_MaxIntensity) ); + + float cellSize = Mathf.Max( Mathf.Sqrt(nbQuad), 0.1f); + + float xStep = (float)width / cellSize; + float yStep = (float)height / cellSize; + + for (float i = 0; i < width; i += xStep) + { + for (float j = 0; j < height; j += yStep) + { + + Color tint = new Color(UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f), UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f), UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f)); + material.SetColor("_Tint", tint); + material.SetPass(0); + float size = UnityEngine.Random.Range(p.m_MinimumSize, p.m_MaximumSize); + + //float x = UnityEngine.Random.Range(-1f, 1f); + //float y = UnityEngine.Random.Range(-1f, 1f); + + + float x = (i + UnityEngine.Random.Range(0, xStep)) / width * 2.0f - 1.0f; + float y = (j + UnityEngine.Random.Range(0, yStep)) / height * 2.0f - 1.0f; + + float dist = new Vector2(x, y).magnitude; + float sizeMul = Mathf.Min(Mathf.Pow(dist, p.m_VignettePower), 1.0f); + + + float s = sizeMul > 0.5f ? size * sizeMul : 0.0f; + float angle = UnityEngine.Random.Range(0.0f, p.m_RandomRotation ? 360.0f : 0.0f); + Vector3 nDiv = new Vector3(1.0f / width, 1.0f / height, 0.0f); + Vector3 tl = RotateZ(new Vector3(-s, -s, 0.0f), angle); + Vector3 tr = RotateZ(new Vector3(s, -s, 0f), angle); + Vector3 br = RotateZ(new Vector3(s, s, 0f), angle); + Vector3 bl = RotateZ(new Vector3(-s, s, 0f), angle); + + tl = new Vector3(tl.x * nDiv.x, tl.y * nDiv.y, 0.0f); + tr = new Vector3(tr.x * nDiv.x, tr.y * nDiv.y, 0.0f); + br = new Vector3(br.x * nDiv.x, br.y * nDiv.y, 0.0f); + bl = new Vector3(bl.x * nDiv.x, bl.y * nDiv.y, 0.0f); + + + DrawQuad(x, y, tl, tr, br, bl); + + } + } + + if (material.SetPass(0)) + { + + /*for (int i = 0; i < nbQuad; ++i) + { + Color tint = new Color(UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f), UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f), UnityEngine.Random.Range(1.0f - p.m_HueVariation, 1.0f)); + material.SetColor("_Tint", tint); + material.SetPass(0); + float size = UnityEngine.Random.Range(p.m_MinimumSize, p.m_MaximumSize); + + //float x = UnityEngine.Random.Range(-1f, 1f); + //float y = UnityEngine.Random.Range(-1f, 1f); + + Vector3 pos = PickPosition(idx); + float x = pos.x; + float y = pos.y; + + float dist = new Vector2(x, y).magnitude; + float sizeMul = Mathf.Min(Mathf.Pow(dist, p.m_VignettePower), 1.0f); + + + float s = sizeMul > 0.5f ? size * sizeMul : 0.0f; + float angle = UnityEngine.Random.Range(0.0f, p.m_RandomRotation? 360.0f : 0.0f); + Vector3 nDiv = new Vector3(1.0f / width, 1.0f / height, 0.0f); + Vector3 tl = RotateZ(new Vector3(-s, -s, 0.0f), angle); + Vector3 tr = RotateZ(new Vector3(s, -s, 0f), angle); + Vector3 br = RotateZ(new Vector3(s, s, 0f), angle); + Vector3 bl = RotateZ(new Vector3(-s, s, 0f), angle); + + tl = new Vector3(tl.x * nDiv.x, tl.y * nDiv.y, 0.0f); + tr = new Vector3(tr.x * nDiv.x, tr.y * nDiv.y, 0.0f); + br = new Vector3(br.x * nDiv.x, br.y * nDiv.y, 0.0f); + bl = new Vector3(bl.x * nDiv.x, bl.y * nDiv.y, 0.0f); + + + DrawQuad(x, y, tl , tr , br , bl ); + }*/ + + } + + RenderTexture rtB = RenderTexture.GetTemporary(width, height); + for (int i = 0; i < 1; ++i) + { + RenderTexture.active = rtB; + blurMaterial.SetTexture("_AdditiveTexture", Texture2D.blackTexture); + blurMaterial.SetVector("_OffsetInfos", new Vector4(1.0f / width * p.m_BlurRadius, 0, 0, 0)); + blurMaterial.SetVector("_Tint", Color.white); + blurMaterial.SetFloat("_Intensity", 1.0f); + Graphics.Blit(rtA, rtB, blurMaterial, 2); + + blurMaterial.SetVector("_OffsetInfos", new Vector4(0, 1.0f / height * p.m_BlurRadius, 0, 0)); + Graphics.Blit(rtB, rtA, blurMaterial, 4); + } + + // Chromatic Aberration + miscMaterial.SetFloat("_ChromaticAberration", p.m_ChromaticAberration); + Graphics.Blit(rtA, rtB, miscMaterial, 0); + + /*RenderTexture.active = rtB; + Texture2D texture = new Texture2D(width, height); + texture.ReadPixels(new Rect(0, 0, width, height), 0, 0); + texture.Apply();*/ + + RenderTexture.ReleaseTemporary(rtA); + //RenderTexture.ReleaseTemporary(rtB); + //RenderTexture.active = lastActive; + + return rtB; + } + + Vector3 PickPosition(int idx) + { + float minDistance = m_MinimumDistance[idx]; + List positions = m_Positions[idx]; + + int nbTry = 20000; + bool ok = false; + + while (!ok) + { + float x = UnityEngine.Random.Range(-1f, 1f); + float y = UnityEngine.Random.Range(-1f, 1f); + + Vector3 pos = new Vector3(x, y, 0.0f); + + bool foundNearPos = false; + foreach (Vector3 cPos in positions) + { + if (Vector3.Distance(cPos, pos) < minDistance) + { + minDistance -= 0.1f; + m_MinimumDistance[idx] = minDistance; + foundNearPos = true; + break; + } + } + + if (!foundNearPos) + { + return pos; + } + + nbTry--; + if (nbTry < 0) + break; + } + + + + return Vector3.zero; + } + + public Vector3 RotateZ(Vector3 v, float angle) + { + float sin = Mathf.Sin(angle); + float cos = Mathf.Cos(angle); + + float tx = v.x; + float ty = v.y; + + Vector3 r = new Vector3(); + r.x = (cos * tx) - (sin * ty); + r.y = (cos * ty) + (sin * tx); + + return r; + } + + void DrawQuad(float x, float y, Vector3 tl, Vector3 tr, Vector3 br, Vector3 bl) + { + + + GL.Begin(GL.QUADS); // Quad + + GL.MultiTexCoord2(0, 1 - 0f, 0f); + GL.Vertex3(tl.x + x, tl.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 1f, 0f); + GL.Vertex3(tr.x + x, tr.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 1f, 1f); + GL.Vertex3(br.x + x, br.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 0f, 1f); + GL.Vertex3(bl.x + x, bl.y + y, 0f); + + GL.End(); + } + + /* void DrawQuad(float x, float y, float halfWidth, float halfHeight) + { + + float angle = UnityEngine.Random.Range(0.0f, 360.0f); + + + Vector3 tl = RotateZ(new Vector3(-halfWidth, -halfHeight, 0.0f), 0.0f); + Vector3 tr = RotateZ( new Vector3(halfWidth, -halfHeight, 0f), 0.0f); + Vector3 br = RotateZ(new Vector3(halfWidth, halfHeight, 0f), 0.0f); + Vector3 bl = RotateZ(new Vector3(-halfWidth, halfHeight, 0f), 0.0f); + + GL.Begin(GL.QUADS); // Quad + + GL.MultiTexCoord2(0, 1-0f, 0f); + GL.Vertex3(tl.x + x, tl.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 1f, 0f); + GL.Vertex3(tr.x + x, tr.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 1f, 1f); + GL.Vertex3(br.x + x, br.y + y, 0f); + + GL.MultiTexCoord2(0, 1 - 0f, 1f); + GL.Vertex3(bl.x + x, bl.y + y, 0f); + + GL.End(); + }*/ + + + private Texture2D MakeTex(int width, int height, Color col) + { + Color[] pix = new Color[width * height]; + + for (int i = 0; i < pix.Length; i++) + pix[i] = col; + + Texture2D result = new Texture2D(width, height); + result.hideFlags = HideFlags.HideAndDontSave; + result.SetPixels(pix); + result.Apply(); + + return result; + } + + void RenderTextureAdditive(RenderTexture source, RenderTexture destination, float intensity) + { + RenderTexture tmpTexture = RenderTexture.GetTemporary(source.width, source.height, source.depth, source.format); + Graphics.Blit(destination, tmpTexture); + + m_MixerMaterial.SetTexture("_ColorBuffer", tmpTexture); + m_MixerMaterial.SetFloat("_Intensity", intensity); + + Graphics.Blit(source, destination, m_MixerMaterial, 0); + + RenderTexture.ReleaseTemporary(tmpTexture); + } + +} diff --git a/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs.meta b/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs.meta new file mode 100644 index 0000000..6b35c0b --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Editor/BokehTextureGenerator.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a470493edcac30948be9a852dfd59a05 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs b/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs new file mode 100644 index 0000000..e0153ba --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs @@ -0,0 +1,445 @@ +using UnityEngine; +using System.Collections; +using UnityEditor; +using System.IO; + +[CustomEditor(typeof(UltimateBloom))] +public class UltimateBloomEditor : Editor +{ + + private Texture2D MakeTex(int width, int height, Color col) + { + Color[] pix = new Color[width * height]; + + for (int i = 0; i < pix.Length; i++) + pix[i] = col; + + Texture2D result = new Texture2D(width, height); + result.hideFlags = HideFlags.HideAndDontSave; + result.SetPixels(pix); + result.Apply(); + + return result; + } + + GUIStyle m_Background1; + GUIStyle m_Background2; + GUIStyle m_Background3; + + Texture2D m_Logo; + + public static string GetAbsoluteAssetPath(string path) + { + UltimateBloomPathLocator locator = ScriptableObject.CreateInstance(); + MonoScript script = MonoScript.FromScriptableObject(locator); + string scriptPath = AssetDatabase.GetAssetPath(script); + ScriptableObject.DestroyImmediate(locator); + return Path.GetDirectoryName(scriptPath) + "/" + path; + } + + void OnEnable() + { + m_Background1 = new GUIStyle(); + m_Background1.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.1f)); + m_Background2 = new GUIStyle(); + m_Background2.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.0f)); + m_Background3 = new GUIStyle(); + m_Background3.normal.background = MakeTex(600, 1, new Color(1.0f, 1.0f, 1.0f, 0.05f)); + + string logoPath = GetAbsoluteAssetPath("Editor/ub_logo.png"); + m_Logo = (Texture2D)AssetDatabase.LoadAssetAtPath(logoPath, typeof(Texture2D)); + + if (m_Logo != null) + m_Logo.hideFlags = HideFlags.HideAndDontSave; + } + + void OnDisable() + { + GameObject.DestroyImmediate(m_Background1.normal.background); + GameObject.DestroyImmediate(m_Background2.normal.background); + GameObject.DestroyImmediate(m_Background3.normal.background); + } + + + public override void OnInspectorGUI() + { + UltimateBloom bloomDeluxe = (UltimateBloom)target; + Undo.RecordObject(bloomDeluxe, "Bloom DELUXE"); + + if (m_Logo != null) + { + Rect rect = GUILayoutUtility.GetRect(m_Logo.width, m_Logo.height); + GUI.DrawTexture(rect, m_Logo, ScaleMode.ScaleToFit); + } + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowBloomSettings = UBHelper.GroupHeader("Bloom Settings", bloomDeluxe.m_UiShowBloomSettings); + if (bloomDeluxe.m_UiShowBloomSettings) + { + + bloomDeluxe.m_HDR = (UltimateBloom.HDRBloomMode)EditorGUILayout.EnumPopup("HDR", bloomDeluxe.m_HDR); + bloomDeluxe.m_InvertImage = EditorGUILayout.Toggle("Flip Image", bloomDeluxe.m_InvertImage); + + + bloomDeluxe.m_BloomIntensity = DoSlider("Bloom Master Intensity", bloomDeluxe.m_BloomIntensity, 0.0f, 5.0f); + //bloomDeluxe.m_BloomIntensity = Mathf.Clamp(EditorGUILayout.FloatField("Bloom Master Intensity", bloomDeluxe.m_BloomIntensity), 0.0f, 100.0f); + bloomDeluxe.m_DownscaleCount = Mathf.Clamp(EditorGUILayout.IntField("Layers (Downscale Count)", bloomDeluxe.m_DownscaleCount), 1, 6); + if (GUILayout.Button((bloomDeluxe.m_UiShowBloomScales ? "Hide Layers" : "Show Layers") + "[" + bloomDeluxe.m_DownscaleCount + "]")) + bloomDeluxe.m_UiShowBloomScales = !bloomDeluxe.m_UiShowBloomScales; + + if (bloomDeluxe.m_UiShowBloomScales) + { + + for (int i = 0; i < bloomDeluxe.m_DownscaleCount; ++i) + { + GUILayout.BeginVertical(i % 2 == 0 ? m_Background3 : m_Background1); + int idx = i + 1; + bloomDeluxe.m_BloomUsages[i] = EditorGUILayout.Toggle(" Layer " + idx + " Enabled", bloomDeluxe.m_BloomUsages[i]); + bloomDeluxe.m_BloomIntensities[i] = DoSlider(" Layer " + idx + " Intensity", bloomDeluxe.m_BloomIntensities[i], 0.0f, 5.0f); + bloomDeluxe.m_BloomColors[i] = EditorGUILayout.ColorField(" Layer " + idx + " Tint", bloomDeluxe.m_BloomColors[i]); + GUILayout.EndVertical(); + } + } + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // Intensity Management + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowIntensity = UBHelper.GroupHeader("Intensity Settings", bloomDeluxe.m_UiShowIntensity); + if (bloomDeluxe.m_UiShowIntensity) + { + UltimateBloom.BloomIntensityManagement lastIm = bloomDeluxe.m_IntensityManagement; + bloomDeluxe.m_IntensityManagement = (UltimateBloom.BloomIntensityManagement)EditorGUILayout.EnumPopup("Intensity Function", bloomDeluxe.m_IntensityManagement); + if (bloomDeluxe.m_IntensityManagement == UltimateBloom.BloomIntensityManagement.Threshold) + { + bloomDeluxe.m_BloomThreshhold = DoSlider(" Threshold", bloomDeluxe.m_BloomThreshhold, 0.0f, 5.0f); + } + else if (bloomDeluxe.m_IntensityManagement == UltimateBloom.BloomIntensityManagement.FilmicCurve) + { + bloomDeluxe.m_BloomCurve.OnGUI(); + } + if (lastIm != bloomDeluxe.m_IntensityManagement) + bloomDeluxe.ForceShadersReload(); + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // Sampling + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowSampling = UBHelper.GroupHeader("Sampling", bloomDeluxe.m_UiShowSampling); + if (bloomDeluxe.m_UiShowSampling) + { + bloomDeluxe.m_TemporalStableDownsampling = EditorGUILayout.Toggle("Temporal Stability Filter", bloomDeluxe.m_TemporalStableDownsampling); + bloomDeluxe.m_SamplingMode = (UltimateBloom.SamplingMode)EditorGUILayout.EnumPopup("Sampling Mode", bloomDeluxe.m_SamplingMode); + if (bloomDeluxe.m_SamplingMode == UltimateBloom.SamplingMode.Fixed) + bloomDeluxe.m_UpsamplingQuality = (UltimateBloom.BloomSamplingQuality)EditorGUILayout.EnumPopup("Sampling Kernel Size", bloomDeluxe.m_UpsamplingQuality); + else // Screen relative sampling + { + bloomDeluxe.m_SamplingMinHeight = DoSlider("Min Height", bloomDeluxe.m_SamplingMinHeight, 300.0f, 1000.0f); + + if (GUILayout.Button((bloomDeluxe.m_UiShowHeightSampling ? "Hide Sampling Heights" : "Show Sampling Heights"))) + bloomDeluxe.m_UiShowHeightSampling = !bloomDeluxe.m_UiShowHeightSampling; + + if (bloomDeluxe.m_UiShowHeightSampling) + { + bloomDeluxe.ComputeResolutionRelativeData(); + for (int i = 0; i < bloomDeluxe.m_ResSamplingPixelCount.Length; ++i) + { + GUILayout.Label("Sampling Height[" + i + "] = " + bloomDeluxe.m_ResSamplingPixelCount[i]); + } + } + } + + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // Optimizations + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowOptimizations = UBHelper.GroupHeader("Optimizations", bloomDeluxe.m_UiShowOptimizations); + if (bloomDeluxe.m_UiShowOptimizations) + { + bloomDeluxe.m_DirectDownSample = EditorGUILayout.Toggle("Direct Downsampling", bloomDeluxe.m_DirectDownSample); + if (bloomDeluxe.m_DirectDownSample) + EditorGUILayout.HelpBox("Enabling direct downsampling may introduce jittering. It should only be enabled on low end hardwares.", MessageType.Info); + bloomDeluxe.m_DirectUpsample = EditorGUILayout.Toggle("Direct Upsampling", bloomDeluxe.m_DirectUpsample); + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // LENS DUST + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowLensDirt = UBHelper.GroupHeader("Lens Dirt", bloomDeluxe.m_UiShowLensDirt); + if (bloomDeluxe.m_UiShowLensDirt) + { + bool lastUseLensDust = bloomDeluxe.m_UseLensDust; + bloomDeluxe.m_UseLensDust = EditorGUILayout.Toggle("Use Lens Dirt", bloomDeluxe.m_UseLensDust); + if (bloomDeluxe.m_UseLensDust) + { + bloomDeluxe.m_DustTexture = (Texture2D)EditorGUILayout.ObjectField(" Dirt Texture", bloomDeluxe.m_DustTexture, typeof(Texture2D), false); + bloomDeluxe.m_DustIntensity = DoSlider(" Dirtiness", bloomDeluxe.m_DustIntensity, 0.0f, 10.0f); + bloomDeluxe.m_DirtLightIntensity = DoSlider(" Dirt Light Intensity", bloomDeluxe.m_DirtLightIntensity, 0.0f, 30.0f); + } + if (lastUseLensDust != bloomDeluxe.m_UseLensDust) + bloomDeluxe.ForceShadersReload(); + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // LENS FLARE + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowLensFlare = UBHelper.GroupHeader("Lens Flare (Bokeh & Ghost)", bloomDeluxe.m_UiShowLensFlare); + if (bloomDeluxe.m_UiShowLensFlare) + { + bool lastUseLensFlare = bloomDeluxe.m_UseLensFlare; + bloomDeluxe.m_UseLensFlare = EditorGUILayout.Toggle("Use Lens Flare", bloomDeluxe.m_UseLensFlare); + if (bloomDeluxe.m_UseLensFlare) + { + UltimateBloom.FlarePresets preset = (UltimateBloom.FlarePresets)EditorGUILayout.EnumPopup("Flare Preset", UltimateBloom.FlarePresets.ChoosePreset); + SetFlarePreset(preset, bloomDeluxe); + + bloomDeluxe.m_FlareRendering = (UltimateBloom.FlareRendering)EditorGUILayout.EnumPopup(" Flare Rendering", bloomDeluxe.m_FlareRendering); + if (bloomDeluxe.m_FlareRendering != UltimateBloom.FlareRendering.Sharp) + { + bloomDeluxe.m_FlareBlurQuality = (UltimateBloom.FlareBlurQuality)EditorGUILayout.EnumPopup(" Blur Quality", bloomDeluxe.m_FlareBlurQuality); + } + + UltimateBloom.FlareType lastFareType = bloomDeluxe.m_FlareType; + bloomDeluxe.m_FlareType = (UltimateBloom.FlareType)EditorGUILayout.EnumPopup(" Flare Duplication", bloomDeluxe.m_FlareType); + if (lastFareType != bloomDeluxe.m_FlareType) + bloomDeluxe.ForceShadersReload(); + + bloomDeluxe.m_FlareIntensity = DoSlider(" Flare Intensity", bloomDeluxe.m_FlareIntensity, 0.0f, 30.0f); + bloomDeluxe.m_FlareTreshold = DoSlider(" Threshold", bloomDeluxe.m_FlareTreshold, 0.0f, 5.0f); + bloomDeluxe.m_FlareGlobalScale = DoSlider(" Global Scale", bloomDeluxe.m_FlareGlobalScale, 0.1f, 5.0f); + bloomDeluxe.m_FlareScales = EditorGUILayout.Vector4Field(" Flare Scales Far", bloomDeluxe.m_FlareScales); + if (bloomDeluxe.m_FlareType == UltimateBloom.FlareType.Double) + bloomDeluxe.m_FlareScalesNear = EditorGUILayout.Vector4Field(" Flare Scales Near", bloomDeluxe.m_FlareScalesNear); + Vector4 tmp = bloomDeluxe.m_FlareScales; + float maxFlareScale = 12.0f; + bloomDeluxe.m_FlareScales = new Vector4(Mathf.Clamp(tmp.x, 0, maxFlareScale), Mathf.Clamp(tmp.y, 0, maxFlareScale), Mathf.Clamp(tmp.z, 0, maxFlareScale), Mathf.Clamp(tmp.w, 0, maxFlareScale)); + + tmp = bloomDeluxe.m_FlareScalesNear; + bloomDeluxe.m_FlareScalesNear = new Vector4(Mathf.Clamp(tmp.x, 0, maxFlareScale), Mathf.Clamp(tmp.y, 0, maxFlareScale), Mathf.Clamp(tmp.z, 0, maxFlareScale), Mathf.Clamp(tmp.w, 0, maxFlareScale)); + + bloomDeluxe.m_FlareTint0 = EditorGUILayout.ColorField(" Flare Tint 0", bloomDeluxe.m_FlareTint0); + bloomDeluxe.m_FlareTint1 = EditorGUILayout.ColorField(" Flare Tint 1", bloomDeluxe.m_FlareTint1); + bloomDeluxe.m_FlareTint2 = EditorGUILayout.ColorField(" Flare Tint 2", bloomDeluxe.m_FlareTint2); + bloomDeluxe.m_FlareTint3 = EditorGUILayout.ColorField(" Flare Tint 3", bloomDeluxe.m_FlareTint3); + + if (bloomDeluxe.m_FlareType == UltimateBloom.FlareType.Double) + { + bloomDeluxe.m_FlareTint4 = EditorGUILayout.ColorField(" Flare Tint 4", bloomDeluxe.m_FlareTint4); + bloomDeluxe.m_FlareTint5 = EditorGUILayout.ColorField(" Flare Tint 5", bloomDeluxe.m_FlareTint5); + bloomDeluxe.m_FlareTint6 = EditorGUILayout.ColorField(" Flare Tint 6", bloomDeluxe.m_FlareTint6); + bloomDeluxe.m_FlareTint7 = EditorGUILayout.ColorField(" Flare Tint 7", bloomDeluxe.m_FlareTint7); + } + + bloomDeluxe.m_FlareMask = (Texture2D)EditorGUILayout.ObjectField(" Flare Mask", bloomDeluxe.m_FlareMask, typeof(Texture2D), false); + + bloomDeluxe.m_UseBokehFlare = EditorGUILayout.Toggle("Use Bokeh Texture", bloomDeluxe.m_UseBokehFlare); + if (bloomDeluxe.m_UseBokehFlare) + { + bloomDeluxe.m_BokehFlareQuality = (UltimateBloom.BokehFlareQuality)EditorGUILayout.EnumPopup(" Bokeh Quality", bloomDeluxe.m_BokehFlareQuality); + + bloomDeluxe.m_BokehScale = Mathf.Clamp(EditorGUILayout.FloatField(" Bokeh Scale", bloomDeluxe.m_BokehScale), 0.2f, 2.5f); + bloomDeluxe.m_FlareShape = (Texture2D)EditorGUILayout.ObjectField(" Bokeh Texture", bloomDeluxe.m_FlareShape, typeof(Texture2D), false); + } + } + if (lastUseLensFlare != bloomDeluxe.m_UseLensFlare) + bloomDeluxe.ForceShadersReload(); + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // Anamorphic lens flare + + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowAnamorphic = UBHelper.GroupHeader("Anamorphic Lens Flare", bloomDeluxe.m_UiShowAnamorphic); + if (bloomDeluxe.m_UiShowAnamorphic) + { + bool lastUseAnamorphic = bloomDeluxe.m_UseAnamorphicFlare; + bloomDeluxe.m_UseAnamorphicFlare = EditorGUILayout.Toggle("Use Anamorphic Lens Flare", bloomDeluxe.m_UseAnamorphicFlare); + if (bloomDeluxe.m_UseAnamorphicFlare) + { + bloomDeluxe.m_AnamorphicDownscaleCount = Mathf.Clamp(EditorGUILayout.IntField(" Layers (Downscale Count)", bloomDeluxe.m_AnamorphicDownscaleCount), 1, 6); + bloomDeluxe.m_AnamorphicFlareIntensity = DoSlider(" Intensity", bloomDeluxe.m_AnamorphicFlareIntensity, 0.0f, 5.0f); + //bloomDeluxe.m_AnamorphicFlareTreshold = DoSlider(" Treshold", bloomDeluxe.m_AnamorphicFlareTreshold, 0.0f, 5.0f); + bloomDeluxe.m_AnamorphicScale = DoSlider(" Scale", bloomDeluxe.m_AnamorphicScale, 0.0f, 6.0f); + bloomDeluxe.m_AnamorphicBlurPass = Mathf.Clamp(EditorGUILayout.IntField(" Blur Pass", bloomDeluxe.m_AnamorphicBlurPass), 1, 6); + bloomDeluxe.m_AnamorphicSmallVerticalBlur = EditorGUILayout.Toggle(" Anti-jitter Pass", bloomDeluxe.m_AnamorphicSmallVerticalBlur); + bloomDeluxe.m_AnamorphicDirection = (UltimateBloom.AnamorphicDirection)EditorGUILayout.EnumPopup(" Direction", bloomDeluxe.m_AnamorphicDirection); + } + if (lastUseAnamorphic != bloomDeluxe.m_UseAnamorphicFlare) + bloomDeluxe.ForceShadersReload(); + + if (bloomDeluxe.m_UseAnamorphicFlare) + { + if (GUILayout.Button((bloomDeluxe.m_UiShowAnamorphicBloomScales ? "Hide Layers" : "Show Layers") + "[" + bloomDeluxe.m_AnamorphicDownscaleCount + "]")) + bloomDeluxe.m_UiShowAnamorphicBloomScales = !bloomDeluxe.m_UiShowAnamorphicBloomScales; + if (bloomDeluxe.m_UiShowAnamorphicBloomScales) + { + for (int i = 0; i < bloomDeluxe.m_AnamorphicDownscaleCount; ++i) + { + GUILayout.BeginVertical(i % 2 == 0 ? m_Background3 : m_Background1); + int idx = i + 1; + bloomDeluxe.m_AnamorphicBloomUsages[i] = EditorGUILayout.Toggle(" Layer " + idx + " Enabled", bloomDeluxe.m_AnamorphicBloomUsages[i]); + bloomDeluxe.m_AnamorphicBloomIntensities[i] = DoSlider(" Layer " + idx + " Intensity", bloomDeluxe.m_AnamorphicBloomIntensities[i], 0.0f, 5.0f); + bloomDeluxe.m_AnamorphicBloomColors[i] = EditorGUILayout.ColorField(" Layer " + idx + " Tint", bloomDeluxe.m_AnamorphicBloomColors[i]); + GUILayout.EndVertical(); + } + } + } + + GUILayout.Space(10.0f); + } + GUILayout.EndVertical(); + + // Star lens flare + + GUILayout.BeginVertical("Box"); + bloomDeluxe.m_UiShowStar = UBHelper.GroupHeader("Star Lens Flare", bloomDeluxe.m_UiShowStar); + if (bloomDeluxe.m_UiShowStar) + { + bool lastUseStar = bloomDeluxe.m_UseStarFlare; + bloomDeluxe.m_UseStarFlare = EditorGUILayout.Toggle("Use Star Lens Flare", bloomDeluxe.m_UseStarFlare); + if (bloomDeluxe.m_UseStarFlare) + { + bloomDeluxe.m_StarDownscaleCount = Mathf.Clamp(EditorGUILayout.IntField(" Layers (Downscale Count)", bloomDeluxe.m_StarDownscaleCount), 1, 6); + bloomDeluxe.m_StarFlareIntensity = DoSlider(" Intensity", bloomDeluxe.m_StarFlareIntensity, 0.0f, 5.0f); + //bloomDeluxe.m_StarFlareTreshol = DoSlider(" Treshold", bloomDeluxe.m_StarFlareTreshol, 0.0f, 5.0f); + bloomDeluxe.m_StarScale = DoSlider(" Scale", bloomDeluxe.m_StarScale, 0.0f, 5.0f); + bloomDeluxe.m_StarBlurPass = Mathf.Clamp(EditorGUILayout.IntField(" Blur Pass", bloomDeluxe.m_StarBlurPass), 1, 4); + } + if (lastUseStar != bloomDeluxe.m_UseStarFlare) + bloomDeluxe.ForceShadersReload(); + + if (bloomDeluxe.m_UseStarFlare) + { + if (GUILayout.Button((bloomDeluxe.m_UiShowStarBloomScales ? "Hide Layers" : "Show Layers") + "[" + bloomDeluxe.m_StarDownscaleCount + "]")) + bloomDeluxe.m_UiShowStarBloomScales = !bloomDeluxe.m_UiShowStarBloomScales; + if (bloomDeluxe.m_UiShowStarBloomScales) + { + for (int i = 0; i < bloomDeluxe.m_StarDownscaleCount; ++i) + { + GUILayout.BeginVertical(i % 2 == 0 ? m_Background3 : m_Background1); + int idx = i + 1; + bloomDeluxe.m_StarBloomUsages[i] = EditorGUILayout.Toggle(" Layer " + idx + " Enabled", bloomDeluxe.m_StarBloomUsages[i]); + bloomDeluxe.m_StarBloomIntensities[i] = DoSlider(" Layer " + idx + " Intensity", bloomDeluxe.m_StarBloomIntensities[i], 0.0f, 5.0f); + bloomDeluxe.m_StarBloomColors[i] = EditorGUILayout.ColorField(" Layer " + idx + " Tint", bloomDeluxe.m_StarBloomColors[i]); + GUILayout.EndVertical(); + } + } + } + } + GUILayout.EndVertical(); + + if (GUI.changed) + { + EditorUtility.SetDirty(target); + } + } + + + [MenuItem("Component/UltimateBloom/Add to selected camera")] + public static void AddPreset() + { + UltimateBloom ub = GetUltimateBloomObject(); + if (ub == null) + return; + + + } + + private static UltimateBloom GetUltimateBloomObject() + { + GameObject obj = Selection.activeGameObject; + if (obj == null) + return null; + if (obj.GetComponent() == null) + return null; + + return obj.AddComponent(); + } + + float DoSlider(string label, float value, float min, float max) + { + float v = value; + EditorGUILayout.BeginHorizontal(); + v = Mathf.Clamp(EditorGUILayout.FloatField(label, v, GUILayout.ExpandWidth(false)), min, max); + v = GUILayout.HorizontalSlider(v, min, max); + EditorGUILayout.EndHorizontal(); + + return v; + } + + void SetFlarePreset(UltimateBloom.FlarePresets preset, UltimateBloom ub) + { + if (preset == UltimateBloom.FlarePresets.ChoosePreset) + return; + + if (preset == UltimateBloom.FlarePresets.Bokeh2 || preset == UltimateBloom.FlarePresets.Ghost2) + { + ub.m_FlareTint0 = new Color(78 / 255.0f, 69 / 255.0f, 149.0f / 255.0f); + ub.m_FlareTint1 = new Color(36 / 255.0f, 51 / 255.0f, 141 / 255.0f); + ub.m_FlareTint2 = new Color(29 / 255.0f, 41 / 255.0f, 105 / 255.0f); + ub.m_FlareTint3 = new Color(17 / 255.0f, 22 / 255.0f, 107 / 255.0f); + ub.m_FlareTint4 = new Color(78 / 255.0f, 69 / 255.0f, 149.0f / 255.0f); + ub.m_FlareTint5 = new Color(36 / 255.0f, 51 / 255.0f, 141 / 255.0f); + ub.m_FlareTint6 = new Color(29 / 255.0f, 41 / 255.0f, 105 / 255.0f); + ub.m_FlareTint7 = new Color(17 / 255.0f, 22 / 255.0f, 107 / 255.0f); + } + else if (preset == UltimateBloom.FlarePresets.Bokeh3 || preset == UltimateBloom.FlarePresets.Ghost3) + { + ub.m_FlareTint0 = new Color(255 / 255.0f, 135 / 255.0f, 2/ 255.0f); + ub.m_FlareTint1 = new Color(255 / 255.0f, 96 / 255.0f, 1 / 255.0f); + ub.m_FlareTint2 = new Color(255 / 255.0f, 60 / 255.0f, 1 / 255.0f); + ub.m_FlareTint3 = new Color(255 / 255.0f, 12 / 255.0f, 0 / 255.0f); + ub.m_FlareTint4 = new Color(255 / 255.0f, 184 / 255.0f, 3 / 255.0f); + ub.m_FlareTint5 = new Color(255 / 255.0f, 135 / 255.0f, 2 / 255.0f); + ub.m_FlareTint6 = new Color(255 / 255.0f, 135 / 255.0f, 2 / 255.0f); + ub.m_FlareTint7 = new Color(255 / 255.0f, 96 / 255.0f, 0 / 255.0f); + } + else + { + ub.m_FlareTint0 = new Color(137 / 255.0f, 82 / 255.0f, 0 / 255.0f); + ub.m_FlareTint1 = new Color(0 / 255.0f, 63 / 255.0f, 126 / 255.0f); + ub.m_FlareTint2 = new Color(72 / 255.0f, 151 / 255.0f, 0 / 255.0f); + ub.m_FlareTint3 = new Color(114 / 255.0f, 35 / 255.0f, 0 / 255.0f); + ub.m_FlareTint4 = new Color(122 / 255.0f, 88 / 255.0f, 0 / 255.0f); + ub.m_FlareTint5 = new Color(137 / 255.0f, 71 / 255.0f, 0 / 255.0f); + ub.m_FlareTint6 = new Color(97 / 255.0f, 139 / 255.0f, 0 / 255.0f); + ub.m_FlareTint7 = new Color(40 / 255.0f, 142 / 255.0f, 0 / 255.0f); + } + + ub.m_FlareIntensity = 1.0f; + ub.m_FlareTreshold = 0.8f; + + if (preset == UltimateBloom.FlarePresets.Bokeh1 || preset == UltimateBloom.FlarePresets.Bokeh2 || preset == UltimateBloom.FlarePresets.Bokeh3) + { + ub.m_FlareScales = new Vector4(5.77f, 2.5f, 1.32f, 1.12f); + ub.m_FlareScalesNear = new Vector4(12, 7.37f, 5.3f, 4.14f); + ub.m_FlareRendering = UltimateBloom.FlareRendering.Sharp; + ub.m_UseBokehFlare = true; + + } + else + { + ub.m_FlareScales = new Vector4(1.0f, 0.6f, 0.5f, 0.4f); + ub.m_FlareScalesNear = new Vector4(1.0f, 0.8f, 0.6f, 0.5f); + ub.m_FlareBlurQuality = UltimateBloom.FlareBlurQuality.High; + ub.m_FlareRendering = UltimateBloom.FlareRendering.Blurred; + ub.m_UseBokehFlare = false; + + + if (preset == UltimateBloom.FlarePresets.GhostFast) + ub.m_FlareBlurQuality = UltimateBloom.FlareBlurQuality.Fast; + } + + } + + void ChangeQualityPreset(UltimateBloom.BloomQualityPreset newPreset) + { + + } +} diff --git a/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs.meta b/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs.meta new file mode 100644 index 0000000..f7aca00 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Editor/UltimateBloomEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 285efee97a9b0b742b510e3de78b0b38 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics.meta b/Assets/Cinematic Effects/BloomBeta/Graphics.meta new file mode 100644 index 0000000..e0a7ec7 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7ffc125439b8b7b40bca3705f9e0a6eb +folderAsset: yes +timeCreated: 1443580217 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png new file mode 100644 index 0000000..31f7f52 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png.meta b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png.meta new file mode 100644 index 0000000..0eae706 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokeh.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: c689cb7ab25ee59439a73274bbcda927 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png b/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png new file mode 100644 index 0000000..8baa4ff Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png.meta b/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png.meta new file mode 100644 index 0000000..c5d6603 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/BokehRound.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: d27d217d25bb6e44ca371090b6169245 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png new file mode 100644 index 0000000..da03c38 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png.meta b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png.meta new file mode 100644 index 0000000..7364fc5 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/Bokehround2.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: 58c6d4ee6f7515d428df6d3f41dd1c26 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png new file mode 100644 index 0000000..3048937 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png.meta b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png.meta new file mode 100644 index 0000000..2671776 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMask.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: 9caff1227d841d143862adba1dc06356 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat new file mode 100644 index 0000000..3914c0d --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: FlareMaterial + m_Shader: {fileID: 4800000, guid: abe4898237b1d4d49b8a3ebc0f5b4d49, type: 3} + m_ShaderKeywords: [] + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 14a3e99f4d475b64990c89f22f1e307a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BrightTexture + second: + m_Texture: {fileID: 2800000, guid: 14a3e99f4d475b64990c89f22f1e307a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: {} + m_Colors: + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat.meta b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat.meta new file mode 100644 index 0000000..d3efd70 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Graphics/FlareMaterial.mat.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: bc4691e301d4e4445bbd1df0a85d4006 +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator.meta b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator.meta new file mode 100644 index 0000000..295f58a --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aa977a839fe077f44856ab4ab60094eb +folderAsset: yes +timeCreated: 1443580217 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png new file mode 100644 index 0000000..9a074e3 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png.meta b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png.meta new file mode 100644 index 0000000..b13e005 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehAlpha.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: bbf784a872adaba4884518c6f1d12f4a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png new file mode 100644 index 0000000..0bad1e3 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png.meta b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png.meta new file mode 100644 index 0000000..7c9e28f --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha1.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: 92a2f93cd546f41428182e2dbb8b2715 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png new file mode 100644 index 0000000..514c614 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png differ diff --git a/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png.meta b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png.meta new file mode 100644 index 0000000..185d4f9 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/ImgForDirtGenerator/BokehRoundAlpha2.png.meta @@ -0,0 +1,53 @@ +fileFormatVersion: 2 +guid: dd74936895f016b4b9563ce1e1593f38 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources.meta b/Assets/Cinematic Effects/BloomBeta/Resources.meta new file mode 100644 index 0000000..7841185 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 56ee327717a93674a9cba1b3d60ec916 +folderAsset: yes +timeCreated: 1443580217 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip b/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip new file mode 100644 index 0000000..44d0316 Binary files /dev/null and b/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip differ diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip.meta b/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip.meta new file mode 100644 index 0000000..41d5f9f --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/ShadersSimplified.zip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4790c2802bfcf4b4eb367eec50a925ed +timeCreated: 1456313800 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader new file mode 100644 index 0000000..7a39352 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader @@ -0,0 +1,59 @@ +Shader "Hidden/Ultimate/BokehMisc" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass // #0 Chromatic Aberration + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + half _ChromaticAberration; + + half4 frag(v2f i) : COLOR + { + half2 coords = i.uv; + half2 uv = i.uv; + + coords = (coords - 0.5) * 2.0; + half coordDot = dot (coords,coords); + + half2 uvG = uv - _MainTex_TexelSize.xy * _ChromaticAberration * coords * coordDot; + half4 color = tex2D (_MainTex, uv); + #if SHADER_API_D3D9 + // Work around Cg's code generation bug for D3D9 pixel shaders :( + color.g = color.g * 0.0001 + tex2D (_MainTex, uvG).g; + #else + color.g = tex2D (_MainTex, uvG).g; + #endif + + return color; + } + + ENDCG + } + + + + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader.meta new file mode 100644 index 0000000..fa19fe5 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomBokehMisc.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 25b151c9a48c18747a9c043a91bedc31 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader new file mode 100644 index 0000000..c03d3dc --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader @@ -0,0 +1,337 @@ +Shader "Hidden/Ultimate/BloomCombine" { + Properties { + _MainTex ("Base (RGB)", 2D) = "black" {} + _FlareTexture ("Flare (RGB)", 2D) = "black" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +// Curve mapping +half4 _Toe; +half4 _Shoulder; +half _K; +half _Crossover; +float Map(half x) +{ + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; +} + + +sampler2D _MainTex; +sampler2D _FlareTexture; +sampler2D _ColorBuffer; +sampler2D _AdditiveTexture; +sampler2D _brightTexture; +half _Intensity; +half _FlareIntensity; +half _DirtIntensity; +half _DirtLightIntensity; +half _ScreenMaxIntensity; + + +inline float ComputeLuma( float3 c ) +{ + return dot( c, fixed3(0.299, 0.587, 0.114) ); +} + + +fixed4 frag(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + + half4 bloom = addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + half intensity = dot(screencolor, half3(0.3,0.3,0.3)); + + float colLuma = ComputeLuma(x); + + //colLuma *= _uTAA_Exposure; + half bloomIntensity = x/max(1.0+colLuma,0.001); + + //half bloomIntensity = Map(intensity); + bloom *= screencolor * bloomIntensity/intensity*2000; +#endif + +#ifdef ULTIMATE_USE_FLARE + bloom += tex2D(_FlareTexture, i.uv); /* _FlareIntensity;*/ +#endif + + bloom *= _Intensity; + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); + +#endif + + + + + return bloom + screencolor; + + +} + +fixed4 fragINV(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + + half4 bloom = _Intensity * addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + bloom.x = Map(bloom.x); + bloom.y = Map(bloom.y); + bloom.z = Map(bloom.z); +#endif + +#ifdef ULTIMATE_USE_FLARE + + bloom += tex2D(_FlareTexture, i.uv); + + /*half3 flare = tex2D(_FlareTexture, i.uv).rgb * 40; + half3 flareIntensity = dot(half3(0.3,0.3,0.3),flare); + half flareFactor = saturate(flareIntensity ); + bloom.xyz = lerp(bloom.xyz, flare, flareFactor);*/ + + //bloom += tex2D(_FlareTexture, i.uv) * 5; +#endif + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); +#endif + + return bloom + screencolor; + +} + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +// Curve mapping +half4 _Toe; +half4 _Shoulder; +half _K; +half _Crossover; +float Map(half x) +{ + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; +} + + +sampler2D _MainTex; +sampler2D _FlareTexture; +sampler2D _ColorBuffer; +sampler2D _AdditiveTexture; +sampler2D _brightTexture; +half _Intensity; +half _FlareIntensity; +half _DirtIntensity; +half _DirtLightIntensity; +half _ScreenMaxIntensity; + + +inline float ComputeLuma( float3 c ) +{ + return dot( c, fixed3(0.299, 0.587, 0.114) ); +} + + +fixed4 frag(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + + half4 bloom = addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + half intensity = dot(screencolor, half3(0.3,0.3,0.3)); + + float colLuma = ComputeLuma(x); + + //colLuma *= _uTAA_Exposure; + half bloomIntensity = x/max(1.0+colLuma,0.001); + + //half bloomIntensity = Map(intensity); + bloom *= screencolor * bloomIntensity/intensity*2000; +#endif + +#ifdef ULTIMATE_USE_FLARE + bloom += tex2D(_FlareTexture, i.uv); /* _FlareIntensity;*/ +#endif + + bloom *= _Intensity; + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); + +#endif + + + + + return bloom + screencolor; + + +} + +fixed4 fragINV(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + + half4 bloom = _Intensity * addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + bloom.x = Map(bloom.x); + bloom.y = Map(bloom.y); + bloom.z = Map(bloom.z); +#endif + +#ifdef ULTIMATE_USE_FLARE + + bloom += tex2D(_FlareTexture, i.uv); + + /*half3 flare = tex2D(_FlareTexture, i.uv).rgb * 40; + half3 flareIntensity = dot(half3(0.3,0.3,0.3),flare); + half flareFactor = saturate(flareIntensity ); + bloom.xyz = lerp(bloom.xyz, flare, flareFactor);*/ + + //bloom += tex2D(_FlareTexture, i.uv) * 5; +#endif + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); +#endif + + return bloom + screencolor; + +} + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment fragINV + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader.meta new file mode 100644 index 0000000..e4b0da4 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombine.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 481edcf7070d4ba49a3e69a7161224a5 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc new file mode 100644 index 0000000..9d23080 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc @@ -0,0 +1,147 @@ + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +// Curve mapping +half4 _Toe; +half4 _Shoulder; +half _K; +half _Crossover; +float Map(half x) +{ + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; +} + + +sampler2D _MainTex; +sampler2D _FlareTexture; +sampler2D _ColorBuffer; +sampler2D _AdditiveTexture; +sampler2D _brightTexture; +half _Intensity; +half _FlareIntensity; +half _DirtIntensity; +half _DirtLightIntensity; +half _ScreenMaxIntensity; + + +inline float ComputeLuma( float3 c ) +{ + return dot( c, fixed3(0.299, 0.587, 0.114) ); +} + + +fixed4 frag(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + + half4 bloom = addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + half intensity = dot(screencolor, half3(0.3,0.3,0.3)); + + float colLuma = ComputeLuma(x); + + //colLuma *= _uTAA_Exposure; + half bloomIntensity = x/max(1.0+colLuma,0.001); + + //half bloomIntensity = Map(intensity); + bloom *= screencolor * bloomIntensity/intensity*2000; +#endif + +#ifdef ULTIMATE_USE_FLARE + bloom += tex2D(_FlareTexture, i.uv); /* _FlareIntensity;*/ +#endif + + bloom *= _Intensity; + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); + +#endif + + + + + return bloom + screencolor; + + +} + +fixed4 fragINV(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + + half4 bloom = _Intensity * addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + bloom.x = Map(bloom.x); + bloom.y = Map(bloom.y); + bloom.z = Map(bloom.z); +#endif + +#ifdef ULTIMATE_USE_FLARE + + bloom += tex2D(_FlareTexture, i.uv); + + /*half3 flare = tex2D(_FlareTexture, i.uv).rgb * 40; + half3 flareIntensity = dot(half3(0.3,0.3,0.3),flare); + half flareFactor = saturate(flareIntensity ); + bloom.xyz = lerp(bloom.xyz, flare, flareFactor);*/ + + //bloom += tex2D(_FlareTexture, i.uv) * 5; +#endif + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); +#endif + + return bloom + screencolor; + +} + diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc.meta new file mode 100644 index 0000000..d4c6305 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineCore.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8630408eab779e24fb43f1ede27bbcf2 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader new file mode 100644 index 0000000..238aa88 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader @@ -0,0 +1,342 @@ +Shader "Hidden/Ultimate/BloomCombineFlareDirt" { + Properties { + _MainTex ("Base (RGB)", 2D) = "black" {} + _FlareTexture ("Flare (RGB)", 2D) = "black" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #define ULTIMATE_USE_FLARE + #define ULTIMATE_USE_DIRT + + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +// Curve mapping +half4 _Toe; +half4 _Shoulder; +half _K; +half _Crossover; +float Map(half x) +{ + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; +} + + +sampler2D _MainTex; +sampler2D _FlareTexture; +sampler2D _ColorBuffer; +sampler2D _AdditiveTexture; +sampler2D _brightTexture; +half _Intensity; +half _FlareIntensity; +half _DirtIntensity; +half _DirtLightIntensity; +half _ScreenMaxIntensity; + + +inline float ComputeLuma( float3 c ) +{ + return dot( c, fixed3(0.299, 0.587, 0.114) ); +} + + +fixed4 frag(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + + half4 bloom = addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + half intensity = dot(screencolor, half3(0.3,0.3,0.3)); + + float colLuma = ComputeLuma(x); + + //colLuma *= _uTAA_Exposure; + half bloomIntensity = x/max(1.0+colLuma,0.001); + + //half bloomIntensity = Map(intensity); + bloom *= screencolor * bloomIntensity/intensity*2000; +#endif + +#ifdef ULTIMATE_USE_FLARE + bloom += tex2D(_FlareTexture, i.uv); /* _FlareIntensity;*/ +#endif + + bloom *= _Intensity; + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); + +#endif + + + + + return bloom + screencolor; + + +} + +fixed4 fragINV(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + + half4 bloom = _Intensity * addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + bloom.x = Map(bloom.x); + bloom.y = Map(bloom.y); + bloom.z = Map(bloom.z); +#endif + +#ifdef ULTIMATE_USE_FLARE + + bloom += tex2D(_FlareTexture, i.uv); + + /*half3 flare = tex2D(_FlareTexture, i.uv).rgb * 40; + half3 flareIntensity = dot(half3(0.3,0.3,0.3),flare); + half flareFactor = saturate(flareIntensity ); + bloom.xyz = lerp(bloom.xyz, flare, flareFactor);*/ + + //bloom += tex2D(_FlareTexture, i.uv) * 5; +#endif + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); +#endif + + return bloom + screencolor; + +} + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #define ULTIMATE_USE_FLARE + #define ULTIMATE_USE_DIRT + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +// Curve mapping +half4 _Toe; +half4 _Shoulder; +half _K; +half _Crossover; +float Map(half x) +{ + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; +} + + +sampler2D _MainTex; +sampler2D _FlareTexture; +sampler2D _ColorBuffer; +sampler2D _AdditiveTexture; +sampler2D _brightTexture; +half _Intensity; +half _FlareIntensity; +half _DirtIntensity; +half _DirtLightIntensity; +half _ScreenMaxIntensity; + + +inline float ComputeLuma( float3 c ) +{ + return dot( c, fixed3(0.299, 0.587, 0.114) ); +} + + +fixed4 frag(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + + half4 bloom = addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + half intensity = dot(screencolor, half3(0.3,0.3,0.3)); + + float colLuma = ComputeLuma(x); + + //colLuma *= _uTAA_Exposure; + half bloomIntensity = x/max(1.0+colLuma,0.001); + + //half bloomIntensity = Map(intensity); + bloom *= screencolor * bloomIntensity/intensity*2000; +#endif + +#ifdef ULTIMATE_USE_FLARE + bloom += tex2D(_FlareTexture, i.uv); /* _FlareIntensity;*/ +#endif + + bloom *= _Intensity; + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); + +#endif + + + + + return bloom + screencolor; + + +} + +fixed4 fragINV(v2f i):COLOR +{ + half4 addedbloom = tex2D(_MainTex, i.uv); + + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + + half4 bloom = _Intensity * addedbloom; + +#ifdef ULTIMATE_BLOOM_CURVE + bloom.x = Map(bloom.x); + bloom.y = Map(bloom.y); + bloom.z = Map(bloom.z); +#endif + +#ifdef ULTIMATE_USE_FLARE + + bloom += tex2D(_FlareTexture, i.uv); + + /*half3 flare = tex2D(_FlareTexture, i.uv).rgb * 40; + half3 flareIntensity = dot(half3(0.3,0.3,0.3),flare); + half flareFactor = saturate(flareIntensity ); + bloom.xyz = lerp(bloom.xyz, flare, flareFactor);*/ + + //bloom += tex2D(_FlareTexture, i.uv) * 5; +#endif + +#ifdef ULTIMATE_USE_DIRT + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb; + + float dirtIntensity = dot(dirt.xyz, half3(0.3,0.3,0.3)); + float bloomIntensity = dot(bloom.xyz, half3(0.3,0.3,0.3)); + float factor = saturate(bloomIntensity * dirtIntensity * _DirtIntensity); + + bloom.xyz *= (dirt*_DirtIntensity + _DirtLightIntensity*0.2); +#endif + + return bloom + screencolor; + +} + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment fragINV + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader.meta new file mode 100644 index 0000000..a407f94 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomCombineFlareDirt.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0ecc1337a36c4f48871c943fddaed12 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader new file mode 100644 index 0000000..e8d87a3 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader @@ -0,0 +1,108 @@ +Shader "Hidden/Ultimate/BloomMixer" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass // #0 Blend Add + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + + sampler2D _MainTex; + sampler2D _ColorBuffer; + half _Intensity; + + fixed4 frag(v2f i):COLOR + { + half4 addedbloom = tex2D(_MainTex, i.uv); + half4 screencolor = tex2D(_ColorBuffer, i.uv); + return _Intensity * addedbloom + screencolor; + } + + ENDCG + } + + Pass // #1 Blend With Intensity + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + + sampler2D _MainTex; + sampler2D _ColorBuffer; + half _Intensity0; + half _Intensity1; + + fixed4 frag(v2f i):COLOR + { + half4 tex0 = tex2D(_MainTex, i.uv); + half4 tex1 = tex2D(_ColorBuffer, i.uv); + return tex0 * _Intensity0 + tex1 * _Intensity1; + } + + ENDCG + } + + Pass // #2 Blit with intensity + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + + sampler2D _MainTex; + half _Intensity; + + fixed4 frag(v2f i):COLOR + { + half4 tex = tex2D(_MainTex, i.uv); + return tex * _Intensity; + } + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader.meta new file mode 100644 index 0000000..b943ae7 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomMixer.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9a9192f3e87433946bcfb49c036c997d +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader new file mode 100644 index 0000000..4841a4d --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader @@ -0,0 +1,488 @@ +Shader "Hidden/Ultimate/Bloom" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _AdditiveTexture ("Base (RGB)", 2D) = "black" {} + _OffsetInfos ("HorizontalOffset", Vector) = (0.0,0.0,0.0,0.0) + } + + CGINCLUDE + + #pragma target 3.0 + + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + struct v2f_opts + { + half4 pos : SV_POSITION; + half2 uv[7] : TEXCOORD0; + }; + + uniform half4 _MainTex_TexelSize; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + + + float4 _OffsetInfos; + sampler2D _MainTex; + half _Intensity; + sampler2D _ColorBuffer; + sampler2D _AdditiveTexture; + sampler2D _FlareTexture; + half4 _Threshhold; + + float Gaussian(float Scale, int iSamplePoint) + { + float sigma = (Scale-1.0)/5; + float g = 1.0f / sqrt(2.0f * 3.14159 * sigma * sigma); + return (g * exp(-(iSamplePoint * iSamplePoint) / (2 * sigma * sigma))); + } + + + half4 fragGaussBlurHigh (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 31; + + float2 gUV = i.uv; + float Offset = 0; + + color += Gaussian(Scale, 0.0 + Offset) * tex2D (_MainTex, gUV); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4.0); + color += Gaussian(Scale, 5.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5.0); + color += Gaussian(Scale, 5.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5.0); + color += Gaussian(Scale, 6.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6.0); + color += Gaussian(Scale, 6.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6.0); + color += Gaussian(Scale, 7.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7.0); + color += Gaussian(Scale, 7.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7.0); + color += Gaussian(Scale, 8.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8.0); + color += Gaussian(Scale, 8.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8.0); + color += Gaussian(Scale, 9.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 9.0); + color += Gaussian(Scale, 9.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 9.0); + color += Gaussian(Scale, 10.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 10.0); + color += Gaussian(Scale, 10.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 10.0); + color += Gaussian(Scale, 11.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 11.0); + color += Gaussian(Scale, 11.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 11.0); + color += Gaussian(Scale, 12.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 12.0); + color += Gaussian(Scale, 12.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 12.0); + color += Gaussian(Scale, 13.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 13.0); + color += Gaussian(Scale, 13.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 13.0); + color += Gaussian(Scale, 14.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 14.0); + color += Gaussian(Scale, 14.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 14.0); + color += Gaussian(Scale, 15.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 15.0); + color += Gaussian(Scale, 15.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 15.0); + + return color + tex2D(_AdditiveTexture, i.uv); + } + + half4 fragGaussBlurMedium (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 17; + + float2 gUV = i.uv; + float Offset = 0; + + color += Gaussian(Scale, 0.0 + Offset) * tex2D (_MainTex, gUV); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4.0); + color += Gaussian(Scale, 5.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5.0); + color += Gaussian(Scale, 5.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5.0); + color += Gaussian(Scale, 6.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6.0); + color += Gaussian(Scale, 6.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6.0); + color += Gaussian(Scale, 7.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7.0); + color += Gaussian(Scale, 7.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7.0); + color += Gaussian(Scale, 8.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8.0); + color += Gaussian(Scale, 8.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8.0); + + return color + tex2D(_AdditiveTexture, i.uv); + } + + half4 fragGaussBlurLow (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 9; + + float2 gUV = i.uv; + float Offset = 0; + + color += Gaussian(Scale, 0.0 + Offset) * tex2D (_MainTex, gUV); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 1.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 2.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 3.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4.0); + color += Gaussian(Scale, 4.0 + Offset) * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4.0); + + return color + tex2D(_AdditiveTexture, i.uv); + } + + ENDCG + + SubShader + { + Pass // #0 Simple Downscaling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + + + float2 UV[4]; + + UV[0] = i.uv + float2(-1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[1] = i.uv + float2( 1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[2] = i.uv + float2(-1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + UV[3] = i.uv + float2( 1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + + + fixed4 Sample[4]; + + for(int j = 0; j < 4; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + return (Sample[0] + Sample[1] + Sample[2] + Sample[3]) * 1.0/4; + } + + ENDCG + } + + Pass // #1 Gaussian Sampling High + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurHigh + + ENDCG + } + + Pass // #2 Gaussian Sampling Medium + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurMedium + + ENDCG + } + + Pass // #3 Gaussian Sampling Low + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurLow + + ENDCG + } + + Pass // #4 Color Brightpass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + + fixed4 frag(v2f i):COLOR + { + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + //half intensity = dot(tColor, float3(0.212671, 0.71516, 0.072169)); + half intensity = dot(tColor, half3(0.3,0.3,0.3)); + + return color * intensity; + } + + ENDCG + } + + Pass // #5 Blend Add + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + + fixed4 frag(v2f i):COLOR + { + half4 addedbloom = tex2D(_MainTex, i.uv); + half4 screencolor = tex2D(_ColorBuffer, i.uv); + return _Intensity * addedbloom + screencolor; + } + + ENDCG + } + + Pass // #6 Blend Screen + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + half4 addedbloom = tex2D(_MainTex, i.uv); + half4 screencolor = tex2D(_ColorBuffer, i.uv); + return _Intensity * addedbloom + screencolor; + } + + ENDCG + } + + Pass // #7 Add One One + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Blend One One + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + half4 addedColors = tex2D(_MainTex, i.uv.xy); + return addedColors * _Intensity; + } + + ENDCG + } + + Pass // #8 Render Flare + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + half4 _FlareScales; + half4 _FlareTint0; + half4 _FlareTint1; + half4 _FlareTint2; + half4 _FlareTint3; + + half2 cUV(half2 uv) + { + return 2.0 * uv - float2(1.0,1.0); + } + + half2 tUV(half2 uv) + { + return (uv + float2(1.0,1.0))*0.5; + } + + fixed4 frag(v2f i):COLOR + { + half scale0 = _FlareScales.x;//1.1f; + half scale1 = _FlareScales.y;//0.95f; + half scale2 = _FlareScales.z;//0.75f; + half scale3 = _FlareScales.w;//0.55f; + + half2 flareUv = cUV(float2(1.0,1.0) - i.uv); + + float4 col0 = tex2D(_MainTex, tUV(flareUv*scale0) ) * _FlareTint0; + float4 col1 = tex2D(_MainTex, tUV(flareUv*scale1) ) * _FlareTint1; + float4 col2 = tex2D(_MainTex, tUV(flareUv*scale2) ) * _FlareTint2; + float4 col3 = tex2D(_MainTex, tUV(flareUv*scale3) ) * _FlareTint3; + + // Optional..­. + flareUv = cUV(i.uv); + float4 col4 = tex2D(_MainTex, tUV(flareUv*scale0) ) * _FlareTint0; + float4 col5 = tex2D(_MainTex, tUV(flareUv*scale1) ) * _FlareTint1; + float4 col6 = tex2D(_MainTex, tUV(flareUv*scale2) ) * _FlareTint2; + float4 col7 = tex2D(_MainTex, tUV(flareUv*scale3) ) * _FlareTint3; + + return (col0 + col1 + col2 + col3 + col4 + col5 + col6 + col7) * tex2D(_FlareTexture,i.uv); + } + + ENDCG + } + + Pass // #9 Blend Add with flares + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + half _FlareIntensity; + + fixed4 frag(v2f i):COLOR + { + half4 addedbloom = tex2D(_MainTex, i.uv); + //half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,i.uv.y)); + half4 bloom = _Intensity * addedbloom + tex2D(_FlareTexture, i.uv) * _FlareIntensity; + + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb * bloom * 1000; + //bloom.rgb -= dirt; + return bloom + screencolor + float4(dirt,1.0) ; + } + + ENDCG + } + + Pass // #10 Complex Downscaling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + + + float2 UV[9]; + + UV[0] = i.uv; + + UV[1] = i.uv + float2( -2.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[2] = i.uv + float2( 0.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[3] = i.uv + float2( 2.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[4] = i.uv + float2( -2.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[5] = i.uv + float2( 0.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[6] = i.uv + float2( 2.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[7] = i.uv + float2( -2.0 * _OffsetInfos.x, 0.0 * _OffsetInfos.y); + UV[8] = i.uv + float2( 2.0 * _OffsetInfos.x, 0.0 * _OffsetInfos.y); + + + fixed4 Sample[9]; + + for(int j = 0; j < 9; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + return (Sample[0] + Sample[1] + Sample[2] + Sample[3] + Sample[4] + Sample[5] + Sample[6] + Sample[7] + Sample[8]) * 1.0/9; + } + + ENDCG + } + + Pass // #11 Blend Add with flares Inverted Source (for forward MSAA) + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + half _FlareIntensity; + + fixed4 frag(v2f i):COLOR + { + half4 addedbloom = tex2D(_MainTex, i.uv); + half4 screencolor = tex2D(_ColorBuffer, float2(i.uv.x,1- i.uv.y)); + half4 bloom = _Intensity * addedbloom + tex2D(_FlareTexture, i.uv) * _FlareIntensity; + + half3 dirt = tex2D(_AdditiveTexture, i.uv).rgb * bloom * 1000; + return bloom + screencolor + float4(dirt,1.0) ; + } + + ENDCG + } + + } + + FallBack off +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader.meta new file mode 100644 index 0000000..dc4260d --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBloomShader.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ab676bda447e26b43b1479fa93ae8d8b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader new file mode 100644 index 0000000..f54429f --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader @@ -0,0 +1,72 @@ +// Unlit alpha-blended shader. +// - no lighting +// - no lightmap support +// - no per-material color + +Shader "Hidden/Ultimate/BokehTexture" { +Properties { + _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} + + _Intensity ("Intensity", Float) = 1 +} + +SubShader { + Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} + LOD 100 + + Cull Off + ZWrite Off + //Blend SrcAlpha One + Blend SrcAlpha OneMinusSrcAlpha + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + + #include "UnityCG.cginc" + + float4x4 _MeshProjectionMatrix; + float4x4 _MeshTransformationMatrix; + half _Intensity; + + + struct v2f { + float4 vertex : SV_POSITION; + half2 texcoord : TEXCOORD0; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + half4 _Tint; + + v2f vert (appdata_full v) + { + v2f o; + //o.vertex = mul(_MeshTransformationMatrix, v.vertex); + //o.vertex = mul(_MeshProjectionMatrix, v.vertex); + + o.vertex = v.vertex; + + o.texcoord = v.texcoord; + + + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.texcoord); + + + col.xyz *= _Tint; + col.a *= _Intensity; + + return col; + } + ENDCG + } +} + +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader.meta new file mode 100644 index 0000000..90ee8ef --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBokehTexture.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 239f6fb2ba87e0147bd6ade6d10111a9 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc new file mode 100644 index 0000000..001db58 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc @@ -0,0 +1,44 @@ +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +sampler2D _MainTex; +sampler2D _MaskTex; +half4 _Threshhold; + +fixed4 frag(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + half intensity = dot(tColor, half3(0.3,0.3,0.3)); + + return clamp(color * intensity * tex2D(_MaskTex, i.uv).r,0,65000); +} + +fixed4 fragNOI(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + + return half4(tColor, 1.0) * tex2D(_MaskTex, i.uv).r; + +} + + + + + diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc.meta new file mode 100644 index 0000000..910ed42 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassCore.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ced9b82dce9c754d9cbcffaee39e640 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader new file mode 100644 index 0000000..731d9c9 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader @@ -0,0 +1,131 @@ +Shader "Hidden/Ultimate/BrightpassMask" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MaskTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +sampler2D _MainTex; +sampler2D _MaskTex; +half4 _Threshhold; + +fixed4 frag(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + half intensity = dot(tColor, half3(0.3,0.3,0.3)); + + return clamp(color * intensity * tex2D(_MaskTex, i.uv).r,0,65000); +} + +fixed4 fragNOI(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + + return half4(tColor, 1.0) * tex2D(_MaskTex, i.uv).r; + +} + + + + + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +sampler2D _MainTex; +sampler2D _MaskTex; +half4 _Threshhold; + +fixed4 frag(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + half intensity = dot(tColor, half3(0.3,0.3,0.3)); + + return clamp(color * intensity * tex2D(_MaskTex, i.uv).r,0,65000); +} + +fixed4 fragNOI(v2f i):COLOR +{ + half4 color = tex2D(_MainTex, i.uv); + + half3 tColor = max(half3(0,0,0), color.rgb-_Threshhold.rgb); + + return half4(tColor, 1.0) * tex2D(_MaskTex, i.uv).r; + +} + + + + + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment fragNOI + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader.meta new file mode 100644 index 0000000..0d22629 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateBrightpassMask.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 68bd60cbcc102e3459b4065ed54e526b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc new file mode 100644 index 0000000..7926079 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc @@ -0,0 +1,95 @@ + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv0 : TEXCOORD1; + half4 uv1 : TEXCOORD2; + half4 uv2 : TEXCOORD3; + half4 uv3 : TEXCOORD4; +}; + + + +sampler2D _MainTex; +sampler2D _FlareTexture; +half _Intensity; + +half4 _FlareScales; +half4 _FlareScalesNear; +half4 _FlareTint0; +half4 _FlareTint1; +half4 _FlareTint2; +half4 _FlareTint3; +half4 _FlareTint4; +half4 _FlareTint5; +half4 _FlareTint6; +half4 _FlareTint7; + +half2 cUV(half2 uv) +{ + return 2.0 * uv - float2(1.0,1.0); +} + +half2 tUV(half2 uv) +{ + return (uv + float2(1.0,1.0))*0.5; +} + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + + half scale0 = _FlareScales.x; + half scale1 = _FlareScales.y; + half scale2 = _FlareScales.z; + half scale3 = _FlareScales.w; + + half2 flareUv = cUV(half2(1.0,1.0) - o.uv); + o.uv0.xy = tUV(flareUv*scale0); + o.uv1.xy = tUV(flareUv*scale1); + o.uv2.xy = tUV(flareUv*scale2); + o.uv3.xy = tUV(flareUv*scale3); + + half scale4 = _FlareScalesNear.x; + half scale5 = _FlareScalesNear.y; + half scale6 = _FlareScalesNear.z; + half scale7 = _FlareScalesNear.w; + + flareUv = cUV(o.uv); + o.uv0.zw = tUV(flareUv*scale4); + o.uv1.zw = tUV(flareUv*scale5); + o.uv2.zw = tUV(flareUv*scale6); + o.uv3.zw = tUV(flareUv*scale7); + + return o; +} + +fixed4 frag(v2f i):COLOR +{ + half2 flareUv = cUV(float2(1.0,1.0) - i.uv); + + float4 acc = float4(0,0,0,0); + + acc += tex2D(_MainTex, i.uv0.xy ) * _FlareTint0; + acc += tex2D(_MainTex, i.uv1.xy ) * _FlareTint1; + acc += tex2D(_MainTex, i.uv2.xy ) * _FlareTint2; + acc += tex2D(_MainTex, i.uv3.xy ) * _FlareTint3; + +#ifdef FLARE_DOUBLE + flareUv = cUV(i.uv); + + acc += tex2D(_MainTex, i.uv0.zw ) * _FlareTint4; + acc += tex2D(_MainTex, i.uv1.zw ) * _FlareTint5; + acc += tex2D(_MainTex, i.uv2.zw ) * _FlareTint6; + acc += tex2D(_MainTex, i.uv3.zw ) * _FlareTint7; +#endif + + return clamp(acc *_Intensity,0, 65000); +} + + diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc.meta new file mode 100644 index 0000000..70b4163 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareCore.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 734a7bdac9cb2e64e8a8d013f9aec730 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader new file mode 100644 index 0000000..db1b84c --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader @@ -0,0 +1,123 @@ +Shader "Hidden/Ultimate/FlareDouble" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #define FLARE_DOUBLE + + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv0 : TEXCOORD1; + half4 uv1 : TEXCOORD2; + half4 uv2 : TEXCOORD3; + half4 uv3 : TEXCOORD4; +}; + + + +sampler2D _MainTex; +sampler2D _FlareTexture; +half _Intensity; + +half4 _FlareScales; +half4 _FlareScalesNear; +half4 _FlareTint0; +half4 _FlareTint1; +half4 _FlareTint2; +half4 _FlareTint3; +half4 _FlareTint4; +half4 _FlareTint5; +half4 _FlareTint6; +half4 _FlareTint7; + +half2 cUV(half2 uv) +{ + return 2.0 * uv - float2(1.0,1.0); +} + +half2 tUV(half2 uv) +{ + return (uv + float2(1.0,1.0))*0.5; +} + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + + half scale0 = _FlareScales.x; + half scale1 = _FlareScales.y; + half scale2 = _FlareScales.z; + half scale3 = _FlareScales.w; + + half2 flareUv = cUV(half2(1.0,1.0) - o.uv); + o.uv0.xy = tUV(flareUv*scale0); + o.uv1.xy = tUV(flareUv*scale1); + o.uv2.xy = tUV(flareUv*scale2); + o.uv3.xy = tUV(flareUv*scale3); + + half scale4 = _FlareScalesNear.x; + half scale5 = _FlareScalesNear.y; + half scale6 = _FlareScalesNear.z; + half scale7 = _FlareScalesNear.w; + + flareUv = cUV(o.uv); + o.uv0.zw = tUV(flareUv*scale4); + o.uv1.zw = tUV(flareUv*scale5); + o.uv2.zw = tUV(flareUv*scale6); + o.uv3.zw = tUV(flareUv*scale7); + + return o; +} + +fixed4 frag(v2f i):COLOR +{ + half2 flareUv = cUV(float2(1.0,1.0) - i.uv); + + float4 acc = float4(0,0,0,0); + + acc += tex2D(_MainTex, i.uv0.xy ) * _FlareTint0; + acc += tex2D(_MainTex, i.uv1.xy ) * _FlareTint1; + acc += tex2D(_MainTex, i.uv2.xy ) * _FlareTint2; + acc += tex2D(_MainTex, i.uv3.xy ) * _FlareTint3; + +#ifdef FLARE_DOUBLE + flareUv = cUV(i.uv); + + acc += tex2D(_MainTex, i.uv0.zw ) * _FlareTint4; + acc += tex2D(_MainTex, i.uv1.zw ) * _FlareTint5; + acc += tex2D(_MainTex, i.uv2.zw ) * _FlareTint6; + acc += tex2D(_MainTex, i.uv3.zw ) * _FlareTint7; +#endif + + return clamp(acc *_Intensity,0, 65000); +} + + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader.meta new file mode 100644 index 0000000..e65deab --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareDouble.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82d5870d890eb51468257e24b9f26478 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader new file mode 100644 index 0000000..5dd29ee --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader @@ -0,0 +1,52 @@ +Shader "Hidden/Ultimate/FlareMask" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MaskTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + + #include "UnityCG.cginc" + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + sampler2D _MainTex; + sampler2D _MaskTex; + + + fixed4 frag(v2f i):COLOR + { + return tex2D(_MainTex, i.uv) * tex2D(_MaskTex, i.uv).r; + } + + ENDCG + } + + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader.meta new file mode 100644 index 0000000..217ca61 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMask.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6119eaa372f3504a92a1603c0afebc8 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader new file mode 100644 index 0000000..4390c27 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader @@ -0,0 +1,72 @@ +// Unlit alpha-blended shader. +// - no lighting +// - no lightmap support +// - no per-material color + +Shader "Hidden/Ultimate/FlareMesh" { +Properties { + _MainTex ("Base (RGB) Trans (A)", 2D) = "black" {} + _BrightTexture ("Base (RGB) Trans (A)", 2D) = "black" {} +} + +SubShader { + Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} + LOD 100 + + Cull Off + ZWrite Off + Blend SrcAlpha One + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #pragma glsl + + #include "UnityCG.cginc" + + float4x4 _FlareProj; + half _Intensity; + + + struct v2f { + float4 vertex : SV_POSITION; + half2 texcoord : TEXCOORD0; + half3 color : TEXCOORD1; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + sampler2D _BrightTexture; + + v2f vert (appdata_full v) + { + v2f o; + //o.vertex = mul(UNITY_MATRIX_MVP, v.vertex); + o.vertex = mul(_FlareProj, v.vertex); + o.texcoord = v.texcoord; + + half3 bloom = tex2Dlod(_BrightTexture, float4(v.texcoord1.xy,0,0) ).xyz; + o.color = bloom * _Intensity; + + half intensity = dot(half3(0.3,0.3,0.3), o.color.xyz); + if (intensity < 0.001) + o.vertex = half4(-10000,-10000,0.0,1.0); + + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.texcoord); + col.xyz *= i.color.xyz; + + return col; + + } + ENDCG + } +} + +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader.meta new file mode 100644 index 0000000..75cda44 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareMeshShader.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: abe4898237b1d4d49b8a3ebc0f5b4d49 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader new file mode 100644 index 0000000..dcf776e --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader @@ -0,0 +1,121 @@ +Shader "Hidden/Ultimate/FlareSingle" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + + Subshader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + +#include "UnityCG.cginc" + +struct v2f +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv0 : TEXCOORD1; + half4 uv1 : TEXCOORD2; + half4 uv2 : TEXCOORD3; + half4 uv3 : TEXCOORD4; +}; + + + +sampler2D _MainTex; +sampler2D _FlareTexture; +half _Intensity; + +half4 _FlareScales; +half4 _FlareScalesNear; +half4 _FlareTint0; +half4 _FlareTint1; +half4 _FlareTint2; +half4 _FlareTint3; +half4 _FlareTint4; +half4 _FlareTint5; +half4 _FlareTint6; +half4 _FlareTint7; + +half2 cUV(half2 uv) +{ + return 2.0 * uv - float2(1.0,1.0); +} + +half2 tUV(half2 uv) +{ + return (uv + float2(1.0,1.0))*0.5; +} + +v2f vert( appdata_img v ) +{ + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + + half scale0 = _FlareScales.x; + half scale1 = _FlareScales.y; + half scale2 = _FlareScales.z; + half scale3 = _FlareScales.w; + + half2 flareUv = cUV(half2(1.0,1.0) - o.uv); + o.uv0.xy = tUV(flareUv*scale0); + o.uv1.xy = tUV(flareUv*scale1); + o.uv2.xy = tUV(flareUv*scale2); + o.uv3.xy = tUV(flareUv*scale3); + + half scale4 = _FlareScalesNear.x; + half scale5 = _FlareScalesNear.y; + half scale6 = _FlareScalesNear.z; + half scale7 = _FlareScalesNear.w; + + flareUv = cUV(o.uv); + o.uv0.zw = tUV(flareUv*scale4); + o.uv1.zw = tUV(flareUv*scale5); + o.uv2.zw = tUV(flareUv*scale6); + o.uv3.zw = tUV(flareUv*scale7); + + return o; +} + +fixed4 frag(v2f i):COLOR +{ + half2 flareUv = cUV(float2(1.0,1.0) - i.uv); + + float4 acc = float4(0,0,0,0); + + acc += tex2D(_MainTex, i.uv0.xy ) * _FlareTint0; + acc += tex2D(_MainTex, i.uv1.xy ) * _FlareTint1; + acc += tex2D(_MainTex, i.uv2.xy ) * _FlareTint2; + acc += tex2D(_MainTex, i.uv3.xy ) * _FlareTint3; + +#ifdef FLARE_DOUBLE + flareUv = cUV(i.uv); + + acc += tex2D(_MainTex, i.uv0.zw ) * _FlareTint4; + acc += tex2D(_MainTex, i.uv1.zw ) * _FlareTint5; + acc += tex2D(_MainTex, i.uv2.zw ) * _FlareTint6; + acc += tex2D(_MainTex, i.uv3.zw ) * _FlareTint7; +#endif + + return clamp(acc *_Intensity,0, 65000); +} + + + + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma vertex vert + #pragma fragment frag + + ENDCG + } + } + FallBack "Diffuse" +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader.meta new file mode 100644 index 0000000..2f3c551 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateFlareSingle.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 079e3a5c047c057468f404709ddfe3dc +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader new file mode 100644 index 0000000..2a1e4d3 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader @@ -0,0 +1,751 @@ +Shader "Hidden/Ultimate/Sampling" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + CGINCLUDE + + #pragma target 3.0 + + #include "UnityCG.cginc" + + float4 _OffsetInfos; + float4 _Tint; + float _Intensity; + sampler2D _MainTex; + sampler2D _AdditiveTexture; + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + }; + + struct v2f_opts + { + half4 pos : SV_POSITION; + half2 uv[7] : TEXCOORD0; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; + } + + struct v2fLow { + half4 pos : POSITION; + half2 uv : TEXCOORD0; + half4 uv01 : TEXCOORD1; + half4 uv23 : TEXCOORD2; + half4 uv45 : TEXCOORD3; + half4 uv67 : TEXCOORD4; + half4 uv89 : TEXCOORD5; + }; + + + v2fLow vertLow( appdata_img v ) + { + v2fLow o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + + o.uv01 = v.texcoord.xyxy + _OffsetInfos.xyxy * half4(1,1, -1,-1); + o.uv23 = v.texcoord.xyxy + _OffsetInfos.xyxy * half4(1,1, -1,-1) * 2; + o.uv45 = v.texcoord.xyxy + _OffsetInfos.xyxy * half4(1,1, -1,-1) * 3; + o.uv67 = v.texcoord.xyxy + _OffsetInfos.xyxy * half4(1,1, -1,-1) * 4; + o.uv89 = v.texcoord.xyxy + _OffsetInfos.xyxy * half4(1,1, -1,-1) * 5; + + return o; + } + + inline float ComputeLuma( float3 c ) + { + return dot( c, fixed3(0.299, 0.587, 0.114) ); + } + + + float Gaussian(float Scale, int iSamplePoint) + { + float sigma = (Scale-1.0)/5; + float g = 1.0f / sqrt(2.0f * 3.14159 * sigma * sigma); + return (g * exp(-(iSamplePoint * iSamplePoint) / (2 * sigma * sigma))); + } + + float4 Upsample(half2 uv) + { + half4 f0 = tex2D (_AdditiveTexture, uv + half2(_OffsetInfos.z,_OffsetInfos.w)); + half4 f1 = tex2D (_AdditiveTexture, uv + half2(-_OffsetInfos.z,_OffsetInfos.w)); + half4 f2 = tex2D (_AdditiveTexture, uv + half2(-_OffsetInfos.z,-_OffsetInfos.w)); + half4 f3 = tex2D (_AdditiveTexture, uv + half2(_OffsetInfos.z,-_OffsetInfos.w)); + + return (f0+f1+f2+f3)*0.25; + } + + + half4 fragGaussBlurVeryHigh (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 31; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.1480461 * tex2D (_MainTex, gUV); + color += 0.1451146 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1); + color += 0.1451146 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1); + color += 0.1366637 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2); + color += 0.1366637 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2); + color += 0.1236585 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3); + color += 0.1236585 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3); + color += 0.1075035 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4); + color += 0.1075035 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4); + color += 0.08979447 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5); + color += 0.08979447 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5); + color += 0.07206175 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6); + color += 0.07206175 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6); + color += 0.05556333 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7); + color += 0.05556333 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7); + color += 0.04116233 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8); + color += 0.04116233 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8); + color += 0.02929812 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 9); + color += 0.02929812 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 9); + color += 0.02003586 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 10); + color += 0.02003586 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 10); + color += 0.01316449 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 11); + color += 0.01316449 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 11); + color += 0.008310529 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 12); + color += 0.008310529 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 12); + color += 0.005040591 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 13); + color += 0.005040591 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 13); + color += 0.002937396 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 14); + color += 0.002937396 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 14); + color += 0.001644643 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 15); + color += 0.001644643 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 15); + + + color.a = 1.0; + return color * _Tint * _Intensity + Upsample(i.uv); + } + + half4 fragGaussBlurHigher (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 31; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.1562562 * tex2D (_MainTex, gUV); + color += 0.1527989 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1); + color += 0.1527989 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1); + color += 0.1428793 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2); + color += 0.1428793 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2); + color += 0.1277568 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3); + color += 0.1277568 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3); + color += 0.1092358 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4); + color += 0.1092358 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4); + color += 0.08931243 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5); + color += 0.08931243 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5); + color += 0.06982721 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6); + color += 0.06982721 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6); + color += 0.05220396 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7); + color += 0.05220396 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7); + color += 0.03732055 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8); + color += 0.03732055 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8); + color += 0.02551284 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 9); + color += 0.02551284 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 9); + color += 0.01667767 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 10); + color += 0.01667767 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 10); + color += 0.01042505 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 11); + color += 0.01042505 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 11); + color += 0.006231415 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 12); + color += 0.006231415 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 12); + color += 0.003561732 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 13); + color += 0.003561732 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 13); + + + color.a = 1.0; + return color * _Tint * _Intensity + Upsample(i.uv); + } + + half4 fragGaussBlurHigh (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 31; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.1820341 * tex2D (_MainTex, gUV); + color += 0.1764335 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1); + color += 0.1764335 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1); + color += 0.1606445 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2); + color += 0.1606445 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2); + color += 0.1374065 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3); + color += 0.1374065 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3); + color += 0.1104092 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4); + color += 0.1104092 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4); + color += 0.08334126 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5); + color += 0.08334126 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5); + color += 0.05909781 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6); + color += 0.05909781 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6); + color += 0.03936763 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7); + color += 0.03936763 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7); + color += 0.02463563 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8); + color += 0.02463563 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8); + color += 0.01448254 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 9); + color += 0.01448254 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 9); + color += 0.007998019 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 10); + color += 0.007998019 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 10); + color += 0.004149318 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 11); + color += 0.004149318 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 11); + + + color.a = 1.0; + return color * _Tint * _Intensity + Upsample(i.uv); + } + + half4 fragGaussBlurMedium (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 17; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.2605744 * tex2D (_MainTex, gUV); + color += 0.242882 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1); + color += 0.242882 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1); + color += 0.1966919 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2); + color += 0.1966919 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2); + color += 0.13839 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3); + color += 0.13839 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3); + color += 0.08459612 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4); + color += 0.08459612 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4); + color += 0.04492867 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5); + color += 0.04492867 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5); + color += 0.02073118 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6); + color += 0.02073118 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6); + color += 0.008310967 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 7); + color += 0.008310967 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 7); + color += 0.002894721 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 8); + color += 0.002894721 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 8); + + + return color * _Tint * _Intensity + Upsample(i.uv); + } + + half4 fragGaussBlurLow (v2f i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float Scale = 17; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.3098615 * tex2D (_MainTex, gUV); + color += 0.2789662 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1); + color += 0.2789662 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1); + color += 0.2035652 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2); + color += 0.2035652 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2); + color += 0.1203992 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3); + color += 0.1203992 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3); + color += 0.05771804 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4); + color += 0.05771804 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4); + color += 0.02242682 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 5); + color += 0.02242682 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 5); + color += 0.00706304 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 6); + color += 0.00706304 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 6); + + + return color * _Tint * _Intensity + Upsample(i.uv); + } + + half4 fragGaussBlurVeryLow (v2fLow i) : SV_Target + { + half4 color = half4 (0,0,0,0); + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.4310208 * tex2D (_MainTex, i.uv); + + color += 0.3403002 * tex2D (_MainTex, i.uv01.xy); + color += 0.3403002 * tex2D (_MainTex, i.uv01.zw); + + color += 0.1674766 * tex2D (_MainTex, i.uv23.xy); + color += 0.1674766 * tex2D (_MainTex, i.uv23.zw); + + color += 0.05137766 * tex2D (_MainTex, i.uv45.xy); + color += 0.05137766 * tex2D (_MainTex, i.uv45.zw); + + color += 0.009824769 * tex2D (_MainTex, i.uv67.xy); + color += 0.009824769 * tex2D (_MainTex, i.uv67.zw); + + return color * _Tint * _Intensity + Upsample(i.uv); + } + + + ENDCG + + SubShader + { + Pass // #0 Simple Downscaling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + float2 UV[4]; + + UV[0] = i.uv + float2(-1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[1] = i.uv + float2( 1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[2] = i.uv + float2(-1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + UV[3] = i.uv + float2( 1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + + + fixed4 Sample[4]; + + for(int j = 0; j < 4; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + return (Sample[0] + Sample[1] + Sample[2] + Sample[3]) * 1.0/4; + } + + ENDCG + } + + Pass // #1 Complex Downscaling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + fixed4 frag(v2f i):COLOR + { + + float2 UV[9]; + + UV[0] = i.uv; + + UV[1] = i.uv + float2( -2.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[2] = i.uv + float2( 0.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[3] = i.uv + float2( 2.0 * _OffsetInfos.x, -2.0 * _OffsetInfos.y); + UV[4] = i.uv + float2( -2.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[5] = i.uv + float2( 0.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[6] = i.uv + float2( 2.0 * _OffsetInfos.x, 2.0 * _OffsetInfos.y); + UV[7] = i.uv + float2( -2.0 * _OffsetInfos.x, 0.0 * _OffsetInfos.y); + UV[8] = i.uv + float2( 2.0 * _OffsetInfos.x, 0.0 * _OffsetInfos.y); + + + + fixed4 Sample[9]; + + for(int j = 0; j < 9; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + half4 sum = half4(0,0,0,0); + for(int j = 0; j < 9; ++j) + { + sum += Sample[j]; + } + + return sum* 1.0/9; + } + + ENDCG + } + + Pass // #2 Gaussian Sampling Very High + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurVeryHigh + + ENDCG + } + + Pass // #3 Gaussian Sampling Medium + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurMedium + + ENDCG + } + + Pass // #4 Gaussian Sampling Very Low + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vertLow + #pragma fragment fragGaussBlurVeryLow + + ENDCG + } + + + Pass // #5 Filmic curve sampling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + // Curve mapping + half4 _Toe; + half4 _Shoulder; + half _K; + half _Crossover; + half _MaxValue; + half _CurveExposure; + float Map(half x) + { + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; + } + + + fixed4 frag(v2f i):COLOR + { + float2 UV[4]; + + UV[0] = i.uv + float2(-1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[1] = i.uv + float2( 1.0 * _OffsetInfos.x, -1.0 * _OffsetInfos.y); + UV[2] = i.uv + float2(-1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + UV[3] = i.uv + float2( 1.0 * _OffsetInfos.x, 1.0 * _OffsetInfos.y); + + fixed4 Sample[4]; + + for(int j = 0; j < 4; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + half4 color = (Sample[0] + Sample[1] + Sample[2] + Sample[3]) * 1.0/4; + + half intensity = ComputeLuma(color); + + + + half bloomIntensity = intensity/max(1.0+intensity*_CurveExposure,0.01); + + bloomIntensity = Map(bloomIntensity) * _MaxValue; + + return clamp(color * bloomIntensity/intensity,0,65000); + } + + ENDCG + } + + Pass // #6 Low Gaussian Filmic Curve + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + // Curve mapping + half4 _Toe; + half4 _Shoulder; + half _K; + half _Crossover; + float Map(half x) + { + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; + } + + fixed4 frag(v2f i):COLOR + { + half4 color = half4 (0,0,0,0); + + float Scale = 9; + + float2 gUV = i.uv; + float Offset = 0; + + color += 0.4005 * tex2D (_MainTex, gUV); + color += 0.3294 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 1.0); + color += 0.3294 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 1.0); + color += 0.1833 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 2.0); + color += 0.1833 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 2.0); + color += 0.0691 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 3.0); + color += 0.0691 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 3.0); + color += 0.0175 * tex2D (_MainTex, gUV + _OffsetInfos.xy * 4.0); + color += 0.0175 * tex2D (_MainTex, gUV - _OffsetInfos.xy * 4.0); + + + + + half intensity = dot(color, half3(0.3,0.3,0.3)); + half bloomIntensity = Map(intensity); + + return color * bloomIntensity/intensity; + } + + ENDCG + } + + Pass // #7 Simple Blur + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + + fixed4 frag(v2f i):COLOR + { + + + float2 UV[3]; + + UV[0] = i.uv; + UV[1] = i.uv + 1.5*_OffsetInfos; + UV[2] = i.uv - 1.5*_OffsetInfos; + //UV[2] = i.uv + 2*_OffsetInfos; + //UV[3] = i.uv - 2*_OffsetInfos; + + + fixed4 Sample[3]; + + for(int j = 0; j < 3; ++j) + { + Sample[j] = tex2D(_MainTex, UV[j]); + } + + return (Sample[0] + Sample[1] + Sample[2]) * 1.0/3; + } + + ENDCG + } + + Pass // #8 Gaussian Sampling Small + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurLow + + ENDCG + } + + Pass // #9 Gaussian Sampling High + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurHigh + + ENDCG + } + + Pass // #10 Gaussian Sampling Higher + { + CGPROGRAM + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma vertex vert_img + #pragma fragment fragGaussBlurHigher + + ENDCG + } + + Pass // #11 Temporal Stable Downsampling + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + float2 _MainTex_TexelSize; + + fixed4 frag(v2f i):COLOR + { + float4 offsets = _MainTex_TexelSize.xyxy * float4(-1.0, -1.0, +1.0, +1.0); + half3 c0 = tex2D(_MainTex, i.uv + offsets.xy); + half3 c1 = tex2D(_MainTex, i.uv + offsets.zy); + half3 c2 = tex2D(_MainTex, i.uv + offsets.xw); + half3 c3 = tex2D(_MainTex, i.uv + offsets.zw); + half w0 = 1.0 / (ComputeLuma(c0) + 1.0); + half w1 = 1.0 / (ComputeLuma(c1) + 1.0); + half w2 = 1.0 / (ComputeLuma(c2) + 1.0); + half w3 = 1.0 / (ComputeLuma(c3) + 1.0); + half div = 1.0 / max(w0 + w1 + w2 + w3, 0.01); + float3 color = (c0 * w0 + c1 * w1 + c2 * w2 + c3 * w3) * div; + + return float4(clamp(color,0,65000), 1); + + //half intensity = dot(color, half3(0.3,0.3,0.3)); + + //half bloomIntensity = intensity/max(1.0+intensity*_CurveExposure,0.01); + + //return float4(clamp(color * bloomIntensity/intensity,0,65000), 1); + } + + ENDCG + } + + + Pass // #12 Temporal Stable Downsampling with filmic curve + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + float2 _MainTex_TexelSize; + + // Curve mapping + half4 _Toe; + half4 _Shoulder; + half _K; + half _Crossover; + half _MaxValue; + half _CurveExposure; + float Map(half x) + { + float4 data; + float endAdd; + + if (x > _Crossover) + { + data = _Shoulder; + endAdd = _K; + } + else + { + data = _Toe; + endAdd = 0; + } + + + float2 numDenum = data.xy * x + data.zw; + return numDenum.x / numDenum.y + endAdd; + } + + fixed4 frag(v2f i):COLOR + { + float4 offsets = _MainTex_TexelSize.xyxy * float4(-1.0, -1.0, +1.0, +1.0); + half3 c0 = tex2D(_MainTex, i.uv + offsets.xy); + half3 c1 = tex2D(_MainTex, i.uv + offsets.zy); + half3 c2 = tex2D(_MainTex, i.uv + offsets.xw); + half3 c3 = tex2D(_MainTex, i.uv + offsets.zw); + half w0 = 1.0 / (ComputeLuma(c0) + 1.0); + half w1 = 1.0 / (ComputeLuma(c1) + 1.0); + half w2 = 1.0 / (ComputeLuma(c2) + 1.0); + half w3 = 1.0 / (ComputeLuma(c3) + 1.0); + half div = 1.0 / max(w0 + w1 + w2 + w3, 0.01); + float3 color = (c0 * w0 + c1 * w1 + c2 * w2 + c3 * w3) * div; + + half intensity = ComputeLuma(color); + + half bloomIntensity = intensity/max(1.0+intensity*_CurveExposure,0.01); + bloomIntensity = Map(bloomIntensity) * _MaxValue; + + return float4(clamp(color * bloomIntensity/intensity,0,65000), 1); + } + + ENDCG + } + + } + + FallBack off +} diff --git a/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader.meta b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader.meta new file mode 100644 index 0000000..c527d0f --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Resources/UltimateSampling.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aae4bb3d598e50d4bada0867c1df4eb4 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts.meta b/Assets/Cinematic Effects/BloomBeta/Scripts.meta new file mode 100644 index 0000000..14d4900 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8d98caaa93f108b4a8be214f58dfe23f +folderAsset: yes +timeCreated: 1443580217 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs b/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs new file mode 100644 index 0000000..fe10124 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + + +class BokehRenderer +{ + Texture2D m_CurrentTexture; + //Mesh[] m_FlareMeshes = null; + Material m_FlareMaterial; + + int m_CurrentWidth; + int m_CurrentHeight; + float m_CurrentRelativeScaleX; + float m_CurrentRelativeScaleY; + + public BokehRenderer() + { + + } + + public void RebuildMeshIfNeeded(int width, int height, float spriteRelativeScaleX, float spriteRelativeScaleY, ref Mesh[] meshes) + { + if (m_CurrentWidth == width && m_CurrentHeight == height && m_CurrentRelativeScaleX == spriteRelativeScaleX && m_CurrentRelativeScaleY == spriteRelativeScaleY && meshes != null) + return; + + if (meshes != null) + foreach (Mesh m in meshes) + { + GameObject.DestroyImmediate(m, true); + } + meshes = null; + + BuildMeshes(width, height, spriteRelativeScaleX, spriteRelativeScaleY, ref meshes); + + } + + public void BuildMeshes(int width, int height, float spriteRelativeScaleX, float spriteRelativeScaleY, ref Mesh[] meshes) + { + int maxQuads = 65000 / 6; + int totalQuads = width * height; + int meshCount = Mathf.CeilToInt((1.0f * totalQuads) / (1.0f * maxQuads)); + meshes = new Mesh[meshCount]; + int currentQuads = totalQuads; + + + m_CurrentWidth = width; + m_CurrentHeight = height; + m_CurrentRelativeScaleX = spriteRelativeScaleX; + m_CurrentRelativeScaleY = spriteRelativeScaleY; + int currentPixel = 0; + + for (int m = 0; m < meshCount; ++m) + { + Mesh currentMesh = new Mesh(); + currentMesh.hideFlags = HideFlags.HideAndDontSave; + + int nbQuads = currentQuads; + if (currentQuads > maxQuads) + nbQuads = maxQuads; + currentQuads -= nbQuads; + + Vector3[] vertices = new Vector3[nbQuads * 4]; + int[] triangles = new int[nbQuads * 6]; + Vector2[] uv0 = new Vector2[nbQuads * 4]; + Vector2[] uv1 = new Vector2[nbQuads * 4]; + Vector3[] normals = new Vector3[nbQuads * 4]; + Color[] colors = new Color[nbQuads * 4]; + + float spriteWidth = m_CurrentRelativeScaleX * width; + float spriteHeigth = m_CurrentRelativeScaleY * height; + + + for (int i = 0; i < nbQuads; ++i) + { + int x = currentPixel % width; + int y = (currentPixel - x) / width; + SetupSprite(i, x, y, vertices, triangles, uv0, uv1, normals, colors, new Vector2((float)x / (float)width, 1.0f - ((float)y / (float)height)), spriteWidth * 0.5f, spriteHeigth * 0.5f); + currentPixel++; + } + + currentMesh.vertices = vertices; + currentMesh.triangles = triangles; + currentMesh.colors = colors; + currentMesh.uv = uv0; + currentMesh.uv2 = uv1; + currentMesh.normals = normals; + currentMesh.RecalculateBounds(); + currentMesh.UploadMeshData(true); + meshes[m] = currentMesh; + } + } + + public void Clear(ref Mesh[] meshes) + { + if (meshes != null) + foreach (Mesh m in meshes) + { + GameObject.DestroyImmediate(m, true); + } + meshes = null; + } + + public void SetTexture(Texture2D texture) + { + m_CurrentTexture = texture; + m_FlareMaterial.SetTexture("_MainTex", m_CurrentTexture); + } + + public void SetMaterial(Material flareMaterial) + { + m_FlareMaterial = flareMaterial; + } + + public void RenderFlare(RenderTexture brightPixels, RenderTexture destination, float intensity, ref Mesh[] meshes) + { + + RenderTexture lastActive = RenderTexture.active; + + RenderTexture.active = destination; + GL.Clear(true, true, Color.black); + + Matrix4x4 proj = Matrix4x4.Ortho(0, m_CurrentWidth, 0, m_CurrentHeight, -1.0f, 1.0f); + + m_FlareMaterial.SetMatrix("_FlareProj", proj); + m_FlareMaterial.SetTexture("_BrightTexture", brightPixels); + m_FlareMaterial.SetFloat("_Intensity", intensity); + + if (m_FlareMaterial.SetPass(0)) + { + //Debug.Log("MeshCount=" + m_FlareMeshes.Length); + + for (int i = 0; i < meshes.Length; ++i ) + Graphics.DrawMeshNow(meshes[i], Matrix4x4.identity); + } + else + { + Debug.LogError("Can't render flare mesh"); + } + + RenderTexture.active = lastActive; + + } + + public void SetupSprite(int idx, int x, int y, Vector3[] vertices, int[] triangles, Vector2[] uv0, Vector2[] uv1, Vector3[] normals, Color[] colors, Vector2 targetPixelUV, float halfWidth, float halfHeight) + { + int vIdx = idx * 4; + int tIdx = idx * 6; + + triangles[tIdx + 0] = vIdx + 0; + triangles[tIdx + 1] = vIdx + 2; + triangles[tIdx + 2] = vIdx + 1; + + triangles[tIdx + 3] = vIdx + 2; + triangles[tIdx + 4] = vIdx + 3; + triangles[tIdx + 5] = vIdx + 1; + + vertices[vIdx + 0] = new Vector3((-halfWidth + x), (-halfHeight + y), 0); + vertices[vIdx + 1] = new Vector3((halfWidth + x), (-halfHeight + y), 0); + vertices[vIdx + 2] = new Vector3((-halfWidth + x), (halfHeight + y), 0); + vertices[vIdx + 3] = new Vector3((halfWidth + x), (halfHeight + y), 0); + + Vector2 p = targetPixelUV; + + colors[vIdx + 0] = new Color((-halfWidth / m_CurrentWidth + p.x), (-halfHeight*-1/ m_CurrentHeight + p.y), 0, 0); + colors[vIdx + 1] = new Color((halfWidth / m_CurrentWidth + p.x), (-halfHeight * -1 / m_CurrentHeight + p.y), 0, 0); + colors[vIdx + 2] = new Color((-halfWidth / m_CurrentWidth + p.x), (halfHeight * -1 / m_CurrentHeight + p.y), 0, 0); + colors[vIdx + 3] = new Color((halfWidth / m_CurrentWidth + p.x), (halfHeight * -1 / m_CurrentHeight + p.y), 0, 0); + + normals[vIdx + 0] = -Vector3.forward; + normals[vIdx + 1] = -Vector3.forward; + normals[vIdx + 2] = -Vector3.forward; + normals[vIdx + 3] = -Vector3.forward; + + uv0[vIdx + 0] = new Vector2(0, 0); + uv0[vIdx + 1] = new Vector2(1.0f, 0); + uv0[vIdx + 2] = new Vector2(0, 1.0f); + uv0[vIdx + 3] = new Vector2(1.0f, 1.0f); + + uv1[vIdx + 0] = targetPixelUV; + uv1[vIdx + 1] = targetPixelUV; + uv1[vIdx + 2] = targetPixelUV; + uv1[vIdx + 3] = targetPixelUV; + } + + + +} + diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs.meta b/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs.meta new file mode 100644 index 0000000..27b1699 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/BokehRenderer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f26e82e850c24c444bb8306feb47738d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs b/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs new file mode 100644 index 0000000..2fd397c --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs @@ -0,0 +1,241 @@ +using UnityEngine; +using System.Collections; +using System; +using UnityEditor; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +[Serializable] +public class DeluxeFilmicCurve +{ + [SerializeField] + public float m_BlackPoint = 0.0f; + + [SerializeField] + public float m_WhitePoint = 1.0f; + + [SerializeField] + public float m_CrossOverPoint = 0.3f; + + [SerializeField] + public float m_ToeStrength = 0.98f; + + [SerializeField] + public float m_ShoulderStrength = 0.0f; + + [SerializeField] + public float m_Highlights = 0.5f; + + public float m_k; + public Vector4 m_ToeCoef; + public Vector4 m_ShoulderCoef; + + public float GetExposure() + { + float highlights = m_Highlights; + float exposure = 2.0f + (1.0f - highlights) * 20.0f; + return (exposure * Mathf.Exp(-2.0f)); + } + + public float ComputeK(float t, float c, float b, float s, float w) + { + float num = (1 - t) * (c - b); + float denom = (1 - s) * (w - c) + (1 - t) * (c - b); + + return num / denom; + } + + public float Toe(float x, float t, float c, float b, float s, float w, float k) + { + float xnum = m_ToeCoef.x * x; + float xdenom = m_ToeCoef.y * x; + + return (xnum + m_ToeCoef.z) / (xdenom + m_ToeCoef.w); + + /*float num = k * (1 - t) * (x - b); + float denom = c - (1 - t) * b - t * x; + + return num / denom;*/ + } + + public float Shoulder(float x, float t, float c, float b, float s, float w, float k) + { + float xnum = m_ShoulderCoef.x * x; + float xdenom = m_ShoulderCoef.y * x; + + return (xnum + m_ShoulderCoef.z) / (xdenom + m_ShoulderCoef.w) + k; + + /*float num = (1 - k) * (x - c); + float denom = s*x + (1 - s) * w - c; + + return num / denom + k;*/ + } + + public float Graph(float x, float t, float c, float b, float s, float w, float k) + { + if (x <= m_CrossOverPoint) + return Toe(x, t, c, b, s, w, k); + + return Shoulder(x, t, c, b, s, w, k); + } + + public void StoreK() + { + m_k = ComputeK(m_ToeStrength, m_CrossOverPoint, m_BlackPoint, m_ShoulderStrength, m_WhitePoint); + } + + public void ComputeShaderCoefficients(float t, float c, float b, float s, float w, float k) + { + { + float xNumMul = k * (1 - t); + float numAdd = k * (1 - t) * -b; + float xDenomMul = -t; + float denomAdd = c - (1 - t) * b; + m_ToeCoef = new Vector4(xNumMul, xDenomMul, numAdd, denomAdd); + } + + { + float xNumMul = (1 - k); + float numAdd = (1 - k) * -c; + float xDenomMul = s; + float denomAdd = (1 - s) * w - c; + m_ShoulderCoef = new Vector4(xNumMul, xDenomMul, numAdd, denomAdd); + } + } + + public void UpdateCoefficients() + { + StoreK(); + ComputeShaderCoefficients(m_ToeStrength, m_CrossOverPoint, m_BlackPoint, m_ShoulderStrength, m_WhitePoint, m_k); + } + + + + + Vector3[] m_CurvePoints; + + void DrawCurve() + { + //Rect rr = GUILayoutUtility.GetRect(Mathf.Min(r.width, 60), 60); + //if (m_CurvePoints != null) + { + const int h = 100; + const int h1 = h - 1; + Rect rect; + + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + rect = GUILayoutUtility.GetRect(Mathf.Max(EditorGUIUtility.currentViewWidth - 50.0f, 10.0f), h); + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + GUI.Box(rect, GUIContent.none); + + int nbPoint = 40; + int w = Mathf.FloorToInt(rect.width); + + Vector3[] points = new Vector3[nbPoint]; + + for (int i = 0; i < nbPoint; i++) + { + float norm = (float)i / (float)nbPoint; + float value = Graph(norm * m_WhitePoint, m_ToeStrength, m_CrossOverPoint, m_BlackPoint, m_ShoulderStrength, m_WhitePoint, m_k); + value = Mathf.Clamp01(value); + points[i] = new Vector3(rect.x + i * (float)w / (float)(nbPoint - 1), rect.y + (h - value * h1), 0f); + } + + + Handles.color = Color.green; + Handles.DrawAAPolyLine(2f, points); + } + //EditorGUI.CurveField(rr, m_Curve); + } + + public void OnGUI() + { + //SetupCurve(); + + float denom = m_WhitePoint - m_BlackPoint; + + float co = (m_CrossOverPoint - m_BlackPoint) / denom; + if (Mathf.Abs(denom) < 0.001f) + co = 0.5f; + + EditorGUILayout.LabelField("Curve Parameters", EditorStyles.boldLabel); + m_WhitePoint = 1.0f; + m_BlackPoint = 0.0f; + co = DoSlider("Middle", co, 0.0f, 1.0f); + m_ToeStrength = -1.0f * DoSlider("Dark", -1.0f * m_ToeStrength, -0.99f, 0.99f); + m_ShoulderStrength = DoSlider("Bright", m_ShoulderStrength, -0.99f, 0.99f); + m_Highlights = DoSlider("Highlights", m_Highlights, 0.0f, 1.0f); + + m_CrossOverPoint = co * (m_WhitePoint - m_BlackPoint) + m_BlackPoint; + UpdateCoefficients(); + + EditorGUILayout.BeginVertical(GUILayout.MinHeight(60)); + // Curve drawing + DrawCurve(); + EditorGUILayout.EndVertical(); + } + + AnimationCurve m_Curve; + + private static float CalculateLinearTangent(AnimationCurve curve, int index, int toIndex) + { + return (float)(((double)curve[index].value - (double)curve[toIndex].value) / ((double)curve[index].time - (double)curve[toIndex].time)); + } + + void SetupCurve() + { + m_Curve = new AnimationCurve(); + + DeluxeFilmicCurve dt = this; + + float min = dt.m_BlackPoint; + float max = dt.m_WhitePoint; + + int nbFrame = 40; + float step = (max - min) / nbFrame; + + m_CurvePoints = new Vector3[nbFrame + 1]; + + float curr = min; + float k = dt.ComputeK(dt.m_ToeStrength, dt.m_CrossOverPoint, dt.m_BlackPoint, dt.m_ShoulderStrength, dt.m_WhitePoint); + + dt.StoreK(); + dt.ComputeShaderCoefficients(dt.m_ToeStrength, dt.m_CrossOverPoint, dt.m_BlackPoint, dt.m_ShoulderStrength, dt.m_WhitePoint, k); + + for (int i = 0; i < nbFrame + 1; ++i) + { + float value = dt.Graph(curr, dt.m_ToeStrength, dt.m_CrossOverPoint, dt.m_BlackPoint, dt.m_ShoulderStrength, dt.m_WhitePoint, k); + + m_CurvePoints[i] = new Vector3(curr, value); + + m_Curve.AddKey(new Keyframe(curr, value)); + + curr += step; + } + + for (int i = 0; i < m_Curve.keys.Length - 1; ++i) + { + float tangent = CalculateLinearTangent(m_Curve, i, i + 1); + m_Curve.keys[i].inTangent = tangent; + m_Curve.keys[i].outTangent = tangent; + + m_Curve.SmoothTangents(i, 0.0f); + } + } + + float DoSlider(string label, float value, float min, float max) + { + float v = value; + EditorGUILayout.BeginHorizontal(); + v = Mathf.Clamp(EditorGUILayout.FloatField(label, v), min, max); + v = GUILayout.HorizontalSlider(v, min, max); + EditorGUILayout.EndHorizontal(); + + return v; + } + +} diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs.meta b/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs.meta new file mode 100644 index 0000000..50d545d --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/DeluxeFilmicCurve.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4b47c958d5706f24d8fc004492f16384 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs b/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs new file mode 100644 index 0000000..797b6d7 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs @@ -0,0 +1,84 @@ +using UnityEngine; +using System.Collections; + +public class UBHelper : MonoBehaviour +{ + + static UBHelper() + { + s_Styles = new Styles(); + } + + public static bool GroupHeader(string text, bool isExpanded) + { + Rect rect = GUILayoutUtility.GetRect(16f, 22f, s_Styles.header); + + s_Styles.Backup(); + s_Styles.Apply(); + + if (Event.current.type == EventType.Repaint) + s_Styles.header.Draw(rect, text, isExpanded, isExpanded, isExpanded, isExpanded); + + Event e = Event.current; + if (e.type == EventType.MouseDown) + { + if (rect.Contains(e.mousePosition)) + { + isExpanded = !isExpanded; + e.Use(); + } + } + + s_Styles.Revert(); + return isExpanded; + } + + private static Styles s_Styles; + private class Styles + { + public GUIStyle header = "ShurikenModuleTitle"; + public GUIStyle headerArrow = "AC RightArrow"; + + internal Styles() + { + header.font = (new GUIStyle("Label")).font; + } + + RectOffset m_Border; + float m_FixedHeight; + Vector2 m_ContentOffset; + TextAnchor m_TextAlign; + FontStyle m_TextStyle; + int m_FontSize; + + public void Backup() + { + m_Border = s_Styles.header.border; + m_FixedHeight = s_Styles.header.fixedHeight; + m_ContentOffset = s_Styles.header.contentOffset; + m_TextAlign = s_Styles.header.alignment; + m_TextStyle = s_Styles.header.fontStyle; + m_FontSize = s_Styles.header.fontSize; + } + + public void Apply() + { + s_Styles.header.border = new RectOffset(7, 7, 4, 4); + s_Styles.header.fixedHeight = 22; + s_Styles.header.contentOffset = new Vector2(20f, -2f); + s_Styles.header.alignment = TextAnchor.MiddleLeft; + s_Styles.header.fontStyle = FontStyle.Bold; + s_Styles.header.fontSize = 12; + } + + public void Revert() + { + s_Styles.header.border = m_Border; + s_Styles.header.fixedHeight = m_FixedHeight; + s_Styles.header.contentOffset = m_ContentOffset; + s_Styles.header.alignment = m_TextAlign; + s_Styles.header.fontStyle = m_TextStyle; + s_Styles.header.fontSize = m_FontSize; + } + } +} diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs.meta b/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs.meta new file mode 100644 index 0000000..493d597 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/UBHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 68539e60785f1d44c8848e40b66f760f +timeCreated: 1456307053 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs b/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs new file mode 100644 index 0000000..4ec9961 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs @@ -0,0 +1,1568 @@ +using UnityEngine; +using System.Collections; +using System; +#if UNITY_EDITOR +using UnityEditor; +using System.IO; +#endif + +[ExecuteInEditMode] +[RequireComponent(typeof(Camera))] +public class UltimateBloom : MonoBehaviour +{ + + public enum BloomQualityPreset + { + Optimized, + Standard, + HighVisuals, + Custom + } + + public enum BloomSamplingQuality + { + VerySmallKernel, // 9 + SmallKernel, // 13 + MediumKernel, // 17 + LargeKernel, // 23 + LargerKernel, // 27 + VeryLargeKernel // 31 + } + + public enum BloomScreenBlendMode + { + Screen = 0, + Add = 1, + } + + public enum HDRBloomMode + { + Auto = 0, + On = 1, + Off = 2, + } + + public enum BlurSampleCount + { + Nine, + Seventeen, + Thirteen, + TwentyThree, + TwentySeven, + ThrirtyOne, + NineCurve, + FourSimple + } + + public enum FlareRendering + { + Sharp, + Blurred, + MoreBlurred + } + + public enum SimpleSampleCount + { + Four, + Nine, + FourCurve, + ThirteenTemporal, + ThirteenTemporalCurve + } + + public enum FlareType + { + Single, + Double + } + + public enum BloomIntensityManagement + { + FilmicCurve, + Threshold + } + + private enum FlareStripeType + { + Anamorphic, + Star, + DiagonalUpright, + DiagonalUpleft + } + + public enum AnamorphicDirection + { + Horizontal, + Vertical + } + + public enum BokehFlareQuality + { + Low, + Medium, + High, + VeryHigh + } + + public enum BlendMode + { + ADD, + SCREEN + } + + public enum SamplingMode + { + Fixed, + HeightRelative + } + + public enum FlareBlurQuality + { + Fast, + Normal, + High + } + + public enum FlarePresets + { + ChoosePreset, + GhostFast, + Ghost1, + Ghost2, + Ghost3, + Bokeh1, + Bokeh2, + Bokeh3 + } + + + + public float m_SamplingMinHeight = 400.0f; + public float[] m_ResSamplingPixelCount = new float[6]; + + public SamplingMode m_SamplingMode = SamplingMode.Fixed; + + public BlendMode m_BlendMode = BlendMode.ADD; + public float m_ScreenMaxIntensity; + + public BloomQualityPreset m_QualityPreset; + + public HDRBloomMode m_HDR = HDRBloomMode.Auto; + + public BloomScreenBlendMode m_ScreenBlendMode = BloomScreenBlendMode.Add; + + public float m_BloomIntensity = 1.0f; + + public float m_BloomThreshhold = 0.5f; + public Color m_BloomThreshholdColor = Color.white; + public int m_DownscaleCount = 5; + public BloomIntensityManagement m_IntensityManagement = BloomIntensityManagement.FilmicCurve; + public float[] m_BloomIntensities; + public Color[] m_BloomColors; + public bool[] m_BloomUsages; + + [SerializeField] + public DeluxeFilmicCurve m_BloomCurve = new DeluxeFilmicCurve(); + + private int m_LastDownscaleCount = 5; + + public bool m_UseLensFlare = false; + public float m_FlareTreshold = 0.8f; + public float m_FlareIntensity = 0.25f; + + public Color m_FlareTint0 = new Color(137 / 255.0f, 82 / 255.0f, 0 / 255.0f); + public Color m_FlareTint1 = new Color(0 / 255.0f, 63 / 255.0f, 126 / 255.0f); + public Color m_FlareTint2 = new Color(72 / 255.0f, 151 / 255.0f, 0 / 255.0f); + public Color m_FlareTint3 = new Color(114 / 255.0f, 35 / 255.0f, 0 / 255.0f); + public Color m_FlareTint4 = new Color(122 / 255.0f, 88 / 255.0f, 0 / 255.0f); + public Color m_FlareTint5 = new Color(137 / 255.0f, 71 / 255.0f, 0 / 255.0f); + public Color m_FlareTint6 = new Color(97 / 255.0f, 139 / 255.0f, 0 / 255.0f); + public Color m_FlareTint7 = new Color(40 / 255.0f, 142 / 255.0f, 0 / 255.0f); + + public float m_FlareGlobalScale = 1.0f; + public Vector4 m_FlareScales = new Vector4(1.0f, 0.6f, 0.5f, 0.4f); + public Vector4 m_FlareScalesNear = new Vector4(1.0f, 0.8f, 0.6f, 0.5f); + public Texture2D m_FlareMask; + public FlareRendering m_FlareRendering = FlareRendering.Blurred; + public FlareType m_FlareType = FlareType.Double; + public Texture2D m_FlareShape; + public FlareBlurQuality m_FlareBlurQuality = FlareBlurQuality.High; + BokehRenderer m_FlareSpriteRenderer; + Mesh[] m_BokehMeshes; + public bool m_UseBokehFlare = false; + public float m_BokehScale = 0.4f; + //public bool m_HighQualityBokehFlare = true; + public BokehFlareQuality m_BokehFlareQuality = BokehFlareQuality.Medium; + + public bool m_UseAnamorphicFlare = false; + public float m_AnamorphicFlareTreshold = 0.8f; + public float m_AnamorphicFlareIntensity = 1.0f; + public int m_AnamorphicDownscaleCount = 3; + public int m_AnamorphicBlurPass = 2; + private int m_LastAnamorphicDownscaleCount; + private RenderTexture[] m_AnamorphicUpscales; + public float[] m_AnamorphicBloomIntensities; + public Color[] m_AnamorphicBloomColors; + public bool[] m_AnamorphicBloomUsages; + public bool m_AnamorphicSmallVerticalBlur = true; + public AnamorphicDirection m_AnamorphicDirection = AnamorphicDirection.Horizontal; + public float m_AnamorphicScale = 3.0f; + + + public bool m_UseStarFlare = false; + public float m_StarFlareTreshol = 0.8f; + public float m_StarFlareIntensity = 1.0f; + public float m_StarScale = 2.0f; + public int m_StarDownscaleCount = 3; + public int m_StarBlurPass = 2; + private int m_LastStarDownscaleCount; + private RenderTexture[] m_StarUpscales; + public float[] m_StarBloomIntensities; + public Color[] m_StarBloomColors; + public bool[] m_StarBloomUsages; + + public bool m_UseLensDust = false; + public float m_DustIntensity = 1.0f; + public Texture2D m_DustTexture; + public float m_DirtLightIntensity = 5.0f; + + public BloomSamplingQuality m_DownsamplingQuality; + public BloomSamplingQuality m_UpsamplingQuality; + public bool m_TemporalStableDownsampling = true; + + + // Misc + public bool m_InvertImage = false; + + + // Materials/shaders + private Material m_FlareMaterial; + private Shader m_FlareShader; + private Material m_SamplingMaterial; + private Shader m_SamplingShader; + private Material m_CombineMaterial; + private Shader m_CombineShader; + private Material m_BrightpassMaterial; + private Shader m_BrightpassShader; + private Material m_FlareMaskMaterial; + private Shader m_FlareMaskShader; + private Material m_MixerMaterial; + private Shader m_MixerShader; + + private Material m_FlareBokehMaterial; + private Shader m_FlareBokehShader; + + // Optimization + public bool m_DirectDownSample = false; + public bool m_DirectUpsample = false; + + // UI + public bool m_UiShowBloomScales = false; + public bool m_UiShowAnamorphicBloomScales = false; + public bool m_UiShowStarBloomScales = false; + public bool m_UiShowHeightSampling = false; + + + public bool m_UiShowBloomSettings = false; + public bool m_UiShowSampling = false; + public bool m_UiShowIntensity = false; + public bool m_UiShowOptimizations = false; + public bool m_UiShowLensDirt = false; + public bool m_UiShowLensFlare = false; + public bool m_UiShowAnamorphic = false; + public bool m_UiShowStar = false; + +#if UNITY_EDITOR + public bool m_UiInitialized = false; + void OnEnable() + { + if (!m_UiInitialized && !Application.isPlaying) + { + m_UiInitialized = true; + IntializeUltimateBloom(); + } + } + + public static string GetAbsoluteAssetPath(string path) + { + UltimateBloomPathLocator locator = ScriptableObject.CreateInstance(); + MonoScript script = MonoScript.FromScriptableObject(locator); + string scriptPath = AssetDatabase.GetAssetPath(script); + ScriptableObject.DestroyImmediate(locator); + return Path.GetDirectoryName(scriptPath) + "/" + path; + } + + private void IntializeUltimateBloom() + { + CreateMaterials(); + + m_BloomUsages[0] = false; + m_AnamorphicBloomUsages[0] = true; + m_AnamorphicBloomUsages[1] = true; + m_StarBloomUsages[0] = true; + m_StarBloomUsages[1] = true; + m_UpsamplingQuality = UltimateBloom.BloomSamplingQuality.SmallKernel; + + string flareMaskPath = GetAbsoluteAssetPath("Graphics/FlareMask.png"); + Texture2D flareMask = (Texture2D)AssetDatabase.LoadAssetAtPath(flareMaskPath, typeof(Texture2D)); + m_FlareMask = flareMask; + + string bokehPath = GetAbsoluteAssetPath("Graphics/Bokeh.png"); + Texture2D bokeh = (Texture2D)AssetDatabase.LoadAssetAtPath(bokehPath, typeof(Texture2D)); + m_FlareShape = bokeh; + + string dustPath = GetAbsoluteAssetPath("DirtTextureSample/Dust.tif"); + Texture2D dust = (Texture2D)AssetDatabase.LoadAssetAtPath(dustPath, typeof(Texture2D)); + m_DustTexture = dust; + + m_BloomCurve.UpdateCoefficients(); + } +#endif + + + private void DestroyMaterial(Material mat) + { + if (mat) + { + DestroyImmediate(mat); + mat = null; + } + } + + private void LoadShader(ref Material material, ref Shader shader, string shaderPath) + { + if (shader != null) + return; + shader = Shader.Find(shaderPath); + if (shader == null) + { + Debug.LogError("Shader not found: " + shaderPath); + return; + } + + + if (!shader.isSupported) + { + Debug.LogError("Shader contains error: " + shaderPath + "\n Maybe include path? Try rebuilding the shader."); + return; + } + + material = CreateMaterial(shader); + } + + public void CreateMaterials() + { + //m_FlareType = FlareType.Double; + int maxScaleCount = 8; + if (m_BloomIntensities == null || m_BloomIntensities.Length < maxScaleCount) + { + m_BloomIntensities = new float[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_BloomIntensities[i] = 1.0f; + } + if (m_BloomColors == null || m_BloomColors.Length < maxScaleCount) + { + m_BloomColors = new Color[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_BloomColors[i] = Color.white; + } + if (m_BloomUsages == null || m_BloomUsages.Length < maxScaleCount ) + { + m_BloomUsages = new bool[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_BloomUsages[i] = true; + } + + if (m_AnamorphicBloomIntensities == null || m_AnamorphicBloomIntensities.Length < maxScaleCount) + { + m_AnamorphicBloomIntensities = new float[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_AnamorphicBloomIntensities[i] = 1.0f; + } + if (m_AnamorphicBloomColors == null || m_AnamorphicBloomColors.Length < maxScaleCount) + { + m_AnamorphicBloomColors = new Color[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_AnamorphicBloomColors[i] = Color.white; + } + if (m_AnamorphicBloomUsages == null || m_AnamorphicBloomUsages.Length < maxScaleCount ) + { + m_AnamorphicBloomUsages = new bool[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_AnamorphicBloomUsages[i] = true; + } + + if (m_StarBloomIntensities == null || m_StarBloomIntensities.Length < maxScaleCount) + { + m_StarBloomIntensities = new float[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_StarBloomIntensities[i] = 1.0f; + } + if (m_StarBloomColors == null || m_StarBloomColors.Length < maxScaleCount) + { + m_StarBloomColors = new Color[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_StarBloomColors[i] = Color.white; + } + if (m_StarBloomUsages == null || m_StarBloomUsages.Length < maxScaleCount) + { + m_StarBloomUsages = new bool[maxScaleCount]; + for (int i = 0; i < 8; ++i) + m_StarBloomUsages[i] = true; + } + + if (m_FlareSpriteRenderer == null && m_FlareShape != null && m_UseBokehFlare) + { + if (m_FlareSpriteRenderer != null) + m_FlareSpriteRenderer.Clear(ref m_BokehMeshes); + + m_FlareSpriteRenderer = new BokehRenderer(); + } + + if (m_SamplingMaterial == null) + { + m_DownSamples = new RenderTexture[GetNeededDownsamples()]; + m_UpSamples = new RenderTexture[m_DownscaleCount]; + m_AnamorphicUpscales = new RenderTexture[m_AnamorphicDownscaleCount]; + m_StarUpscales = new RenderTexture[m_StarDownscaleCount]; + } + + string flareShaderPath = m_FlareType == FlareType.Single ? "Hidden/Ultimate/FlareSingle" : "Hidden/Ultimate/FlareDouble"; + LoadShader(ref m_FlareMaterial, ref m_FlareShader, flareShaderPath); + + LoadShader(ref m_SamplingMaterial, ref m_SamplingShader, "Hidden/Ultimate/Sampling"); + LoadShader(ref m_BrightpassMaterial, ref m_BrightpassShader, "Hidden/Ultimate/BrightpassMask"); + LoadShader(ref m_FlareMaskMaterial, ref m_FlareMaskShader, "Hidden/Ultimate/FlareMask"); + LoadShader(ref m_MixerMaterial, ref m_MixerShader, "Hidden/Ultimate/BloomMixer"); + LoadShader(ref m_FlareBokehMaterial, ref m_FlareBokehShader, "Hidden/Ultimate/FlareMesh"); + + bool useDustOrFlare = m_UseLensDust || m_UseLensFlare || m_UseAnamorphicFlare || m_UseStarFlare; + + string combineShaderPath = "Hidden/Ultimate/BloomCombine"; + if (useDustOrFlare) + combineShaderPath = "Hidden/Ultimate/BloomCombineFlareDirt"; + + LoadShader(ref m_CombineMaterial, ref m_CombineShader, combineShaderPath); + } + + private Material CreateMaterial(Shader shader) + { + if (!shader) + return null; + Material m = new Material(shader); + m.hideFlags = HideFlags.HideAndDontSave; + return m; + } + + void OnDisable() + { + ForceShadersReload(); + if (m_FlareSpriteRenderer != null) + { + m_FlareSpriteRenderer.Clear(ref m_BokehMeshes); + m_FlareSpriteRenderer = null; + } + } + + public void ForceShadersReload() + { + DestroyMaterial(m_FlareMaterial); m_FlareMaterial = null; m_FlareShader = null; + DestroyMaterial(m_SamplingMaterial); m_SamplingMaterial = null; m_SamplingShader = null; + DestroyMaterial(m_CombineMaterial); m_CombineMaterial = null; m_CombineShader = null; + DestroyMaterial(m_BrightpassMaterial); m_BrightpassMaterial = null; m_BrightpassShader = null; + DestroyMaterial(m_FlareBokehMaterial); m_FlareBokehMaterial = null; m_FlareBokehShader = null; + DestroyMaterial(m_FlareMaskMaterial); m_FlareMaskMaterial = null; m_FlareMaskShader = null; + DestroyMaterial(m_MixerMaterial); m_MixerMaterial = null; m_MixerShader = null; + } + + + private RenderTexture[] m_DownSamples; + private RenderTexture[] m_UpSamples; + + int GetNeededDownsamples() + { + int m = Mathf.Max(m_DownscaleCount, m_UseAnamorphicFlare ? m_AnamorphicDownscaleCount : 0); + m = Mathf.Max(m, m_UseLensFlare ? GetGhostBokehLayer() + 1 : 0); + m = Mathf.Max(m, m_UseStarFlare ? m_StarDownscaleCount : 0); + + return m; + } + + private RenderTextureFormat m_Format; + + + bool[] m_BufferUsage; + void ComputeBufferOptimization() + { + if (m_BufferUsage == null) + m_BufferUsage = new bool[m_DownSamples.Length]; + if (m_BufferUsage.Length != m_DownSamples.Length) + m_BufferUsage = new bool[m_DownSamples.Length]; + + for (int i = 0; i < m_BufferUsage.Length; ++i) + m_BufferUsage[i] = false; + + for (int i = 0; i < m_BufferUsage.Length; ++i) + m_BufferUsage[i] = m_BloomUsages[i] ? true : m_BufferUsage[i]; + + if (m_UseAnamorphicFlare) + for (int i = 0; i < m_BufferUsage.Length; ++i) + m_BufferUsage[i] = m_AnamorphicBloomUsages[i] ? true : m_BufferUsage[i]; + + if (m_UseStarFlare) + for (int i = 0; i < m_BufferUsage.Length; ++i) + m_BufferUsage[i] = m_StarBloomUsages[i] ? true : m_BufferUsage[i]; + } + + int GetGhostBokehLayer() + { + if (m_UseBokehFlare && m_FlareShape != null) + { + if (m_BokehFlareQuality == BokehFlareQuality.VeryHigh) + return 1; + if (m_BokehFlareQuality == BokehFlareQuality.High) + return 2; + if (m_BokehFlareQuality == BokehFlareQuality.Medium) + return 3; + if (m_BokehFlareQuality == BokehFlareQuality.Low) + return 4; + } + return 0;// Ghost + } + + BlurSampleCount GetUpsamplingSize() + { + if (m_SamplingMode == SamplingMode.Fixed) + { + BlurSampleCount upsamplingCount = BlurSampleCount.ThrirtyOne; + if (m_UpsamplingQuality == BloomSamplingQuality.VerySmallKernel) + upsamplingCount = BlurSampleCount.Nine; + else if (m_UpsamplingQuality == BloomSamplingQuality.SmallKernel) + upsamplingCount = BlurSampleCount.Thirteen; + else if (m_UpsamplingQuality == BloomSamplingQuality.MediumKernel) + upsamplingCount = BlurSampleCount.Seventeen; + else if (m_UpsamplingQuality == BloomSamplingQuality.LargeKernel) + upsamplingCount = BlurSampleCount.TwentyThree; + else if (m_UpsamplingQuality == BloomSamplingQuality.LargerKernel) + upsamplingCount = BlurSampleCount.TwentySeven; + return upsamplingCount; + } + + float pixelCount = Screen.height;//Screen.width * Screen.height; + int nearestIdx = 0; + float nearestDist = float.MaxValue; + for (int i = 0; i < m_ResSamplingPixelCount.Length; ++i) + { + float dist = Math.Abs(pixelCount - m_ResSamplingPixelCount[i]); + if (dist < nearestDist) + { + nearestDist = dist; + nearestIdx = i; + } + } + + if (nearestIdx == 0) + return BlurSampleCount.Nine; + if (nearestIdx == 1) + return BlurSampleCount.Thirteen; + if (nearestIdx == 2) + return BlurSampleCount.Seventeen; + if (nearestIdx == 3) + return BlurSampleCount.TwentyThree; + if (nearestIdx == 4) + return BlurSampleCount.TwentySeven; + + return BlurSampleCount.ThrirtyOne; + } + + + public void ComputeResolutionRelativeData() + { + float currentRes = m_SamplingMinHeight; + float currentSampling = 9.0f; + for (int i = 0; i < m_ResSamplingPixelCount.Length; ++i) + { + m_ResSamplingPixelCount[i] = currentRes; + + float nextSampling = currentSampling + 4.0f; + float ratio = nextSampling / currentSampling; + currentRes *= ratio; + currentSampling = nextSampling; + } + } + + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + + // Determine Texture Format + bool doHdr = false; + if (m_HDR == HDRBloomMode.Auto) + doHdr = source.format == RenderTextureFormat.ARGBHalf && GetComponent().hdr; + else + doHdr = m_HDR == HDRBloomMode.On; + + m_Format = (doHdr) ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.Default; + + + if (m_DownSamples != null) + { + if (m_DownSamples.Length != GetNeededDownsamples()) + { + OnDisable(); + } + } + + + if (m_LastDownscaleCount != m_DownscaleCount + || m_LastAnamorphicDownscaleCount != m_AnamorphicDownscaleCount + || m_LastStarDownscaleCount != m_StarDownscaleCount) + { + OnDisable(); + } + m_LastDownscaleCount = m_DownscaleCount; + m_LastAnamorphicDownscaleCount = m_AnamorphicDownscaleCount; + m_LastStarDownscaleCount = m_StarDownscaleCount; + + CreateMaterials(); + + + + if (m_DirectDownSample || m_DirectUpsample) + ComputeBufferOptimization(); + + bool debugFlareShape = false; + + if (m_SamplingMode == SamplingMode.HeightRelative) + ComputeResolutionRelativeData(); + + + ////////////////////////////////// + // 1. Bright pass + ////////////////////////////////// + RenderTexture brightTexture = RenderTexture.GetTemporary(source.width, source.height, 0, m_Format); + brightTexture.filterMode = FilterMode.Bilinear; + + if (m_IntensityManagement == BloomIntensityManagement.Threshold) + BrightPass(source, brightTexture, m_BloomThreshhold * m_BloomThreshholdColor); + else + { + m_BloomCurve.UpdateCoefficients(); + Graphics.Blit(source, brightTexture); + } + + + + ////////////////////////////////// + // 2. Downscale source texture + ////////////////////////////////// + if (m_IntensityManagement == BloomIntensityManagement.Threshold) + CachedDownsample(brightTexture, m_DownSamples, null, doHdr); + else + CachedDownsample(brightTexture, m_DownSamples, m_BloomCurve, doHdr); + + ////////////////////////////////// + // 3. Upsample + ////////////////////////////////// + // Upsampling quality + BlurSampleCount upsamplingCount = GetUpsamplingSize(); + // Upsample + CachedUpsample(m_DownSamples, m_UpSamples, source.width, source.height, upsamplingCount); + // Release unused upsamples + /* if (m_DirectUpsample) + { + for (int i = 1; i < m_UpSamples.Length; ++i) + if (m_BufferUsage[i]) + RenderTexture.ReleaseTemporary(m_UpSamples[i]); + } + else*/ + + + //for (int i = 1; i < m_UpSamples.Length; ++i) + // RenderTexture.ReleaseTemporary(m_UpSamples[i]); + + + ////////////////////////////////// + // Optional: Ghost lens flare + ////////////////////////////////// + + Texture flareRT = Texture2D.blackTexture; + RenderTexture flareShapeBuffer = null; + if (m_UseLensFlare) + { + int bokehQuality = GetGhostBokehLayer(); + + int flareWidth = source.width / (int)Mathf.Pow(2.0f, bokehQuality); + int flareHeigth = source.height / (int)Mathf.Pow(2.0f, bokehQuality); + + if (m_FlareShape != null && m_UseBokehFlare) + { + float size = 15.0f; + if (m_BokehFlareQuality == BokehFlareQuality.Medium) + size *= 2; + if (m_BokehFlareQuality == BokehFlareQuality.High) + size *= 4; + if (m_BokehFlareQuality == BokehFlareQuality.VeryHigh) + size *= 8; + + size *= m_BokehScale; + m_FlareSpriteRenderer.SetMaterial(m_FlareBokehMaterial); + m_FlareSpriteRenderer.RebuildMeshIfNeeded(flareWidth, flareHeigth, 1.0f / flareWidth * size, 1.0f / flareHeigth * size, ref m_BokehMeshes); + m_FlareSpriteRenderer.SetTexture(m_FlareShape); + + flareShapeBuffer = RenderTexture.GetTemporary(source.width / 4 , source.height / 4 , 0, m_Format); + + int bokehTargetSize = bokehQuality; + RenderTexture flareBrightTexture = RenderTexture.GetTemporary(source.width / (int)Mathf.Pow(2.0f, (bokehTargetSize + 1)), source.height / (int)Mathf.Pow(2.0f, (bokehTargetSize + 1)), 0, m_Format); + BrightPass(m_DownSamples[bokehQuality], flareBrightTexture, m_FlareTreshold * Vector4.one); + m_FlareSpriteRenderer.RenderFlare(flareBrightTexture, flareShapeBuffer, m_UseBokehFlare ? 1.0f : m_FlareIntensity, ref m_BokehMeshes); + RenderTexture.ReleaseTemporary(flareBrightTexture); + + RenderTexture maskFlare = RenderTexture.GetTemporary(flareShapeBuffer.width, flareShapeBuffer.height, 0, m_Format); + m_FlareMaskMaterial.SetTexture("_MaskTex", m_FlareMask); + Graphics.Blit(flareShapeBuffer, maskFlare, m_FlareMaskMaterial, 0); + + RenderTexture.ReleaseTemporary(flareShapeBuffer); flareShapeBuffer = null; + RenderFlares(maskFlare, source, ref flareRT); + RenderTexture.ReleaseTemporary(maskFlare); + } + else + { + //BrightPassWithMask(source, brightTexture, m_FlareTreshold * Vector4.one, m_FlareMask); + //RenderFlares( brightTexture, source, ref flareRT); + int ghostLayer = GetGhostBokehLayer(); + RenderTexture flareSource = m_DownSamples[ghostLayer]; + RenderTexture flareBrightTexture = RenderTexture.GetTemporary(flareSource.width, flareSource.height, 0, m_Format); + + BrightPassWithMask(m_DownSamples[ghostLayer], flareBrightTexture, m_FlareTreshold * Vector4.one, m_FlareMask); + RenderFlares(flareBrightTexture, source, ref flareRT); + + RenderTexture.ReleaseTemporary(flareBrightTexture); + } + + + } + + if (!m_UseLensFlare && m_FlareSpriteRenderer != null) + m_FlareSpriteRenderer.Clear(ref m_BokehMeshes); + + ////////////////////////////////// + // Optional: Anamorphic lens flare + ////////////////////////////////// + if (m_UseAnamorphicFlare) + { + RenderTexture anamorphicResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.Anamorphic); + + if (anamorphicResult != null) + { + if (m_UseLensFlare) + { + RenderTextureAdditive(anamorphicResult, (RenderTexture)flareRT, 1.0f); + RenderTexture.ReleaseTemporary(anamorphicResult); + } + else + { + flareRT = anamorphicResult; + } + } + } + + ////////////////////////////////// + // Optional: Star lens flare + ////////////////////////////////// + if (m_UseStarFlare) + { + //RenderTexture starResult = RenderStar(m_DownSamples, upsamplingCount, source.width, source.height); + RenderTexture starResult = null; + + if (m_StarBlurPass == 1) + { + starResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.Star); + + if (starResult != null) + { + if (m_UseLensFlare || m_UseAnamorphicFlare) + { + RenderTextureAdditive(starResult, (RenderTexture)flareRT, m_StarFlareIntensity); + } + else + { + flareRT = RenderTexture.GetTemporary(source.width, source.height, 0, m_Format); + BlitIntensity(starResult, (RenderTexture)flareRT, m_StarFlareIntensity); + } + + RenderTexture.ReleaseTemporary(starResult); + } + } + else + { + if (m_UseLensFlare || m_UseAnamorphicFlare) + { + starResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.DiagonalUpright); + if (starResult != null) + { + RenderTextureAdditive(starResult, (RenderTexture)flareRT, m_StarFlareIntensity); + RenderTexture.ReleaseTemporary(starResult); + starResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.DiagonalUpleft); + + RenderTextureAdditive(starResult, (RenderTexture)flareRT, m_StarFlareIntensity); + RenderTexture.ReleaseTemporary(starResult); + } + } + else + { + starResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.DiagonalUpleft); + if (starResult != null) + { + RenderTexture tmpStarResult = RenderStripe(m_DownSamples, upsamplingCount, source.width, source.height, FlareStripeType.DiagonalUpright); + CombineAdditive(tmpStarResult, starResult, m_StarFlareIntensity, m_StarFlareIntensity); + RenderTexture.ReleaseTemporary(tmpStarResult); + + flareRT = starResult; + } + } + } + + + } + + // Release downsamples + if (m_DirectDownSample) + for (int i = 0; i < m_DownSamples.Length; ++i) + { + if (m_BufferUsage[i]) + RenderTexture.ReleaseTemporary(m_DownSamples[i]); + } + else + for (int i = 0; i < m_DownSamples.Length; ++i) + RenderTexture.ReleaseTemporary(m_DownSamples[i]); + + ////////////////////////////////// + // Combine pass + ////////////////////////////////// + m_CombineMaterial.SetFloat("_Intensity", m_BloomIntensity); + + m_CombineMaterial.SetFloat("_FlareIntensity", m_FlareIntensity); + m_CombineMaterial.SetTexture("_ColorBuffer", source); + m_CombineMaterial.SetTexture("_FlareTexture", flareRT); + m_CombineMaterial.SetTexture("_AdditiveTexture", m_UseLensDust ? m_DustTexture : Texture2D.whiteTexture); + m_CombineMaterial.SetTexture("_brightTexture", brightTexture); + if (m_UseLensDust) + { + m_CombineMaterial.SetFloat("_DirtIntensity", m_DustIntensity); + m_CombineMaterial.SetFloat("_DirtLightIntensity", m_DirtLightIntensity); + } + else + { + m_CombineMaterial.SetFloat("_DirtIntensity", 1.0f); + m_CombineMaterial.SetFloat("_DirtLightIntensity", 0.0f); + } + + + if (m_BlendMode == BlendMode.SCREEN) + { + m_CombineMaterial.SetFloat("_ScreenMaxIntensity", m_ScreenMaxIntensity); + } + + if (m_InvertImage) + Graphics.Blit(m_LastBloomUpsample, destination, m_CombineMaterial, 1); + else + Graphics.Blit(m_LastBloomUpsample, destination, m_CombineMaterial, 0); + + + for (int i = 0; i < m_UpSamples.Length; ++i) + if (m_UpSamples[i] != null) + RenderTexture.ReleaseTemporary(m_UpSamples[i]); + + //Graphics.Blit(m_UpSamples[0], destination); + + ////////////////////////////////// + // Cleaning + ////////////////////////////////// + + if (debugFlareShape) + Graphics.Blit(flareShapeBuffer, destination); + + + if (m_UseLensFlare || m_UseAnamorphicFlare || m_UseStarFlare) + if (flareRT != null && flareRT is RenderTexture) + RenderTexture.ReleaseTemporary((RenderTexture)flareRT); + + RenderTexture.ReleaseTemporary(brightTexture); + + if (m_FlareShape != null && m_UseBokehFlare && flareShapeBuffer != null) + { + RenderTexture.ReleaseTemporary(flareShapeBuffer); + } + } + + RenderTexture RenderStar(RenderTexture[] sources, BlurSampleCount upsamplingCount, int sourceWidth, int sourceHeight) + { + for (int i = m_StarUpscales.Length - 1; i >= 0; --i) + { + m_StarUpscales[i] = RenderTexture.GetTemporary(sourceWidth / (int)Mathf.Pow(2.0f, i), sourceHeight / (int)Mathf.Pow(2.0f, i), 0, m_Format); + m_StarUpscales[i].filterMode = FilterMode.Bilinear; + + float horizontalBlur = 1.0f / sources[i].width; + float verticalBlur = 1.0f / sources[i].height; + + if (i < m_StarDownscaleCount - 1) + GaussianBlur2(sources[i], m_StarUpscales[i], horizontalBlur * m_StarScale, verticalBlur * m_StarScale, m_StarUpscales[i + 1], upsamplingCount, Color.white, 1.0f); + else + GaussianBlur2(sources[i], m_StarUpscales[i], horizontalBlur * m_StarScale, verticalBlur * m_StarScale, null, upsamplingCount, Color.white, 1.0f); + } + + for (int i = 1; i < m_StarUpscales.Length; ++i) + if (m_StarUpscales[i] != null) + RenderTexture.ReleaseTemporary(m_StarUpscales[i]); + + return m_StarUpscales[0]; + + } + + delegate void BlurFunction(RenderTexture source, RenderTexture destination, float horizontalBlur, float verticalBlur, RenderTexture additiveTexture, BlurSampleCount sampleCount, Color tint, float intensity); + + RenderTexture RenderStripe(RenderTexture[] sources, BlurSampleCount upsamplingCount, int sourceWidth, int sourceHeight, FlareStripeType type) + { + + + + //BlurFunction blur = GaussianBlur1; + //int nbUpscales = m_AnamorphicUpscales.Length; + RenderTexture[] upscales = m_AnamorphicUpscales; + bool[] usages = m_AnamorphicBloomUsages; + float[] intensities = m_AnamorphicBloomIntensities; + Color[] tints = m_AnamorphicBloomColors; + bool antiJitter = m_AnamorphicSmallVerticalBlur; + float blurPass = m_AnamorphicBlurPass; + float scale = m_AnamorphicScale; + float globalIntensity = m_AnamorphicFlareIntensity; + + float horiMul = 1.0f; + float vertiMul = 0.0f; + + if (m_AnamorphicDirection == AnamorphicDirection.Vertical) + { + horiMul = 0.0f; + vertiMul = 1.0f; + } + + if (type != FlareStripeType.Anamorphic) + { + // if (type == FlareStripeType.Star) + // blur = GaussianBlur2; + + //nbUpscales = m_StarUpscales.Length; + upscales = m_StarUpscales; + usages = m_StarBloomUsages; + intensities = m_StarBloomIntensities; + tints = m_StarBloomColors; + antiJitter = false; + blurPass = m_StarBlurPass; + scale = m_StarScale; + globalIntensity = m_StarFlareIntensity; + + if (type == FlareStripeType.DiagonalUpleft) + vertiMul = -1.0f; + else + vertiMul = 1.0f; + } + + for (int i = 0; i < upscales.Length; ++i) + upscales[i] = null; + + RenderTexture additiveTexture = null; + for (int i = upscales.Length - 1; i >= 0; --i) + { + if (sources[i] == null && m_DirectUpsample) + continue; + if (!usages[i] && m_DirectUpsample) + continue; + + + upscales[i] = RenderTexture.GetTemporary(sourceWidth / (int)Mathf.Pow(2.0f, i), sourceHeight / (int)Mathf.Pow(2.0f, i), 0, m_Format); + upscales[i].filterMode = FilterMode.Bilinear; + + float horizontalBlur = 1.0f / upscales[i].width; + float verticalBlur = 1.0f / upscales[i].height; + + RenderTexture source = sources[i]; + RenderTexture dest = upscales[i]; + + if (!usages[i]) + { + if (additiveTexture != null) + { + if (antiJitter) + GaussianBlur1(additiveTexture, dest, m_AnamorphicDirection == AnamorphicDirection.Vertical ? horizontalBlur : 0.0f, m_AnamorphicDirection == AnamorphicDirection.Horizontal ? verticalBlur : 0.0f, null, BlurSampleCount.FourSimple, Color.white, 1.0f); + else + Graphics.Blit(additiveTexture, dest); + } + else + Graphics.Blit(Texture2D.blackTexture, dest); + + additiveTexture = upscales[i]; + continue; + } + + RenderTexture antiJitterBuffer = null; + if (antiJitter && additiveTexture != null) + { + antiJitterBuffer = RenderTexture.GetTemporary(dest.width, dest.height, 0, m_Format); + GaussianBlur1(additiveTexture, antiJitterBuffer, m_AnamorphicDirection == AnamorphicDirection.Vertical ? horizontalBlur : 0.0f, m_AnamorphicDirection == AnamorphicDirection.Horizontal ? verticalBlur : 0.0f, null, BlurSampleCount.FourSimple, Color.white, 1.0f); + additiveTexture = antiJitterBuffer; + } + + if (blurPass == 1) + { + if (type != FlareStripeType.Anamorphic) + GaussianBlur2(source, dest, horizontalBlur * scale * horiMul, verticalBlur * scale * vertiMul, additiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + else + GaussianBlur1(source, dest, horizontalBlur * scale * horiMul, verticalBlur * scale * vertiMul, additiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + } + else + { + RenderTexture tmp = RenderTexture.GetTemporary(dest.width, dest.height, 0, m_Format); + bool lastTargetIsTmp = false; + for (int j = 0; j < blurPass; ++j) + { + RenderTexture finalAdditiveTexture = (j == blurPass - 1) ? additiveTexture : null; + + if (j == 0) + { + if (type != FlareStripeType.Anamorphic) + GaussianBlur2(source, tmp, horizontalBlur * scale * horiMul, verticalBlur * scale * vertiMul, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + else + GaussianBlur1(source, tmp, horizontalBlur * scale * horiMul, verticalBlur * scale * vertiMul, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + } + else + { + horizontalBlur = 1.0f / dest.width; + verticalBlur = 1.0f / dest.height; + if (j % 2 == 1) + { + if (type != FlareStripeType.Anamorphic) + GaussianBlur2(tmp, dest, horizontalBlur * scale * horiMul * 1.5f, verticalBlur * scale * vertiMul * 1.5f, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + else + GaussianBlur1(tmp, dest, horizontalBlur * scale * horiMul * 1.5f, verticalBlur * scale * vertiMul * 1.5f, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + lastTargetIsTmp = false; + } + else + { + if (type != FlareStripeType.Anamorphic) + GaussianBlur2(dest, tmp, horizontalBlur * scale * horiMul * 1.5f, verticalBlur * scale * vertiMul * 1.5f, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + else + GaussianBlur1(dest, tmp, horizontalBlur * scale * horiMul * 1.5f, verticalBlur * scale * vertiMul * 1.5f, finalAdditiveTexture, upsamplingCount, tints[i], intensities[i] * globalIntensity); + lastTargetIsTmp = true; + } + } + } + if (lastTargetIsTmp) + Graphics.Blit(tmp, dest); + + if (antiJitterBuffer != null) + RenderTexture.ReleaseTemporary(antiJitterBuffer); + + + RenderTexture.ReleaseTemporary(tmp); + + } + + additiveTexture = upscales[i]; + } + + + + RenderTexture firstFound = null; + for (int i = 0; i < upscales.Length; ++i) + if (upscales[i] != null) + if (firstFound == null) firstFound = upscales[i]; + else RenderTexture.ReleaseTemporary(upscales[i]); + + return firstFound; + } + + void RenderFlares(RenderTexture brightTexture, RenderTexture source,ref Texture flareRT) + { + + flareRT = RenderTexture.GetTemporary(source.width, source.height, 0, m_Format); + flareRT.filterMode = FilterMode.Bilinear; + m_FlareMaterial.SetVector("_FlareScales", m_FlareScales * m_FlareGlobalScale); + m_FlareMaterial.SetVector("_FlareScalesNear", m_FlareScalesNear * m_FlareGlobalScale); + m_FlareMaterial.SetVector("_FlareTint0", m_FlareTint0); + m_FlareMaterial.SetVector("_FlareTint1", m_FlareTint1); + m_FlareMaterial.SetVector("_FlareTint2", m_FlareTint2); + m_FlareMaterial.SetVector("_FlareTint3", m_FlareTint3); + m_FlareMaterial.SetVector("_FlareTint4", m_FlareTint4); + m_FlareMaterial.SetVector("_FlareTint5", m_FlareTint5); + m_FlareMaterial.SetVector("_FlareTint6", m_FlareTint6); + m_FlareMaterial.SetVector("_FlareTint7", m_FlareTint7); + m_FlareMaterial.SetFloat("_Intensity", m_FlareIntensity); + //Graphics.Blit(brightTexture, (RenderTexture)flareRT, m_BloomMaterial, 8); + if (m_FlareRendering == FlareRendering.Sharp) + { + RenderTexture HalfTmp = RenderTexture.GetTemporary(source.width / 2, source.height / 2, 0, m_Format); + HalfTmp.filterMode = FilterMode.Bilinear; + + RenderSimple(brightTexture, HalfTmp, 1.0f / brightTexture.width, 1.0f / brightTexture.height, SimpleSampleCount.Four); + + Graphics.Blit(HalfTmp, (RenderTexture)flareRT, m_FlareMaterial, 0); + + RenderTexture.ReleaseTemporary(HalfTmp); + + return; + } + + // Blur flare + + if (m_FlareBlurQuality == FlareBlurQuality.Fast) + { + RenderTexture HalfFlareRT = RenderTexture.GetTemporary(brightTexture.width / 2, brightTexture.height / 2, 0, m_Format); + HalfFlareRT.filterMode = FilterMode.Bilinear; + + RenderTexture QuarterFlareRT = RenderTexture.GetTemporary(brightTexture.width / 4, brightTexture.height / 4, 0, m_Format); + QuarterFlareRT.filterMode = FilterMode.Bilinear; + + Graphics.Blit(brightTexture, HalfFlareRT, m_FlareMaterial, 0); + + if (m_FlareRendering == FlareRendering.Blurred) + { + GaussianBlurSeparate(HalfFlareRT, (RenderTexture)QuarterFlareRT, 1.0f / HalfFlareRT.width, 1.0f / HalfFlareRT.height, null, BlurSampleCount.Thirteen, Color.white, 1.0f); + RenderSimple(QuarterFlareRT, (RenderTexture)flareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, SimpleSampleCount.Four); + } + else if (m_FlareRendering == FlareRendering.MoreBlurred) + { + GaussianBlurSeparate(HalfFlareRT, (RenderTexture)QuarterFlareRT, 1.0f / HalfFlareRT.width, 1.0f / HalfFlareRT.height, null, BlurSampleCount.ThrirtyOne, Color.white, 1.0f); + RenderSimple(QuarterFlareRT, (RenderTexture)flareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, SimpleSampleCount.Four); + } + RenderTexture.ReleaseTemporary(HalfFlareRT); + RenderTexture.ReleaseTemporary(QuarterFlareRT); + return; + } + else if (m_FlareBlurQuality == FlareBlurQuality.Normal) + { + RenderTexture HalfFlareRT = RenderTexture.GetTemporary(brightTexture.width / 2, brightTexture.height / 2, 0, m_Format); + HalfFlareRT.filterMode = FilterMode.Bilinear; + + RenderTexture QuarterFlareRT = RenderTexture.GetTemporary(brightTexture.width / 4, brightTexture.height / 4, 0, m_Format); + QuarterFlareRT.filterMode = FilterMode.Bilinear; + + RenderTexture QuarterFlareRT2 = RenderTexture.GetTemporary(brightTexture.width / 4, brightTexture.height / 4, 0, m_Format); + QuarterFlareRT2.filterMode = FilterMode.Bilinear; + + + RenderSimple(brightTexture, HalfFlareRT, 1.0f / brightTexture.width, 1.0f / brightTexture.height, SimpleSampleCount.Four); + RenderSimple(HalfFlareRT, QuarterFlareRT, 1.0f / HalfFlareRT.width, 1.0f / HalfFlareRT.height, SimpleSampleCount.Four); + + Graphics.Blit(QuarterFlareRT, QuarterFlareRT2, m_FlareMaterial, 0); + + + if (m_FlareRendering == FlareRendering.Blurred) + { + GaussianBlurSeparate(QuarterFlareRT2, (RenderTexture)QuarterFlareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, null, BlurSampleCount.Thirteen, Color.white, 1.0f); + RenderSimple(QuarterFlareRT, (RenderTexture)flareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, SimpleSampleCount.Four); + } + else if (m_FlareRendering == FlareRendering.MoreBlurred) + { + GaussianBlurSeparate(QuarterFlareRT2, (RenderTexture)QuarterFlareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, null, BlurSampleCount.ThrirtyOne, Color.white, 1.0f); + RenderSimple(QuarterFlareRT, (RenderTexture)flareRT, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, SimpleSampleCount.Four); + } + + + RenderTexture.ReleaseTemporary(HalfFlareRT); + RenderTexture.ReleaseTemporary(QuarterFlareRT); + RenderTexture.ReleaseTemporary(QuarterFlareRT2); + } + else if (m_FlareBlurQuality == FlareBlurQuality.High) + { + RenderTexture HalfFlareRT = RenderTexture.GetTemporary(brightTexture.width / 2, brightTexture.height / 2, 0, m_Format); + HalfFlareRT.filterMode = FilterMode.Bilinear; + + RenderTexture QuarterFlareRT = RenderTexture.GetTemporary(HalfFlareRT.width / 2, HalfFlareRT.height / 2, 0, m_Format); + QuarterFlareRT.filterMode = FilterMode.Bilinear; + + RenderTexture HFlareRT1 = RenderTexture.GetTemporary(QuarterFlareRT.width / 2, QuarterFlareRT.height / 2, 0, m_Format); + HFlareRT1.filterMode = FilterMode.Bilinear; + + RenderTexture HFlareRT2 = RenderTexture.GetTemporary(QuarterFlareRT.width / 2, QuarterFlareRT.height / 2, 0, m_Format); + HFlareRT2.filterMode = FilterMode.Bilinear; + + + RenderSimple(brightTexture, HalfFlareRT, 1.0f / brightTexture.width, 1.0f / brightTexture.height, SimpleSampleCount.Four); + RenderSimple(HalfFlareRT, QuarterFlareRT, 1.0f / HalfFlareRT.width, 1.0f / HalfFlareRT.height, SimpleSampleCount.Four); + RenderSimple(QuarterFlareRT, HFlareRT1, 1.0f / QuarterFlareRT.width, 1.0f / QuarterFlareRT.height, SimpleSampleCount.Four); + + Graphics.Blit(HFlareRT1, HFlareRT2, m_FlareMaterial, 0); + + + if (m_FlareRendering == FlareRendering.Blurred) + { + GaussianBlurSeparate(HFlareRT2, (RenderTexture)HFlareRT1, 1.0f / HFlareRT1.width, 1.0f / HFlareRT1.height, null, BlurSampleCount.Thirteen, Color.white, 1.0f); + RenderSimple(HFlareRT1, (RenderTexture)flareRT, 1.0f / HFlareRT1.width, 1.0f / HFlareRT1.height, SimpleSampleCount.Four); + } + else if (m_FlareRendering == FlareRendering.MoreBlurred) + { + GaussianBlurSeparate(HFlareRT2, (RenderTexture)HFlareRT1, 1.0f / HFlareRT1.width, 1.0f / HFlareRT1.height, null, BlurSampleCount.ThrirtyOne, Color.white, 1.0f); + RenderSimple(HFlareRT1, (RenderTexture)flareRT, 1.0f / HFlareRT1.width, 1.0f / HFlareRT1.height, SimpleSampleCount.Four); + } + + + RenderTexture.ReleaseTemporary(HalfFlareRT); + RenderTexture.ReleaseTemporary(QuarterFlareRT); + RenderTexture.ReleaseTemporary(HFlareRT1); + RenderTexture.ReleaseTemporary(HFlareRT2); + } + + + + } + + RenderTexture m_LastBloomUpsample; + + void CachedUpsample(RenderTexture[] sources, RenderTexture[] destinations, int originalWidth, int originalHeight, BlurSampleCount upsamplingCount) + { + RenderTexture lastUpsample = null; + + for (int i = 0; i < m_UpSamples.Length; ++i) + m_UpSamples[i] = null; + + for (int i = destinations.Length - 1; i >= 0; --i) + { + if (m_BloomUsages[i] || !m_DirectUpsample) + { + m_UpSamples[i] = RenderTexture.GetTemporary(originalWidth / (int)Mathf.Pow(2.0f, i), originalHeight / (int)Mathf.Pow(2.0f, i), 0, m_Format); + m_UpSamples[i].filterMode = FilterMode.Bilinear; + } + + float mul = 1.0f; + + if (m_BloomUsages[i]) + { + float horizontalBlur = 1.0f / sources[i].width; + float verticalBlur = 1.0f / sources[i].height; + + GaussianBlurSeparate(m_DownSamples[i], m_UpSamples[i], horizontalBlur * mul, verticalBlur, lastUpsample, upsamplingCount, m_BloomColors[i], m_BloomIntensities[i]); + } + else + { + if (i < m_DownscaleCount - 1) + { + if (!m_DirectUpsample) + RenderSimple(lastUpsample, m_UpSamples[i], 1.0f / m_UpSamples[i].width, 1.0f / m_UpSamples[i].height, SimpleSampleCount.Four); + //Graphics.Blit(m_UpSamples[i + 1], m_UpSamples[i]); + } + else + Graphics.Blit(Texture2D.blackTexture, m_UpSamples[i]); + } + + if (m_BloomUsages[i] || !m_DirectUpsample) + lastUpsample = m_UpSamples[i]; + } + + m_LastBloomUpsample = lastUpsample; + } + + void CachedDownsample(RenderTexture source, RenderTexture[] destinations, DeluxeFilmicCurve intensityCurve, bool hdr) + { + int downscaleCount = destinations.Length; + + RenderTexture currentSource = source; + + bool filmicCurveDone = false; + + for (int i = 0; i < downscaleCount; ++i) + { + if (m_DirectDownSample) + { + if (!m_BufferUsage[i]) + continue; + } + + destinations[i] = RenderTexture.GetTemporary(source.width / (int)Mathf.Pow(2.0f, (i + 1)), source.height / (int)Mathf.Pow(2.0f, (i + 1)), 0, m_Format); + destinations[i].filterMode = FilterMode.Bilinear; + + RenderTexture dest = destinations[i]; + float dist = 1.0f; + + float horizontalBlur = 1.0f / currentSource.width; + float verticalBlur = 1.0f / currentSource.height; + + // Render previous into next + { + if (intensityCurve != null && !filmicCurveDone) + { + intensityCurve.StoreK(); + m_SamplingMaterial.SetFloat("_CurveExposure", intensityCurve.GetExposure()); + m_SamplingMaterial.SetFloat("_K", intensityCurve.m_k); + m_SamplingMaterial.SetFloat("_Crossover", intensityCurve.m_CrossOverPoint); + m_SamplingMaterial.SetVector("_Toe", intensityCurve.m_ToeCoef); + m_SamplingMaterial.SetVector("_Shoulder", intensityCurve.m_ShoulderCoef); + // m_SamplingMaterial.SetFloat("_MaxValue", intensityCurve.m_WhitePoint); + + + float colorRange = hdr ? 2.0f : 1.0f; + m_SamplingMaterial.SetFloat("_MaxValue", colorRange); + + horizontalBlur = 1.0f / currentSource.width; + verticalBlur = 1.0f / currentSource.height; + + if (m_TemporalStableDownsampling) + RenderSimple(currentSource, dest, horizontalBlur * dist, verticalBlur * dist, SimpleSampleCount.ThirteenTemporalCurve); + else + RenderSimple(currentSource, dest, horizontalBlur * dist, verticalBlur * dist, SimpleSampleCount.FourCurve); + filmicCurveDone = true; + } + else + { + if (m_TemporalStableDownsampling) + RenderSimple(currentSource, dest, horizontalBlur * dist, verticalBlur * dist, SimpleSampleCount.ThirteenTemporal); + else + RenderSimple(currentSource, dest, horizontalBlur * dist, verticalBlur * dist, SimpleSampleCount.Four); + } + } + + + currentSource = destinations[i]; + + } + } + + + void BrightPass(RenderTexture source, RenderTexture destination, Vector4 treshold) + { + m_BrightpassMaterial.SetTexture("_MaskTex", Texture2D.whiteTexture); + m_BrightpassMaterial.SetVector("_Threshhold", treshold); + Graphics.Blit(source, destination, m_BrightpassMaterial, 0); + } + + void BrightPassWithMask(RenderTexture source, RenderTexture destination, Vector4 treshold, Texture mask) + { + m_BrightpassMaterial.SetTexture("_MaskTex", mask); + m_BrightpassMaterial.SetVector("_Threshhold", treshold); + Graphics.Blit(source, destination, m_BrightpassMaterial, 0); + } + + void RenderSimple(RenderTexture source, RenderTexture destination, float horizontalBlur, float verticalBlur, SimpleSampleCount sampleCount) + { + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(horizontalBlur, verticalBlur, 0, 0)); + + if (sampleCount == SimpleSampleCount.Four) + Graphics.Blit(source, destination, m_SamplingMaterial, 0); + else if (sampleCount == SimpleSampleCount.Nine) + Graphics.Blit(source, destination, m_SamplingMaterial, 1); + else if (sampleCount == SimpleSampleCount.FourCurve) + Graphics.Blit(source, destination, m_SamplingMaterial, 5); + else if (sampleCount == SimpleSampleCount.ThirteenTemporal) + Graphics.Blit(source, destination, m_SamplingMaterial, 11); + else if (sampleCount == SimpleSampleCount.ThirteenTemporalCurve) + Graphics.Blit(source, destination, m_SamplingMaterial, 12); + } + + void GaussianBlur1(RenderTexture source, RenderTexture destination, float horizontalBlur, float verticalBlur, RenderTexture additiveTexture, BlurSampleCount sampleCount, Color tint, float intensity) + { + int passFromSamples = 2; + if (sampleCount == BlurSampleCount.Seventeen) + passFromSamples = 3; + if (sampleCount == BlurSampleCount.Nine) + passFromSamples = 4; + if (sampleCount == BlurSampleCount.NineCurve) + passFromSamples = 6; + if (sampleCount == BlurSampleCount.FourSimple) + passFromSamples = 7; + if (sampleCount == BlurSampleCount.Thirteen) + passFromSamples = 8; + if (sampleCount == BlurSampleCount.TwentyThree) + passFromSamples = 9; + if (sampleCount == BlurSampleCount.TwentySeven) + passFromSamples = 10; + + Texture additiveColor = null; + if (additiveTexture == null) + additiveColor = Texture2D.blackTexture; + else + additiveColor = additiveTexture; + + m_SamplingMaterial.SetTexture("_AdditiveTexture", additiveColor); + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(horizontalBlur, verticalBlur, 0, 0)); + m_SamplingMaterial.SetVector("_Tint", tint); + m_SamplingMaterial.SetFloat("_Intensity", intensity); + Graphics.Blit(source, destination, m_SamplingMaterial, passFromSamples); + + } + + void GaussianBlur2(RenderTexture source, RenderTexture destination, float horizontalBlur, float verticalBlur, RenderTexture additiveTexture, BlurSampleCount sampleCount, Color tint, float intensity) + { + RenderTexture tmpTexture = RenderTexture.GetTemporary(destination.width, destination.height, destination.depth, destination.format); + tmpTexture.filterMode = FilterMode.Bilinear; + + int passFromSamples = 2; + if (sampleCount == BlurSampleCount.Seventeen) + passFromSamples = 3; + if (sampleCount == BlurSampleCount.Nine) + passFromSamples = 4; + if (sampleCount == BlurSampleCount.NineCurve) + passFromSamples = 6; + if (sampleCount == BlurSampleCount.FourSimple) + passFromSamples = 7; + if (sampleCount == BlurSampleCount.Thirteen) + passFromSamples = 8; + if (sampleCount == BlurSampleCount.TwentyThree) + passFromSamples = 9; + if (sampleCount == BlurSampleCount.TwentySeven) + passFromSamples = 10; + + Texture additiveColor = null; + + if (additiveTexture == null) + additiveColor = Texture2D.blackTexture; + else + additiveColor = additiveTexture; + + // First pass + m_SamplingMaterial.SetTexture("_AdditiveTexture", additiveColor); + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(horizontalBlur, verticalBlur, 0, 0)); + m_SamplingMaterial.SetVector("_Tint", tint); + m_SamplingMaterial.SetFloat("_Intensity", intensity); + Graphics.Blit(source, tmpTexture, m_SamplingMaterial, passFromSamples); + + additiveColor = tmpTexture; + + // Second pass + m_SamplingMaterial.SetTexture("_AdditiveTexture", additiveColor); + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(-horizontalBlur, verticalBlur, 0, 0)); + m_SamplingMaterial.SetVector("_Tint", tint); + m_SamplingMaterial.SetFloat("_Intensity", intensity); + Graphics.Blit(source, destination, m_SamplingMaterial, passFromSamples); + + RenderTexture.ReleaseTemporary(tmpTexture); + } + + void GaussianBlurSeparate(RenderTexture source, RenderTexture destination, float horizontalBlur, float verticalBlur, RenderTexture additiveTexture, BlurSampleCount sampleCount, Color tint, float intensity) + { + RenderTexture tmpTexture = RenderTexture.GetTemporary(destination.width, destination.height, destination.depth, destination.format); + tmpTexture.filterMode = FilterMode.Bilinear; + + int passFromSamples = 2; + if (sampleCount == BlurSampleCount.Seventeen) + passFromSamples = 3; + if (sampleCount == BlurSampleCount.Nine) + passFromSamples = 4; + if (sampleCount == BlurSampleCount.NineCurve) + passFromSamples = 6; + if (sampleCount == BlurSampleCount.FourSimple) + passFromSamples = 7; + if (sampleCount == BlurSampleCount.Thirteen) + passFromSamples = 8; + if (sampleCount == BlurSampleCount.TwentyThree) + passFromSamples = 9; + if (sampleCount == BlurSampleCount.TwentySeven) + passFromSamples = 10; + + // Vertical + m_SamplingMaterial.SetTexture("_AdditiveTexture", Texture2D.blackTexture); + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(0.0f, verticalBlur, 0, 0)); + m_SamplingMaterial.SetVector("_Tint", tint); + m_SamplingMaterial.SetFloat("_Intensity", intensity); + Graphics.Blit(source, tmpTexture, m_SamplingMaterial, passFromSamples); + + Texture additiveColor = null; + if (additiveTexture == null) + additiveColor = Texture2D.blackTexture; + else + additiveColor = additiveTexture; + + // Horizontal + m_SamplingMaterial.SetTexture("_AdditiveTexture", additiveColor); + m_SamplingMaterial.SetVector("_OffsetInfos", new Vector4(horizontalBlur, 0.0f, 1.0f / destination.width, 1.0f / destination.height)); + m_SamplingMaterial.SetVector("_Tint", Color.white); + m_SamplingMaterial.SetFloat("_Intensity", 1.0f); + Graphics.Blit(tmpTexture, destination, m_SamplingMaterial, passFromSamples); + + RenderTexture.ReleaseTemporary(tmpTexture); + } + + void RenderTextureAdditive(RenderTexture source, RenderTexture destination, float intensity) + { + + RenderTexture tmpTexture = RenderTexture.GetTemporary(source.width, source.height, source.depth, source.format); + Graphics.Blit(destination, tmpTexture); + + m_MixerMaterial.SetTexture("_ColorBuffer", tmpTexture); + m_MixerMaterial.SetFloat("_Intensity", intensity); + + Graphics.Blit(source, destination, m_MixerMaterial, 0); + + RenderTexture.ReleaseTemporary(tmpTexture); + } + + void BlitIntensity(RenderTexture source, RenderTexture destination, float intensity) + { + m_MixerMaterial.SetFloat("_Intensity", intensity); + Graphics.Blit(source, destination, m_MixerMaterial, 2); + } + + void CombineAdditive(RenderTexture source, RenderTexture destination, float intensitySource, float intensityDestination) + { + RenderTexture tmpTexture = RenderTexture.GetTemporary(source.width, source.height, source.depth, source.format); + Graphics.Blit(destination, tmpTexture); + + m_MixerMaterial.SetTexture("_ColorBuffer", tmpTexture); + m_MixerMaterial.SetFloat("_Intensity0", intensitySource); + m_MixerMaterial.SetFloat("_Intensity1", intensityDestination); + Graphics.Blit(source, destination, m_MixerMaterial, 1); + + RenderTexture.ReleaseTemporary(tmpTexture); + } + + public void SetFilmicCurveParameters(float middle, float dark, float bright, float highlights) + { + m_BloomCurve.m_ToeStrength = -1.0f * dark; + m_BloomCurve.m_ShoulderStrength = bright; + m_BloomCurve.m_Highlights = highlights; + m_BloomCurve.m_CrossOverPoint = middle; + m_BloomCurve.UpdateCoefficients(); + } + + + + /* float Gaussian(float Scale, int iSamplePoint) + { + float sigma = (Scale - 1.0f) / 6.5f; + float g = 1.0f / Mathf.Sqrt(2.0f * 3.14159f * sigma * sigma); + return (g * Mathf.Exp(-(iSamplePoint * iSamplePoint) / (2 * sigma * sigma))); + } + + void Start() + { + int count = 16; + float scale = 31; + float sum = 0.0f; + float[] weights = new float[count]; + for (int i = 0; i < count; ++i) + { + weights[i] = Gaussian(scale, i); + sum += weights[i]; + } + + string str = ""; + for (int i = 0; i < count; ++i) + { + float nWeight = weights[i] / sum; + + if (i == 0) + { + str += "color += " + nWeight + " * tex2D (_MainTex, gUV);\n"; + } + else + { + str += "color += " + nWeight + " * tex2D (_MainTex, gUV + _OffsetInfos.xy * " + i + ");\n"; + str += "color += " + nWeight + " * tex2D (_MainTex, gUV - _OffsetInfos.xy * " + i + ");\n"; + } + //Debug.Log("" + i + ": " + nWeight); + } + + Debug.Log(str); + } + * */ +} + + diff --git a/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs.meta b/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs.meta new file mode 100644 index 0000000..6263d1b --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/Scripts/UltimateBloom.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c248faf0e10cd5a4cb2ca648c286bfa8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs b/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs new file mode 100644 index 0000000..78719e6 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs @@ -0,0 +1,10 @@ +using UnityEngine; +using System.Collections; + +/// +/// Used to locate the root Ultimate Bloom Folder +/// +public class UltimateBloomPathLocator : ScriptableObject +{ + +} diff --git a/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs.meta b/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs.meta new file mode 100644 index 0000000..8c1f6b2 --- /dev/null +++ b/Assets/Cinematic Effects/BloomBeta/UltimateBloomPathLocator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f196cd8bdabf54842954784952e8d059 +timeCreated: 1456303354 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common.meta b/Assets/Cinematic Effects/Common.meta new file mode 100644 index 0000000..df0a642 --- /dev/null +++ b/Assets/Cinematic Effects/Common.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 88d2f1c604c7f6d4bb80a72b2f0219a7 +folderAsset: yes +timeCreated: 1449044555 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/Editor.meta b/Assets/Cinematic Effects/Common/Editor.meta new file mode 100644 index 0000000..1acf785 --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e862ecde714eb154ca2d86a9a0809732 +folderAsset: yes +timeCreated: 1453372226 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs b/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs new file mode 100644 index 0000000..05fb09a --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs @@ -0,0 +1,62 @@ +using UnityEngine; +using UnityEditor; +using System; +using System.Linq.Expressions; +using System.Reflection; + +namespace UnityStandardAssets.CinematicEffects +{ + public static class EditorGUIHelper + { + private static Styles s_Styles; + private class Styles + { + public GUIStyle header = "ShurikenModuleTitle"; + public GUIStyle headerCheckbox = "ShurikenCheckMark"; + + internal Styles() + { + header.font = (new GUIStyle("Label")).font; + header.border = new RectOffset(15, 7, 4, 4); + header.fixedHeight = 22; + header.contentOffset = new Vector2(20f, -2f); + } + } + + static EditorGUIHelper() + { + s_Styles = new Styles(); + } + + public static bool Header(SerializedProperty group, SerializedProperty enabledField) + { + var display = group == null || group.isExpanded; + var enabled = enabledField != null && enabledField.boolValue; + var title = group == null ? "Unknown Group" : ObjectNames.NicifyVariableName(group.displayName); + + Rect rect = GUILayoutUtility.GetRect(16f, 22f, s_Styles.header); + GUI.Box(rect, title, s_Styles.header); + + Rect toggleRect = new Rect(rect.x + 4f, rect.y + 4f, 13f, 13f); + if (Event.current.type == EventType.Repaint) + s_Styles.headerCheckbox.Draw(toggleRect, false, false, enabled, false); + + Event e = Event.current; + if (e.type == EventType.MouseDown) + { + if (toggleRect.Contains(e.mousePosition) && enabledField != null) + { + enabledField.boolValue = !enabledField.boolValue; + e.Use(); + } + else if (rect.Contains(e.mousePosition) && group != null) + { + display = !display; + group.isExpanded = !group.isExpanded; + e.Use(); + } + } + return display; + } + } +} diff --git a/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs.meta b/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs.meta new file mode 100644 index 0000000..0bb1a64 --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/EditorGUIHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5b995f06a3ed14d449823cf7ab1c5a58 +timeCreated: 1454681943 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs b/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs new file mode 100644 index 0000000..fe77bdd --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs @@ -0,0 +1,25 @@ +using System; +using System.Linq.Expressions; +using System.Reflection; + +namespace UnityStandardAssets.CinematicEffects +{ + public static class FieldFinder + { + public static FieldInfo GetField(Expression> selector) + { + Expression body = selector; + if (body is LambdaExpression) + { + body = ((LambdaExpression)body).Body; + } + switch (body.NodeType) + { + case ExpressionType.MemberAccess: + return (FieldInfo)((MemberExpression)body).Member; + default: + throw new InvalidOperationException(); + } + } + } +} diff --git a/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs.meta b/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs.meta new file mode 100644 index 0000000..6a4c16d --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/FieldFinder.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 39e54cb37a3a81a40b248f1cc25c4619 +timeCreated: 1454073160 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs b/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs new file mode 100644 index 0000000..73ca7b2 --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs @@ -0,0 +1,29 @@ +using UnityEditor; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + [CustomPropertyDrawer(typeof(MinAttribute))] + internal sealed class MinDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + MinAttribute attribute = (MinAttribute) base.attribute; + + if (property.propertyType == SerializedPropertyType.Integer) + { + int v = EditorGUI.IntField(position, label, property.intValue); + property.intValue = (int)Mathf.Max(v, attribute.min); + } + else if (property.propertyType == SerializedPropertyType.Float) + { + float v = EditorGUI.FloatField(position, label, property.floatValue); + property.floatValue = Mathf.Max(v, attribute.min); + } + else + { + EditorGUI.LabelField(position, label.text, "Use Min with float or int."); + } + } + } +} diff --git a/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs.meta b/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs.meta new file mode 100644 index 0000000..2e95f53 --- /dev/null +++ b/Assets/Cinematic Effects/Common/Editor/MinDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9c615a85f13c6764fa4496d1d7f75f52 +timeCreated: 1453220014 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/ImageEffectHelper.cs b/Assets/Cinematic Effects/Common/ImageEffectHelper.cs new file mode 100644 index 0000000..d3761b6 --- /dev/null +++ b/Assets/Cinematic Effects/Common/ImageEffectHelper.cs @@ -0,0 +1,63 @@ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityStandardAssets.CinematicEffects +{ + public static class ImageEffectHelper + { + public static bool IsSupported(Shader s, bool needDepth, bool needHdr, MonoBehaviour effect) + { +#if UNITY_EDITOR + // Don't check for shader compatibility while it's building as it would disable most effects + // on build farms without good-enough gaming hardware. + if (!BuildPipeline.isBuildingPlayer) + { +#endif + if (s == null || !s.isSupported) + { + Debug.LogWarningFormat("Missing shader for image effect {0}", effect); + return false; + } + + if (!SystemInfo.supportsImageEffects || !SystemInfo.supportsRenderTextures) + { + Debug.LogWarningFormat("Image effects aren't supported on this device ({0})", effect); + return false; + } + + if (needDepth && !SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.Depth)) + { + Debug.LogWarningFormat("Depth textures aren't supported on this device ({0})", effect); + return false; + } + + if (needHdr && !SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf)) + { + Debug.LogWarningFormat("Floating point textures aren't supported on this device ({0})", effect); + return false; + } +#if UNITY_EDITOR + } +#endif + + return true; + } + + public static Material CheckShaderAndCreateMaterial(Shader s) + { + if (s == null || !s.isSupported) + return null; + + var material = new Material(s); + material.hideFlags = HideFlags.DontSave; + return material; + } + + public static bool supportsDX11 + { + get { return SystemInfo.graphicsShaderLevel >= 50 && SystemInfo.supportsComputeShaders; } + } + } +} diff --git a/Assets/Cinematic Effects/Common/ImageEffectHelper.cs.meta b/Assets/Cinematic Effects/Common/ImageEffectHelper.cs.meta new file mode 100644 index 0000000..eb58b71 --- /dev/null +++ b/Assets/Cinematic Effects/Common/ImageEffectHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ab6a3f50deeee984c88794eeeb901226 +timeCreated: 1448544124 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/MinAttribute.cs b/Assets/Cinematic Effects/Common/MinAttribute.cs new file mode 100644 index 0000000..84e7c1a --- /dev/null +++ b/Assets/Cinematic Effects/Common/MinAttribute.cs @@ -0,0 +1,14 @@ +namespace UnityStandardAssets.CinematicEffects +{ + using UnityEngine; + + public sealed class MinAttribute : PropertyAttribute + { + public readonly float min; + + public MinAttribute(float min) + { + this.min = min; + } + } +} diff --git a/Assets/Cinematic Effects/Common/MinAttribute.cs.meta b/Assets/Cinematic Effects/Common/MinAttribute.cs.meta new file mode 100644 index 0000000..8dcc710 --- /dev/null +++ b/Assets/Cinematic Effects/Common/MinAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b07292ae638766047a6751da7552e566 +timeCreated: 1453220005 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/Common/RenderTextureUtility.cs b/Assets/Cinematic Effects/Common/RenderTextureUtility.cs new file mode 100644 index 0000000..ae71657 --- /dev/null +++ b/Assets/Cinematic Effects/Common/RenderTextureUtility.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + public class RenderTextureUtility + { + //Temporary render texture handling + private List m_TemporaryRTs = new List(); + + public RenderTexture GetTemporaryRenderTexture(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.ARGBHalf, FilterMode filterMode = FilterMode.Bilinear) + { + var rt = RenderTexture.GetTemporary(width, height, depthBuffer, format); + rt.filterMode = filterMode; + rt.wrapMode = TextureWrapMode.Clamp; + rt.name = "RenderTextureUtilityTempTexture"; + m_TemporaryRTs.Add(rt); + return rt; + } + + public void ReleaseTemporaryRenderTexture(RenderTexture rt) + { + if (rt == null) + return; + + if (!m_TemporaryRTs.Contains(rt)) + { + Debug.LogErrorFormat("Attempting to remove texture that was not allocated: {0}", rt); + return; + } + + m_TemporaryRTs.Remove(rt); + RenderTexture.ReleaseTemporary(rt); + } + + public void ReleaseAllTemporaryRenderTextures() + { + for (int i = 0; i < m_TemporaryRTs.Count; ++i) + RenderTexture.ReleaseTemporary(m_TemporaryRTs[i]); + + m_TemporaryRTs.Clear(); + } + } +} diff --git a/Assets/Cinematic Effects/Common/RenderTextureUtility.cs.meta b/Assets/Cinematic Effects/Common/RenderTextureUtility.cs.meta new file mode 100644 index 0000000..b866db1 --- /dev/null +++ b/Assets/Cinematic Effects/Common/RenderTextureUtility.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 054e694bae00c374a97c2bc495fca66b +timeCreated: 1449148391 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField.meta b/Assets/Cinematic Effects/DepthOfField.meta new file mode 100644 index 0000000..50072ec --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 34369cdf66de04c65a8cef766bb1797b +folderAsset: yes +timeCreated: 1429220270 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs b/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs new file mode 100644 index 0000000..ec469ec --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs @@ -0,0 +1,946 @@ +using UnityEngine; +using System; + +namespace UnityStandardAssets.CinematicEffects +{ + //Improvement ideas: + // Use rgba8 buffer in ldr / in some pass in hdr (in correlation to previous point and remapping coc from -1/0/1 to 0/0.5/1) + // Use temporal stabilisation. + // Add a mode to do bokeh texture in quarter res as well + // Support different near and far blur for the bokeh texture + // Try distance field for the bokeh texture. + // Try to separate the output of the blur pass to two rendertarget near+far, see the gain in quality vs loss in performance. + // Try swirl effect on the samples of the circle blur. + + //References : + // This DOF implementation use ideas from public sources, a big thank to them : + // http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare + // http://www.crytek.com/download/Sousa_Graphics_Gems_CryENGINE3.pdf + // http://graphics.cs.williams.edu/papers/MedianShaderX6/ + // http://http.developer.nvidia.com/GPUGems/gpugems_ch24.html + // http://vec3.ca/bicubic-filtering-in-fewer-taps/ + + [ExecuteInEditMode] + [AddComponentMenu("Image Effects/Cinematic/Depth Of Field")] + [RequireComponent(typeof(Camera))] + public class DepthOfField : MonoBehaviour + { + private const float kMaxBlur = 35.0f; + + #region Render passes + private enum Passes + { + BlurAlphaWeighted = 0 , + BoxBlur = 1 , + DilateFgCocFromColor = 2 , + DilateFgCoc = 3 , + CaptureCoc = 4 , + CaptureCocExplicit = 5 , + VisualizeCoc = 6 , + VisualizeCocExplicit = 7 , + CocPrefilter = 8 , + CircleBlur = 9 , + CircleBlurWithDilatedFg = 10, + CircleBlurLowQuality = 11, + CircleBlowLowQualityWithDilatedFg = 12, + Merge = 13, + MergeExplicit = 14, + MergeBicubic = 15, + MergeExplicitBicubic = 16, + ShapeLowQuality = 17, + ShapeLowQualityDilateFg = 18, + ShapeLowQualityMerge = 19, + ShapeLowQualityMergeDilateFg = 20, + ShapeMediumQuality = 21, + ShapeMediumQualityDilateFg = 22, + ShapeMediumQualityMerge = 23, + ShapeMediumQualityMergeDilateFg = 24, + ShapeHighQuality = 25, + ShapeHighQualityDilateFg = 26, + ShapeHighQualityMerge = 27, + ShapeHighQualityMergeDilateFg = 28 + } + + private enum MedianPasses + { + Median3 = 0, + Median3X3 = 1 + } + + private enum BokehTexturesPasses + { + Apply = 0, + Collect = 1 + } + #endregion + + public enum TweakMode + { + Basic, + Advanced, + Explicit + } + + public enum ApertureShape + { + Circular, + Hexagonal, + Octogonal + } + + public enum QualityPreset + { + Simple, + Low, + Medium, + High, + VeryHigh, + Ultra, + Custom + } + + public enum FilterQuality + { + None, + Normal, + High + } + + #region Attributes + [AttributeUsage(AttributeTargets.Field)] + public class TopLevelSettings : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class SettingsGroup : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class AllTweakModes : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class Basic : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class Advanced : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class Explicit : Attribute + {} + #endregion + + #region Settings + [Serializable] + public struct GlobalSettings + { + [Tooltip("Allows to view where the blur will be applied. Yellow for near blur, blue for far blur.")] + public bool visualizeBluriness; + + [Tooltip("Setup mode. Use \"Advanced\" if you need more control on blur settings and/or want to use a bokeh texture. \"Explicit\" is the same as \"Advanced\" but makes use of \"Near Plane\" and \"Far Plane\" values instead of \"F-Stop\".")] + public TweakMode tweakMode; + + [Tooltip("Quality presets. Use \"Custom\" for more advanced settings.")] + public QualityPreset quality; + + [Space, Tooltip("\"Circular\" is the fastest, followed by \"Hexagonal\" and \"Octogonal\".")] + public ApertureShape apertureShape; + + [Range(0f, 179f), Tooltip("Rotates the aperture when working with \"Hexagonal\" and \"Ortogonal\".")] + public float apertureOrientation; + + public static GlobalSettings defaultSettings + { + get + { + return new GlobalSettings + { + visualizeBluriness = false, + tweakMode = TweakMode.Basic, + quality = QualityPreset.High, + apertureShape = ApertureShape.Circular, + apertureOrientation = 0f + }; + } + } + } + + [Serializable] + public struct QualitySettings + { + [Tooltip("Enable this to get smooth bokeh.")] + public bool prefilterBlur; + + [Tooltip("Applies a median filter for even smoother bokeh.")] + public FilterQuality medianFilter; + + [Tooltip("Dilates near blur over in focus area.")] + public bool dilateNearBlur; + + [Tooltip("Uses high quality upsampling.")] + public bool highQualityUpsampling; + + [Tooltip("Prevent haloing from bright in focus region over dark out of focus region.")] + public bool preventHaloing; + + public static QualitySettings[] presetQualitySettings = + { + // Simple + new QualitySettings + { + prefilterBlur = false, + medianFilter = FilterQuality.None, + dilateNearBlur = false, + highQualityUpsampling = false, + preventHaloing = false + }, + + // Low + new QualitySettings + { + prefilterBlur = true, + medianFilter = FilterQuality.None, + dilateNearBlur = false, + highQualityUpsampling = false, + preventHaloing = false + }, + + // Medium + new QualitySettings + { + prefilterBlur = true, + medianFilter = FilterQuality.Normal, + dilateNearBlur = false, + highQualityUpsampling = false, + preventHaloing = false + }, + + // High + new QualitySettings + { + prefilterBlur = true, + medianFilter = FilterQuality.Normal, + dilateNearBlur = true, + highQualityUpsampling = false, + preventHaloing = false + }, + + // Very high + new QualitySettings + { + prefilterBlur = true, + medianFilter = FilterQuality.High, + dilateNearBlur = true, + highQualityUpsampling = false, + preventHaloing = true + }, + + // Ultra + new QualitySettings + { + prefilterBlur = true, + medianFilter = FilterQuality.High, + dilateNearBlur = true, + highQualityUpsampling = true, + preventHaloing = true + } + }; + } + + [Serializable] + public struct FocusSettings + { + [Basic, Advanced, Explicit, Tooltip("Auto-focus on a selected transform.")] + public Transform transform; + + [Basic, Advanced, Explicit, Range(0f, 1f), Tooltip("Focus distance.")] + public float plane; + + [Explicit, Range(0f, 1f), Tooltip("Near focus distance.")] + public float nearPlane; + + [Explicit, Range(0f, 1f), Tooltip("Far focus distance.")] + public float farPlane; + + [Basic, Advanced, Range(0f, 32f), Tooltip("Simulates focal ratio. Lower values will result in a narrow depth of field.")] + public float fStops; + + [Basic, Advanced, Explicit, Range(0f, 1f), Tooltip("Focus range/spread. Use this to fine-tune the F-Stop range.")] + public float rangeAdjustment; + + public static FocusSettings defaultSettings + { + get + { + return new FocusSettings + { + transform = null, + plane = 0.225f, + nearPlane = 0f, + farPlane = 1f, + fStops = 5f, + rangeAdjustment = 0.9f + }; + } + } + } + + [Serializable] + public struct BokehTextureSettings + { + [Advanced, Explicit, Tooltip("Adding a texture to this field will enable the use of \"Bokeh Textures\". Use with care. This feature is only available on Shader Model 5 compatible-hardware and performance scale with the amount of bokeh.")] + public Texture2D texture; + + [Advanced, Explicit, Range(0.01f, 5f), Tooltip("Maximum size of bokeh textures on screen.")] + public float scale; + + [Advanced, Explicit, Range(0.01f, 100f), Tooltip("Bokeh brightness.")] + public float intensity; + + [Advanced, Explicit, Range(0.01f, 50f), Tooltip("Controls the amount of bokeh textures. Lower values mean more bokeh splats.")] + public float threshold; + + [Advanced, Explicit, Range(0.01f, 1f), Tooltip("Controls the spawn conditions. Lower values mean more visible bokeh.")] + public float spawnHeuristic; + + public static BokehTextureSettings defaultSettings + { + get + { + return new BokehTextureSettings + { + texture = null, + scale = 1f, + intensity = 50f, + threshold = 2f, + spawnHeuristic = 0.15f + }; + } + } + } + + [Serializable] + public struct BlurSettings + { + [Basic, Advanced, Explicit, Range(0f, kMaxBlur), Tooltip("Maximum blur radius for the near plane.")] + public float nearRadius; + + [Basic, Advanced, Explicit, Range(0f, kMaxBlur), Tooltip("Maximum blur radius for the far plane.")] + public float farRadius; + + [Advanced, Explicit, Range(0.5f, 4f), Tooltip("Blur luminosity booster threshold for the near and far boost amounts.")] + public float boostPoint; + + [Advanced, Explicit, Range(0f, 1f), Tooltip("Boosts luminosity in the near blur.")] + public float nearBoostAmount; + + [Advanced, Explicit, Range(0f, 1f), Tooltip("Boosts luminosity in the far blur.")] + public float farBoostAmount; + + public static BlurSettings defaultSettings + { + get + { + return new BlurSettings + { + nearRadius = 20f, + farRadius = 20f, + boostPoint = 0.75f, + nearBoostAmount = 0f, + farBoostAmount = 0f, + }; + } + } + } + #endregion + + [TopLevelSettings] + public GlobalSettings settings = GlobalSettings.defaultSettings; + + [SettingsGroup, AllTweakModes] + public QualitySettings quality = QualitySettings.presetQualitySettings[3]; + + [SettingsGroup] + public FocusSettings focus = FocusSettings.defaultSettings; + + [SettingsGroup] + public BokehTextureSettings bokehTexture = BokehTextureSettings.defaultSettings; + + [SettingsGroup] + public BlurSettings blur = BlurSettings.defaultSettings; + + [SerializeField] + private Shader m_FilmicDepthOfFieldShader; + + public Shader filmicDepthOfFieldShader + { + get + { + if (m_FilmicDepthOfFieldShader == null) + m_FilmicDepthOfFieldShader = Shader.Find("Hidden/DepthOfField/DepthOfField"); + + return m_FilmicDepthOfFieldShader; + } + } + + [SerializeField] + private Shader m_MedianFilterShader; + + public Shader medianFilterShader + { + get + { + if (m_MedianFilterShader == null) + m_MedianFilterShader = Shader.Find("Hidden/DepthOfField/MedianFilter"); + + return m_MedianFilterShader; + } + } + + [SerializeField] + private Shader m_TextureBokehShader; + + public Shader textureBokehShader + { + get + { + if (m_TextureBokehShader == null) + m_TextureBokehShader = Shader.Find("Hidden/DepthOfField/BokehSplatting"); + + return m_TextureBokehShader; + } + } + + private RenderTextureUtility m_RTU = new RenderTextureUtility(); + + private Material m_FilmicDepthOfFieldMaterial; + + public Material filmicDepthOfFieldMaterial + { + get + { + if (m_FilmicDepthOfFieldMaterial == null) + m_FilmicDepthOfFieldMaterial = ImageEffectHelper.CheckShaderAndCreateMaterial(filmicDepthOfFieldShader); + + return m_FilmicDepthOfFieldMaterial; + } + } + + private Material m_MedianFilterMaterial; + + public Material medianFilterMaterial + { + get + { + if (m_MedianFilterMaterial == null) + m_MedianFilterMaterial = ImageEffectHelper.CheckShaderAndCreateMaterial(medianFilterShader); + + return m_MedianFilterMaterial; + } + } + + private Material m_TextureBokehMaterial; + + public Material textureBokehMaterial + { + get + { + if (m_TextureBokehMaterial == null) + m_TextureBokehMaterial = ImageEffectHelper.CheckShaderAndCreateMaterial(textureBokehShader); + + return m_TextureBokehMaterial; + } + } + + private ComputeBuffer m_ComputeBufferDrawArgs; + + public ComputeBuffer computeBufferDrawArgs + { + get + { + if (m_ComputeBufferDrawArgs == null) + { +#if (UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3) + m_ComputeBufferDrawArgs = new ComputeBuffer(1, 16, ComputeBufferType.DrawIndirect); +#else + m_ComputeBufferDrawArgs = new ComputeBuffer(1, 16, ComputeBufferType.IndirectArguments); +#endif + m_ComputeBufferDrawArgs.SetData(new[] {0, 1, 0, 0}); + } + + return m_ComputeBufferDrawArgs; + } + } + + private ComputeBuffer m_ComputeBufferPoints; + + public ComputeBuffer computeBufferPoints + { + get + { + if (m_ComputeBufferPoints == null) + m_ComputeBufferPoints = new ComputeBuffer(90000, 12 + 16, ComputeBufferType.Append); + + return m_ComputeBufferPoints; + } + } + + private QualitySettings m_CurrentQualitySettings; + private float m_LastApertureOrientation; + private Vector4 m_OctogonalBokehDirection1; + private Vector4 m_OctogonalBokehDirection2; + private Vector4 m_OctogonalBokehDirection3; + private Vector4 m_OctogonalBokehDirection4; + private Vector4 m_HexagonalBokehDirection1; + private Vector4 m_HexagonalBokehDirection2; + private Vector4 m_HexagonalBokehDirection3; + + private void OnEnable() + { + if (!ImageEffectHelper.IsSupported(filmicDepthOfFieldShader, true, true, this) || !ImageEffectHelper.IsSupported(medianFilterShader, true, true, this)) + { + enabled = false; + return; + } + + if (ImageEffectHelper.supportsDX11 && !ImageEffectHelper.IsSupported(textureBokehShader, true, true, this)) + { + enabled = false; + return; + } + + ComputeBlurDirections(true); + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + } + + private void OnDisable() + { + ReleaseComputeResources(); + + if (m_FilmicDepthOfFieldMaterial != null) + DestroyImmediate(m_FilmicDepthOfFieldMaterial); + + if (m_TextureBokehMaterial != null) + DestroyImmediate(m_TextureBokehMaterial); + + if (m_MedianFilterMaterial != null) + DestroyImmediate(m_MedianFilterMaterial); + + m_FilmicDepthOfFieldMaterial = null; + m_TextureBokehMaterial = null; + m_MedianFilterMaterial = null; + + m_RTU.ReleaseAllTemporaryRenderTextures(); + } + + //-------------------------------------------------------------------// + // Main entry point // + //-------------------------------------------------------------------// + private void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (medianFilterMaterial == null || filmicDepthOfFieldMaterial == null) + { + Graphics.Blit(source, destination); + return; + } + + if (settings.visualizeBluriness) + { + Vector4 blurrinessParam; + Vector4 blurrinessCoe; + ComputeCocParameters(out blurrinessParam, out blurrinessCoe); + filmicDepthOfFieldMaterial.SetVector("_BlurParams", blurrinessParam); + filmicDepthOfFieldMaterial.SetVector("_BlurCoe", blurrinessCoe); + Graphics.Blit(null, destination, filmicDepthOfFieldMaterial, (settings.tweakMode == TweakMode.Explicit) ? (int)Passes.VisualizeCocExplicit : (int)Passes.VisualizeCoc); + } + else + { + DoDepthOfField(source, destination); + } + + m_RTU.ReleaseAllTemporaryRenderTextures(); + } + + private void DoDepthOfField(RenderTexture source, RenderTexture destination) + { + m_CurrentQualitySettings = quality; + + if (settings.quality != QualityPreset.Custom) + m_CurrentQualitySettings = QualitySettings.presetQualitySettings[(int)settings.quality]; + + float radiusAdjustement = source.height / 720.0f; + + float textureBokehScale = radiusAdjustement; + float textureBokehMaxRadius = Mathf.Max(blur.nearRadius, blur.farRadius) * textureBokehScale * 0.75f; + + float nearBlurRadius = blur.nearRadius * radiusAdjustement; + float farBlurRadius = blur.farRadius * radiusAdjustement; + float maxBlurRadius = Mathf.Max(nearBlurRadius, farBlurRadius); + switch (settings.apertureShape) + { + case ApertureShape.Hexagonal: + maxBlurRadius *= 1.2f; + break; + case ApertureShape.Octogonal: + maxBlurRadius *= 1.15f; + break; + } + + if (maxBlurRadius < 0.5f) + { + Graphics.Blit(source, destination); + return; + } + + // Quarter resolution + int rtW = source.width / 2; + int rtH = source.height / 2; + Vector4 blurrinessCoe = new Vector4(nearBlurRadius * 0.5f, farBlurRadius * 0.5f, 0.0f, 0.0f); + RenderTexture colorAndCoc = m_RTU.GetTemporaryRenderTexture(rtW, rtH); + RenderTexture colorAndCoc2 = m_RTU.GetTemporaryRenderTexture(rtW, rtH); + + if (m_CurrentQualitySettings.preventHaloing) + filmicDepthOfFieldMaterial.EnableKeyword("USE_SPECIAL_FETCH_FOR_COC"); + else + filmicDepthOfFieldMaterial.DisableKeyword("USE_SPECIAL_FETCH_FOR_COC"); + + // Downsample to Color + COC buffer and apply boost + Vector4 cocParam; + Vector4 cocCoe; + ComputeCocParameters(out cocParam, out cocCoe); + filmicDepthOfFieldMaterial.SetVector("_BlurParams", cocParam); + filmicDepthOfFieldMaterial.SetVector("_BlurCoe", cocCoe); + filmicDepthOfFieldMaterial.SetVector("_BoostParams", new Vector4(nearBlurRadius * blur.nearBoostAmount * -0.5f, farBlurRadius * blur.farBoostAmount * 0.5f, blur.boostPoint, 0.0f)); + Graphics.Blit(source, colorAndCoc2, filmicDepthOfFieldMaterial, (settings.tweakMode == TweakMode.Explicit) ? (int)Passes.CaptureCocExplicit : (int)Passes.CaptureCoc); + RenderTexture src = colorAndCoc2; + RenderTexture dst = colorAndCoc; + + // Collect texture bokeh candidates and replace with a darker pixel + if (shouldPerformBokeh) + { + // Blur a bit so we can do a frequency check + RenderTexture blurred = m_RTU.GetTemporaryRenderTexture(rtW, rtH); + Graphics.Blit(src, blurred, filmicDepthOfFieldMaterial, (int)Passes.BoxBlur); + filmicDepthOfFieldMaterial.SetVector("_Offsets", new Vector4(0.0f, 1.5f, 0.0f, 1.5f)); + Graphics.Blit(blurred, dst, filmicDepthOfFieldMaterial, (int)Passes.BlurAlphaWeighted); + filmicDepthOfFieldMaterial.SetVector("_Offsets", new Vector4(1.5f, 0.0f, 0.0f, 1.5f)); + Graphics.Blit(dst, blurred, filmicDepthOfFieldMaterial, (int)Passes.BlurAlphaWeighted); + + // Collect texture bokeh candidates and replace with a darker pixel + textureBokehMaterial.SetTexture("_BlurredColor", blurred); + textureBokehMaterial.SetFloat("_SpawnHeuristic", bokehTexture.spawnHeuristic); + textureBokehMaterial.SetVector("_BokehParams", new Vector4(bokehTexture.scale * textureBokehScale, bokehTexture.intensity, bokehTexture.threshold, textureBokehMaxRadius)); + Graphics.SetRandomWriteTarget(1, computeBufferPoints); + Graphics.Blit(src, dst, textureBokehMaterial, (int)BokehTexturesPasses.Collect); + Graphics.ClearRandomWriteTargets(); + SwapRenderTexture(ref src, ref dst); + m_RTU.ReleaseTemporaryRenderTexture(blurred); + } + + filmicDepthOfFieldMaterial.SetVector("_BlurParams", cocParam); + filmicDepthOfFieldMaterial.SetVector("_BlurCoe", blurrinessCoe); + filmicDepthOfFieldMaterial.SetVector("_BoostParams", new Vector4(nearBlurRadius * blur.nearBoostAmount * -0.5f, farBlurRadius * blur.farBoostAmount * 0.5f, blur.boostPoint, 0.0f)); + + // Dilate near blur factor + RenderTexture blurredFgCoc = null; + if (m_CurrentQualitySettings.dilateNearBlur) + { + RenderTexture blurredFgCoc2 = m_RTU.GetTemporaryRenderTexture(rtW, rtH, 0, RenderTextureFormat.RGHalf); + blurredFgCoc = m_RTU.GetTemporaryRenderTexture(rtW, rtH, 0, RenderTextureFormat.RGHalf); + filmicDepthOfFieldMaterial.SetVector("_Offsets", new Vector4(0.0f, nearBlurRadius * 0.75f, 0.0f, 0.0f)); + Graphics.Blit(src, blurredFgCoc2, filmicDepthOfFieldMaterial, (int)Passes.DilateFgCocFromColor); + filmicDepthOfFieldMaterial.SetVector("_Offsets", new Vector4(nearBlurRadius * 0.75f, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(blurredFgCoc2, blurredFgCoc, filmicDepthOfFieldMaterial, (int)Passes.DilateFgCoc); + m_RTU.ReleaseTemporaryRenderTexture(blurredFgCoc2); + blurredFgCoc.filterMode = FilterMode.Point; + } + + // Blur downsampled color to fill the gap between samples + if (m_CurrentQualitySettings.prefilterBlur) + { + Graphics.Blit(src, dst, filmicDepthOfFieldMaterial, (int)Passes.CocPrefilter); + SwapRenderTexture(ref src, ref dst); + } + + // Apply blur : Circle / Hexagonal or Octagonal (blur will create bokeh if bright pixel where not removed by "m_UseBokehTexture") + switch (settings.apertureShape) + { + case ApertureShape.Circular: + DoCircularBlur(blurredFgCoc, ref src, ref dst, maxBlurRadius); + break; + case ApertureShape.Hexagonal: + DoHexagonalBlur(blurredFgCoc, ref src, ref dst, maxBlurRadius); + break; + case ApertureShape.Octogonal: + DoOctogonalBlur(blurredFgCoc, ref src, ref dst, maxBlurRadius); + break; + } + + // Smooth result + switch (m_CurrentQualitySettings.medianFilter) + { + case FilterQuality.Normal: + { + medianFilterMaterial.SetVector("_Offsets", new Vector4(1.0f, 0.0f, 0.0f, 0.0f)); + Graphics.Blit(src, dst, medianFilterMaterial, (int)MedianPasses.Median3); + SwapRenderTexture(ref src, ref dst); + medianFilterMaterial.SetVector("_Offsets", new Vector4(0.0f, 1.0f, 0.0f, 0.0f)); + Graphics.Blit(src, dst, medianFilterMaterial, (int)MedianPasses.Median3); + SwapRenderTexture(ref src, ref dst); + break; + } + case FilterQuality.High: + { + Graphics.Blit(src, dst, medianFilterMaterial, (int)MedianPasses.Median3X3); + SwapRenderTexture(ref src, ref dst); + break; + } + } + + // Merge to full resolution (with boost) + upsampling (linear or bicubic) + filmicDepthOfFieldMaterial.SetVector("_BlurCoe", blurrinessCoe); + filmicDepthOfFieldMaterial.SetVector("_Convolved_TexelSize", new Vector4(src.width, src.height, 1.0f / src.width, 1.0f / src.height)); + filmicDepthOfFieldMaterial.SetTexture("_SecondTex", src); + int mergePass = (settings.tweakMode == TweakMode.Explicit) ? (int)Passes.MergeExplicit : (int)Passes.Merge; + if (m_CurrentQualitySettings.highQualityUpsampling) + mergePass = (settings.tweakMode == TweakMode.Explicit) ? (int)Passes.MergeExplicitBicubic : (int)Passes.MergeBicubic; + + // Apply texture bokeh + if (shouldPerformBokeh) + { + RenderTexture tmp = m_RTU.GetTemporaryRenderTexture(source.height, source.width, 0, source.format); + Graphics.Blit(source, tmp, filmicDepthOfFieldMaterial, mergePass); + + Graphics.SetRenderTarget(tmp); + ComputeBuffer.CopyCount(computeBufferPoints, computeBufferDrawArgs, 0); + textureBokehMaterial.SetBuffer("pointBuffer", computeBufferPoints); + textureBokehMaterial.SetTexture("_MainTex", bokehTexture.texture); + textureBokehMaterial.SetVector("_Screen", new Vector3(1.0f / (1.0f * source.width), 1.0f / (1.0f * source.height), textureBokehMaxRadius)); + textureBokehMaterial.SetPass((int)BokehTexturesPasses.Apply); + Graphics.DrawProceduralIndirect(MeshTopology.Points, computeBufferDrawArgs, 0); + Graphics.Blit(tmp, destination); // hackaround for DX11 flipfun (OPTIMIZEME) + } + else + { + Graphics.Blit(source, destination, filmicDepthOfFieldMaterial, mergePass); + } + } + + //-------------------------------------------------------------------// + // Blurs // + //-------------------------------------------------------------------// + private void DoHexagonalBlur(RenderTexture blurredFgCoc, ref RenderTexture src, ref RenderTexture dst, float maxRadius) + { + ComputeBlurDirections(false); + + int blurPass; + int blurPassMerge; + GetDirectionalBlurPassesFromRadius(blurredFgCoc, maxRadius, out blurPass, out blurPassMerge); + filmicDepthOfFieldMaterial.SetTexture("_SecondTex", blurredFgCoc); + RenderTexture tmp = m_RTU.GetTemporaryRenderTexture(src.width, src.height, 0, src.format); + + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_HexagonalBokehDirection1); + Graphics.Blit(src, tmp, filmicDepthOfFieldMaterial, blurPass); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_HexagonalBokehDirection2); + Graphics.Blit(tmp, src, filmicDepthOfFieldMaterial, blurPass); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_HexagonalBokehDirection3); + filmicDepthOfFieldMaterial.SetTexture("_ThirdTex", src); + Graphics.Blit(tmp, dst, filmicDepthOfFieldMaterial, blurPassMerge); + m_RTU.ReleaseTemporaryRenderTexture(tmp); + SwapRenderTexture(ref src, ref dst); + } + + private void DoOctogonalBlur(RenderTexture blurredFgCoc, ref RenderTexture src, ref RenderTexture dst, float maxRadius) + { + ComputeBlurDirections(false); + + int blurPass; + int blurPassMerge; + GetDirectionalBlurPassesFromRadius(blurredFgCoc, maxRadius, out blurPass, out blurPassMerge); + filmicDepthOfFieldMaterial.SetTexture("_SecondTex", blurredFgCoc); + RenderTexture tmp = m_RTU.GetTemporaryRenderTexture(src.width, src.height, 0, src.format); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_OctogonalBokehDirection1); + Graphics.Blit(src, tmp, filmicDepthOfFieldMaterial, blurPass); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_OctogonalBokehDirection2); + Graphics.Blit(tmp, dst, filmicDepthOfFieldMaterial, blurPass); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_OctogonalBokehDirection3); + Graphics.Blit(src, tmp, filmicDepthOfFieldMaterial, blurPass); + + filmicDepthOfFieldMaterial.SetVector("_Offsets", m_OctogonalBokehDirection4); + filmicDepthOfFieldMaterial.SetTexture("_ThirdTex", dst); + Graphics.Blit(tmp, src, filmicDepthOfFieldMaterial, blurPassMerge); + m_RTU.ReleaseTemporaryRenderTexture(tmp); + } + + private void DoCircularBlur(RenderTexture blurredFgCoc, ref RenderTexture src, ref RenderTexture dst, float maxRadius) + { + int bokehPass; + if (blurredFgCoc != null) + { + filmicDepthOfFieldMaterial.SetTexture("_SecondTex", blurredFgCoc); + bokehPass = (maxRadius > 10.0f) ? (int)Passes.CircleBlurWithDilatedFg : (int)Passes.CircleBlowLowQualityWithDilatedFg; + } + else + { + bokehPass = (maxRadius > 10.0f) ? (int)Passes.CircleBlur : (int)Passes.CircleBlurLowQuality; + } + Graphics.Blit(src, dst, filmicDepthOfFieldMaterial, bokehPass); + SwapRenderTexture(ref src, ref dst); + } + + //-------------------------------------------------------------------// + // Helpers // + //-------------------------------------------------------------------// + private void ComputeCocParameters(out Vector4 blurParams, out Vector4 blurCoe) + { + Camera sceneCamera = GetComponent(); + float focusDistance01 = focus.transform + ? (sceneCamera.WorldToViewportPoint(focus.transform.position)).z / (sceneCamera.farClipPlane) + : (focus.plane * focus.plane * focus.plane * focus.plane); + + if (settings.tweakMode == TweakMode.Basic || settings.tweakMode == TweakMode.Advanced) + { + float focusRange01 = focus.rangeAdjustment * focus.rangeAdjustment * focus.rangeAdjustment * focus.rangeAdjustment; + float focalLength = 4.0f / Mathf.Tan(0.5f * sceneCamera.fieldOfView * Mathf.Deg2Rad); + float aperture = focalLength / focus.fStops; + blurCoe = new Vector4(0.0f, 0.0f, 1.0f, 1.0f); + blurParams = new Vector4(aperture, focalLength, focusDistance01, focusRange01); + } + else + { + float nearDistance01 = focus.nearPlane * focus.nearPlane * focus.nearPlane * focus.nearPlane; + float farDistance01 = focus.farPlane * focus.farPlane * focus.farPlane * focus.farPlane; + float nearFocusRange01 = focus.rangeAdjustment * focus.rangeAdjustment * focus.rangeAdjustment * focus.rangeAdjustment; + float farFocusRange01 = nearFocusRange01; + + if (focusDistance01 <= nearDistance01) + focusDistance01 = nearDistance01 + 0.0000001f; + if (focusDistance01 >= farDistance01) + focusDistance01 = farDistance01 - 0.0000001f; + if ((focusDistance01 - nearFocusRange01) <= nearDistance01) + nearFocusRange01 = (focusDistance01 - nearDistance01 - 0.0000001f); + if ((focusDistance01 + farFocusRange01) >= farDistance01) + farFocusRange01 = (farDistance01 - focusDistance01 - 0.0000001f); + + float a1 = 1.0f / (nearDistance01 - focusDistance01 + nearFocusRange01); + float a2 = 1.0f / (farDistance01 - focusDistance01 - farFocusRange01); + float b1 = (1.0f - a1 * nearDistance01), b2 = (1.0f - a2 * farDistance01); + const float c1 = -1.0f; + const float c2 = 1.0f; + blurParams = new Vector4(c1 * a1, c1 * b1, c2 * a2, c2 * b2); + blurCoe = new Vector4(0.0f, 0.0f, (b2 - b1) / (a1 - a2), 0.0f); + } + } + + private void ReleaseComputeResources() + { + if (m_ComputeBufferDrawArgs != null) + m_ComputeBufferDrawArgs.Release(); + + if (m_ComputeBufferPoints != null) + m_ComputeBufferPoints.Release(); + + m_ComputeBufferDrawArgs = null; + m_ComputeBufferPoints = null; + } + + private void ComputeBlurDirections(bool force) + { + if (!force && Math.Abs(m_LastApertureOrientation - settings.apertureOrientation) < float.Epsilon) + return; + + m_LastApertureOrientation = settings.apertureOrientation; + + float rotationRadian = settings.apertureOrientation * Mathf.Deg2Rad; + float cosinus = Mathf.Cos(rotationRadian); + float sinus = Mathf.Sin(rotationRadian); + + m_OctogonalBokehDirection1 = new Vector4(0.5f, 0.0f, 0.0f, 0.0f); + m_OctogonalBokehDirection2 = new Vector4(0.0f, 0.5f, 1.0f, 0.0f); + m_OctogonalBokehDirection3 = new Vector4(-0.353553f, 0.353553f, 1.0f, 0.0f); + m_OctogonalBokehDirection4 = new Vector4(0.353553f, 0.353553f, 1.0f, 0.0f); + + m_HexagonalBokehDirection1 = new Vector4(0.5f, 0.0f, 0.0f, 0.0f); + m_HexagonalBokehDirection2 = new Vector4(0.25f, 0.433013f, 1.0f, 0.0f); + m_HexagonalBokehDirection3 = new Vector4(0.25f, -0.433013f, 1.0f, 0.0f); + + if (rotationRadian > float.Epsilon) + { + Rotate2D(ref m_OctogonalBokehDirection1, cosinus, sinus); + Rotate2D(ref m_OctogonalBokehDirection2, cosinus, sinus); + Rotate2D(ref m_OctogonalBokehDirection3, cosinus, sinus); + Rotate2D(ref m_OctogonalBokehDirection4, cosinus, sinus); + Rotate2D(ref m_HexagonalBokehDirection1, cosinus, sinus); + Rotate2D(ref m_HexagonalBokehDirection2, cosinus, sinus); + Rotate2D(ref m_HexagonalBokehDirection3, cosinus, sinus); + } + } + + private bool shouldPerformBokeh + { + get { return ImageEffectHelper.supportsDX11 && bokehTexture.texture != null && textureBokehMaterial && settings.tweakMode != TweakMode.Basic; } + } + + private static void Rotate2D(ref Vector4 direction, float cosinus, float sinus) + { + Vector4 source = direction; + direction.x = source.x * cosinus - source.y * sinus; + direction.y = source.x * sinus + source.y * cosinus; + } + + private static void SwapRenderTexture(ref RenderTexture src, ref RenderTexture dst) + { + RenderTexture tmp = dst; + dst = src; + src = tmp; + } + + private static void GetDirectionalBlurPassesFromRadius(RenderTexture blurredFgCoc, float maxRadius, out int blurPass, out int blurAndMergePass) + { + if (blurredFgCoc == null) + { + if (maxRadius > 10.0f) + { + blurPass = (int)Passes.ShapeHighQuality; + blurAndMergePass = (int)Passes.ShapeHighQualityMerge; + } + else if (maxRadius > 5.0f) + { + blurPass = (int)Passes.ShapeMediumQuality; + blurAndMergePass = (int)Passes.ShapeMediumQualityMerge; + } + else + { + blurPass = (int)Passes.ShapeLowQuality; + blurAndMergePass = (int)Passes.ShapeLowQualityMerge; + } + } + else + { + if (maxRadius > 10.0f) + { + blurPass = (int)Passes.ShapeHighQualityDilateFg; + blurAndMergePass = (int)Passes.ShapeHighQualityMergeDilateFg; + } + else if (maxRadius > 5.0f) + { + blurPass = (int)Passes.ShapeMediumQualityDilateFg; + blurAndMergePass = (int)Passes.ShapeMediumQualityMergeDilateFg; + } + else + { + blurPass = (int)Passes.ShapeLowQualityDilateFg; + blurAndMergePass = (int)Passes.ShapeLowQualityMergeDilateFg; + } + } + } + } +} diff --git a/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs.meta b/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs.meta new file mode 100644 index 0000000..9216b06 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/DepthOfField.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 8a338d679868f45439ea43c7ae035e36 +timeCreated: 1453985420 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - m_FilmicDepthOfFieldShader: {fileID: 4800000, guid: bff0e5458fb914f5c9985ba4f09171d2, + type: 3} + - m_MedianFilterShader: {fileID: 4800000, guid: a058b22d4123add4b807e832604e5e7b, + type: 3} + - m_TextureBokehShader: {fileID: 4800000, guid: c961b8ed1f00f924d804ada5143bd0e8, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Editor.meta b/Assets/Cinematic Effects/DepthOfField/Editor.meta new file mode 100644 index 0000000..e10867b --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1a8273952ce5743428d8c42b25cb0458 +folderAsset: yes +timeCreated: 1449046242 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs b/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs new file mode 100644 index 0000000..9c35a4d --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs @@ -0,0 +1,109 @@ +using UnityEditor; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace UnityStandardAssets.CinematicEffects +{ + [CustomEditor(typeof(DepthOfField))] + class DepthOfFieldEditor : Editor + { + private List m_TopLevelFields = new List(); + private Dictionary> m_GroupFields = new Dictionary>(); + private Dictionary> m_AccessFields = new Dictionary>(); + + private DepthOfField.TweakMode tweakMode + { + get { return ((DepthOfField)target).settings.tweakMode; } + } + + private void OnEnable() + { + var topLevelSettings = typeof(DepthOfField).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Where(x => x.GetCustomAttributes(typeof(DepthOfField.TopLevelSettings), false).Any()); + var settingsGroups = typeof(DepthOfField).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Where(x => x.GetCustomAttributes(typeof(DepthOfField.SettingsGroup), false).Any()); + + foreach (var group in topLevelSettings) + { + var searchPath = group.Name + "."; + + foreach (var setting in group.FieldType.GetFields(BindingFlags.Instance | BindingFlags.Public)) + { + var property = serializedObject.FindProperty(searchPath + setting.Name); + if (property != null) + m_TopLevelFields.Add(property); + } + } + + var basicFields = new List(); + var advancedFields = new List(); + var explicitFields = new List(); + + foreach (var group in settingsGroups) + { + var searchPath = group.Name + "."; + + foreach (var setting in group.FieldType.GetFields(BindingFlags.Instance | BindingFlags.Public)) + { + List settingsGroup; + if (!m_GroupFields.TryGetValue(group, out settingsGroup)) + { + settingsGroup = new List(); + m_GroupFields[group] = settingsGroup; + } + + var property = serializedObject.FindProperty(searchPath + setting.Name); + if (property != null) + { + settingsGroup.Add(property); + if (setting.GetCustomAttributes(typeof(DepthOfField.Basic), false).Length > 0) + basicFields.Add(property); + if (setting.GetCustomAttributes(typeof(DepthOfField.Advanced), false).Length > 0) + advancedFields.Add(property); + if (setting.GetCustomAttributes(typeof(DepthOfField.Explicit), false).Length > 0) + explicitFields.Add(property); + } + } + } + + m_AccessFields[DepthOfField.TweakMode.Basic] = basicFields; + m_AccessFields[DepthOfField.TweakMode.Advanced] = advancedFields; + m_AccessFields[DepthOfField.TweakMode.Explicit] = explicitFields; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + foreach (var setting in m_TopLevelFields) + EditorGUILayout.PropertyField(setting); + + List accessList = m_AccessFields[tweakMode]; + + foreach (var group in m_GroupFields) + { + if (group.Key.FieldType == typeof(DepthOfField.QualitySettings) && ((DepthOfField)target).settings.quality != DepthOfField.QualityPreset.Custom) + continue; + + bool forceInclude = group.Key.GetCustomAttributes(typeof(DepthOfField.AllTweakModes), false).Length > 0; + + int count = group.Value.Count(x => accessList.Contains(x)); + if (!forceInclude && count == 0) + continue; + + EditorGUILayout.Space(); + EditorGUILayout.LabelField(ObjectNames.NicifyVariableName(group.Key.Name), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + foreach (var field in group.Value) + { + if (forceInclude || accessList.Contains(field)) + EditorGUILayout.PropertyField(field); + } + + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs.meta b/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs.meta new file mode 100644 index 0000000..5ccd63d --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Editor/DepthOfFieldEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3eb07ef5681934662814cc768bcdb60c +timeCreated: 1429220270 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers.meta b/Assets/Cinematic Effects/DepthOfField/Helpers.meta new file mode 100644 index 0000000..59bf0ab --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Helpers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5427d9a5126366c42b9509de8233bff7 +folderAsset: yes +timeCreated: 1453985653 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd b/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd new file mode 100644 index 0000000..eef48cb Binary files /dev/null and b/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd differ diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd.meta b/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd.meta new file mode 100644 index 0000000..213b2ae --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Helpers/HexShape.psd.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 904882c15ff3d4122a99f80ff4f23741 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif b/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif new file mode 100644 index 0000000..9dccaf3 Binary files /dev/null and b/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif differ diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif.meta b/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif.meta new file mode 100644 index 0000000..ce68835 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Helpers/RoundedHexShape.tif.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 9014ef007a9a1d545b0fba20daa0fc7c +timeCreated: 1454425451 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd b/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd new file mode 100644 index 0000000..a100649 Binary files /dev/null and b/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd differ diff --git a/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd.meta b/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd.meta new file mode 100644 index 0000000..e3d39b0 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Helpers/SphereShape.psd.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 5a26d04dc2c4a407b97a20b893e69203 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 64 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Resources.meta b/Assets/Cinematic Effects/DepthOfField/Resources.meta new file mode 100644 index 0000000..c9a9d2f --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aa2234edaeebe8b4fb5d67be342dbac9 +folderAsset: yes +timeCreated: 1453906992 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader b/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader new file mode 100644 index 0000000..341c9c0 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader @@ -0,0 +1,227 @@ + +/* + DX11 Bokeh splatting + + basic algorithm: + * find bright spots + * verify high frequency (otherwise dont care) + * if possitive, replace with black pixel and add to append buffer + * blend bokeh texture sprites via append buffer on top of blurred buffer +*/ + +Shader "Hidden/DepthOfField/BokehSplatting" +{ + Properties + { + _MainTex ("", 2D) = "white" {} + _BlurredColor ("", 2D) = "white" {} + _FgCocMask ("", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + #define BOKEH_ZERO_VEC (float4(0,0,0,0)) + #define BOKEH_ONE_VEC (float4(1,1,1,1)) + + float4 _BokehParams; // legend: dx11BokehScale, dx11BokehIntensity,dx11BokehThreshhold, internalBlurWidth + float4 _MainTex_TexelSize; + float3 _Screen; + float _SpawnHeuristic; + + sampler2D_float _CameraDepthTexture; + sampler2D _BlurredColor; + sampler2D _MainTex; + sampler2D _FgCocMask; + + struct appendStruct { + float3 pos; + float4 color; + }; + + struct gs_out { + float4 pos : SV_POSITION; + float3 uv : TEXCOORD0; + float4 color : TEXCOORD1; + float4 misc : TEXCOORD2; + }; + + // TODO: activate border clamp tex sampler state instead? + inline float4 clampBorderColor(float2 uv) + { +#if 1 + if(uv.x<=0) return BOKEH_ZERO_VEC; if(uv.x>=1) return BOKEH_ZERO_VEC; + if(uv.y<=0) return BOKEH_ZERO_VEC; if(uv.y>=1) return BOKEH_ZERO_VEC; +#endif + return BOKEH_ONE_VEC; + } + + struct vs_out { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 color : TEXCOORD1; + float cocOverlap : TEXCOORD2; + }; + + struct appdata { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv_flip : TEXCOORD0; + float2 uv : TEXCOORD1; + }; + + AppendStructuredBuffer pointBufferOutput : register(u1); + StructuredBuffer pointBuffer; + + vs_out vertApply (uint id : SV_VertexID) + { + vs_out o = (vs_out)0; + float2 pos = pointBuffer[id].pos.xy ; + o.pos = float4(pos * 2.0 - 1.0, 0, 1); + o.color = pointBuffer[id].color; + #if UNITY_UV_STARTS_AT_TOP + o.pos.y *= -1; + #endif + o.cocOverlap = pointBuffer[id].pos.z; + + return o; + } + + v2f vertCollect (appdata v) + { + v2f o; + o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord; + o.uv_flip = v.texcoord; + #if UNITY_UV_STARTS_AT_TOP + if(_MainTex_TexelSize.y<0) + o.uv_flip.y = 1.0-o.uv_flip.y; + if(_MainTex_TexelSize.y<0) + o.pos.y *= -1.0; + #endif + return o; + } + + [maxvertexcount(4)] + void geom (point vs_out input[1], inout TriangleStream outStream) + { + // NEW ENERGY CONSERVATION: + float2 scale2 = _BokehParams.ww * input[0].color.aa * _BokehParams.xx; + float4 offs = 0; + offs.xy = float2(3.0, 3.0) + 2.0f * floor(scale2 + float2(0.5,0.5)); + + float2 rs = ((float2(1.0, 1.0) + 2.0f * (scale2 + float2(0.5,0.5))));; + float2 f2 = offs.xy / rs; + + float energyAdjustment = (_BokehParams.y) / (rs.x*rs.y); + offs.xy *= _Screen.xy; + + gs_out output; + + output.pos = input[0].pos + offs*float4(-1,1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(0, 1, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(1,1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(1, 1, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(-1,-1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(0, 0, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + output.pos = input[0].pos + offs*float4(1,-1,0,0); + output.misc = float4(f2,0,0); + output.uv = float3(1, 0, input[0].cocOverlap); + output.color = input[0].color * energyAdjustment; + outStream.Append (output); + + outStream.RestartStrip(); + } + + float4 collectBrightPixel(half2 uv) + { + half4 c = tex2D (_MainTex, uv); + half coc = abs(c.a); + half lumc = Luminance (c.rgb); + + half4 cblurred = tex2D (_BlurredColor, uv); + half cocBlurred = abs(cblurred.a); + half lumblurred = Luminance (cblurred.rgb); + half fgCoc = -min(c.a,0.0h); + + [branch] + if (coc * _BokehParams.w > 1 && cocBlurred > 0.1 && lumc > _BokehParams.z && abs(lumc-lumblurred) > _SpawnHeuristic) + { + appendStruct append = (appendStruct)0; + append.pos = float3(uv, fgCoc); + append.color.rgba = half4(c.rgb * saturate(coc*4), coc); + pointBufferOutput.Append(append); + c = half4(c.rgb * saturate(1-coc*4), c.a); + } + return c; + } + +ENDCG + +SubShader +{ + +// pass 0: bokeh splatting +Pass { + + ZWrite Off ZTest Always Cull Off + BlendOp Add, Add + Blend DstAlpha One, Zero One + ColorMask RGBA + + CGPROGRAM + + #pragma target 5.0 + #pragma vertex vertApply + #pragma geometry geom + #pragma fragment frag + + fixed4 frag (gs_out i) : SV_Target + { + float2 uv = (i.uv.xy) * i.misc.xy + (float2(1,1)-i.misc.xy) * 0.5; // smooth uv scale + return float4(i.color.rgb, 1) * float4(tex2D(_MainTex, uv.xy).rgb, i.uv.z) * clampBorderColor (uv); + } + + ENDCG +} + +// pass 1: append buffer "collect" +Pass +{ + ZWrite Off ZTest Always Cull Off + + CGPROGRAM + + #pragma vertex vertCollect + #pragma fragment frag + #pragma target 5.0 + + float4 frag (v2f i) : SV_Target + { + return collectBrightPixel(i.uv); + } + ENDCG +} + + +} + +Fallback Off +} diff --git a/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader.meta b/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader.meta new file mode 100644 index 0000000..b36b645 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Resources/BokehSplatting.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c961b8ed1f00f924d804ada5143bd0e8 +timeCreated: 1449750679 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/DepthOfField/Resources/DepthOfField.shader b/Assets/Cinematic Effects/DepthOfField/Resources/DepthOfField.shader new file mode 100644 index 0000000..a049886 --- /dev/null +++ b/Assets/Cinematic Effects/DepthOfField/Resources/DepthOfField.shader @@ -0,0 +1,1447 @@ +Shader "Hidden/DepthOfField/DepthOfField" +{ + +Properties +{ + _MainTex ("-", 2D) = "black" + _SecondTex ("-", 2D) = "black" + _ThirdTex ("-", 2D) = "black" +} + +CGINCLUDE +#pragma target 3.0 +#pragma fragmentoption ARB_precision_hint_fastest +#include "UnityCG.cginc" + +//undef USE_LOCAL_TONEMAPPING if you dont want to use local tonemapping. +//tweaking these values down will trade stability for less bokeh (see Tonemap/ToneMapInvert methods below). +#ifndef SHADER_API_MOBILE + #define USE_LOCAL_TONEMAPPING +#endif +#define LOCAL_TONEMAP_START_LUMA 1.0 +#define LOCAL_TONEMAP_RANGE_LUMA 5.0 + +sampler2D _SecondTex; +sampler2D _ThirdTex; + +uniform half4 _MainTex_TexelSize; +uniform half4 _BlurCoe; +uniform half4 _BlurParams; +uniform half4 _BoostParams; +uniform half4 _Convolved_TexelSize; +uniform float4 _Offsets; + +uniform half4 _MainTex_ST; +uniform half4 _SecondTex_ST; +uniform half4 _ThirdTex_ST; + +#if (SHADER_TARGET >= 50 && !defined(SHADER_API_PSSL)) + #define USE_TEX2DOBJECT_FOR_COC +#endif + +#if defined(USE_TEX2DOBJECT_FOR_COC) + Texture2D _CameraDepthTexture; + SamplerState sampler_CameraDepthTexture; + Texture2D _MainTex; + SamplerState sampler_MainTex; +#else + sampler2D _MainTex; + sampler2D _CameraDepthTexture; +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Verter Shaders and declaration +/////////////////////////////////////////////////////////////////////////////// + +struct v2f +{ + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv1 : TEXCOORD1; +}; + +struct v2fDepth +{ + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; +}; + +struct v2fBlur +{ + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uv01 : TEXCOORD1; + float4 uv23 : TEXCOORD2; + float4 uv45 : TEXCOORD3; + float4 uv67 : TEXCOORD4; + float4 uv89 : TEXCOORD5; +}; + +v2fDepth vert(appdata_img v) +{ + v2fDepth o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; +#if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; +#endif + return o; +} + +v2fDepth vertNoFlip(appdata_img v) +{ + v2fDepth o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + return o; +} + +v2f vert_d( appdata_img v ) +{ + v2f o; + o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.uv1.xy = v.texcoord.xy; + o.uv.xy = v.texcoord.xy; + +#if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; +#endif + + return o; +} + +v2f vertFlip( appdata_img v ) +{ + v2f o; + o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.uv1.xy = v.texcoord.xy; + o.uv.xy = v.texcoord.xy; + +#if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1-o.uv.y; + if (_MainTex_TexelSize.y < 0) + o.uv1.y = 1-o.uv1.y; +#endif + + return o; +} + +v2fBlur vertBlurPlusMinus (appdata_img v) +{ + v2fBlur o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv.xy = v.texcoord.xy; + o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * float4(1,1, -1,-1) * _MainTex_TexelSize.xyxy / 6.0; + o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * float4(2,2, -2,-2) * _MainTex_TexelSize.xyxy / 6.0; + o.uv45 = v.texcoord.xyxy + _Offsets.xyxy * float4(3,3, -3,-3) * _MainTex_TexelSize.xyxy / 6.0; + o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * float4(4,4, -4,-4) * _MainTex_TexelSize.xyxy / 6.0; + o.uv89 = v.texcoord.xyxy + _Offsets.xyxy * float4(5,5, -5,-5) * _MainTex_TexelSize.xyxy / 6.0; + return o; +} + +/////////////////////////////////////////////////////////////////////////////// +// Helpers +/////////////////////////////////////////////////////////////////////////////// + +inline half4 FetchMainTex(float2 uv) +{ +#if defined(USE_TEX2DOBJECT_FOR_COC) + return _MainTex.SampleLevel(sampler_MainTex, uv, 0); +#else + return tex2Dlod (_MainTex, float4(uv,0,0)); +#endif +} + +inline half2 GetBilinearFetchTexOffsetFromAbsCoc(half4 absCoc) +{ + half4 cocWeights = absCoc * absCoc * absCoc; + + half2 offset = 0; + offset += cocWeights.r * float2(-1,+1); + offset += cocWeights.g * float2(+1,+1); + offset += cocWeights.b * float2(+1,-1); + offset += cocWeights.a * float2(-1,-1); + offset = clamp((half2)-1,(half2)1, offset); + offset *= 0.5; + return offset; +} + +inline half4 FetchColorAndCocFromMainTex(float2 uv, float2 offsetFromKernelCenter) +{ + //bilinear + half4 fetch = FetchMainTex(uv); + +//coc can't be linearly interpolated while doing "scatter and gather" or we will have haloing where coc vary sharply. +#if defined(USE_SPECIAL_FETCH_FOR_COC) + + #if defined(USE_TEX2DOBJECT_FOR_COC) + half4 allCoc = _MainTex.GatherAlpha(sampler_MainTex, uv); + half cocAB = (abs(allCoc.r) instead point sample the coc from the fartest away texel (not as good). + half2 bilinearCenter = floor(uv * _MainTex_TexelSize.zw - 0.5) + 1.0; + half2 cocUV = bilinearCenter + 0.5 * sign(offsetFromKernelCenter); + half coc = tex2Dlod (_MainTex, float4( cocUV * _MainTex_TexelSize.xy,0,0)).a; + #endif + + fetch.a = coc; +#endif + return fetch; +} + +inline half3 getBoostAmount(half4 colorAndCoc) +{ + half boost = colorAndCoc.a * (colorAndCoc.a < 0.0f ?_BoostParams.x:_BoostParams.y); + half luma = dot(colorAndCoc.rgb, half3(0.3h, 0.59h, 0.11h)); + return luma < _BoostParams.z ? half3(0.0h, 0.0h, 0.0h):colorAndCoc.rgb * boost.rrr; +} + +inline half GetCocFromZValue(half d, bool useExplicit) +{ + d = Linear01Depth (d); + + if (useExplicit) + { + half coc = d < _BlurCoe.z ? clamp((_BlurParams.x * d + _BlurParams.y), -1.0f, 0.0f):clamp((_BlurParams.z * d + _BlurParams.w), 0.0f, 1.0f); + return coc; + } + else + { + half aperture = _BlurParams.x; + half focalLength = _BlurParams.y; + half focusDistance01 = _BlurParams.z; + half focusRange01 = _BlurParams.w; + half coc = aperture * abs(d - focusDistance01) / (d + 1e-5f) - focusRange01; + coc = (d < focusDistance01 ? -1.0h:1.0h) * clamp(coc, 0.0f, 1.0f); + return coc; + } +} + +inline half GetCocFromDepth(half2 uv, bool useExplicit) +{ +#if defined(USE_TEX2DOBJECT_FOR_COC) + half d = _CameraDepthTexture.SampleLevel(sampler_CameraDepthTexture, uv, 0); +#else + half d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv); +#endif + return GetCocFromZValue(d,useExplicit); +} + +#if (SHADER_TARGET < 50 && !defined(SHADER_API_PSSL)) + half rcp(half x) { return 1 / x; } +#endif + +//from http://graphicrants.blogspot.dk/2013/12/tone-mapping.html +inline half3 Tonemap(half3 color) +{ +#ifdef USE_LOCAL_TONEMAPPING + half a = LOCAL_TONEMAP_START_LUMA; + half b = LOCAL_TONEMAP_RANGE_LUMA; + + half luma = max(color.r, max(color.g, color.b)); + if (luma <= a) + return color; + + return color * rcp(luma) * (a*a - b * luma) / (2*a - b - luma); +#else + return color; +#endif +} + +inline half3 ToneMapInvert(half3 color) +{ +#ifdef USE_LOCAL_TONEMAPPING + half a = LOCAL_TONEMAP_START_LUMA; + half b = LOCAL_TONEMAP_RANGE_LUMA; + + half luma = max(color.r, max(color.g, color.b)); + if (luma <= a) + return color; + + return color * rcp(luma) * (a*a - (2*a - b) * luma) / (b - luma); +#else + return color; +#endif +} + + +/////////////////////////////////////////////////////////////////////////////// +// Directional (hexagonal/octogonal) bokeh +/////////////////////////////////////////////////////////////////////////////// + +#define SAMPLE_NUM_L 6 +#define SAMPLE_NUM_M 11 +#define SAMPLE_NUM_H 16 + +inline half4 shapeDirectionalBlur(half2 uv, bool mergePass, int numSample, bool sampleDilatedFG) +{ + half4 centerTap = FetchMainTex(uv); + half fgCoc = centerTap.a; + half fgBlendFromPreviousPass = centerTap.a * _Offsets.z; + if (sampleDilatedFG) + { + half2 cocs = tex2Dlod(_SecondTex, half4(uv,0,0)).rg; + fgCoc = min(cocs.r, cocs.g); + centerTap.a = cocs.g; + } + + half bgRadius = smoothstep(0.0h, 0.85h, centerTap.a) * _BlurCoe.y; + half fgRadius = smoothstep(0.0h, 0.85h, -fgCoc) * _BlurCoe.x; + half radius = max(bgRadius, fgRadius); + if (radius < 1e-2f ) + { + return half4(centerTap.rgb, (sampleDilatedFG||mergePass)?fgBlendFromPreviousPass:centerTap.a); + } + + half radOtherFgRad = radius/(fgRadius + 1e-2h); + half radOtherBgRad = radius/(bgRadius + 1e-2h); + half2 range = radius * _MainTex_TexelSize.xy; + + half fgWeight = 0.001h; + half bgWeight = 0.001h; + half3 fgSum = half3(0,0,0); + half3 bgSum = half3(0,0,0); + + for (int k = 0; k < numSample; k++) + { + half t = (half)k / half(numSample-1); + half2 kVal = lerp(_Offsets.xy, -_Offsets.xy, t); + half2 offset = kVal * range; + half2 texCoord = uv + offset; + half4 sample0 = FetchColorAndCocFromMainTex(texCoord, offset); + if (sampleDilatedFG) + { + sample0.a = tex2Dlod(_SecondTex, half4(texCoord,0,0)).g; + } + + half dist = abs(2.0h * t - 1); + half distanceFactor = saturate(-0.5f * abs(sample0.a - centerTap.a) * dist + 1.0f); + half isNear = max(0.0h, -sample0.a); + half isFar = max(0.0h, sample0.a) * distanceFactor; + isNear *= 1- smoothstep(1.0h, 2.0h, dist * radOtherFgRad); + isFar *= 1- smoothstep(1.0h, 2.0h, dist * radOtherBgRad); + + fgWeight += isNear; + fgSum += sample0.rgb * isNear; + bgWeight += isFar; + bgSum += sample0.rgb * isFar; + } + + half3 fgColor = fgSum / (fgWeight + 0.0001h); + half3 bgColor = bgSum / (bgWeight + 0.0001h); + half bgBlend = saturate (2.0h * bgWeight / numSample); + half fgBlend = saturate (2.0h * fgWeight / numSample); + + half3 finalBg = lerp(centerTap.rgb, bgColor, bgBlend); + half3 finalColor = lerp(finalBg, fgColor, max(max(0.0h , -centerTap.a) , fgBlend)); + + if (mergePass) + { + finalColor = min(finalColor, tex2Dlod(_ThirdTex, half4(uv,0,0)).rgb); + } + + finalColor = lerp(centerTap.rgb, finalColor, saturate(bgBlend+fgBlend)); + fgBlend = max(fgBlendFromPreviousPass, fgBlend); + return half4(finalColor, (sampleDilatedFG||mergePass)?fgBlend:centerTap.a); +} + +half4 fragShapeLowQuality(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_L, false); +} + +half4 fragShapeLowQualityDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_L, true); +} + +half4 fragShapeLowQualityMerge(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_L, false); +} + +half4 fragShapeLowQualityMergeDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_L, true); +} + +half4 fragShapeMediumQuality(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_M, false); +} + +half4 fragShapeMediumQualityDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_M, true); +} + +half4 fragShapeMediumQualityMerge(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_M, false); +} + +half4 fragShapeMediumQualityMergeDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_M, true); +} + +half4 fragShapeHighQuality(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_H, false); +} + +half4 fragShapeHighQualityDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, false, SAMPLE_NUM_H, true); +} + +half4 fragShapeHighQualityMerge(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_H, false); +} + +half4 fragShapeHighQualityMergeDilateFg(v2fDepth i) : SV_Target +{ + return shapeDirectionalBlur(i.uv, true, SAMPLE_NUM_H, true); +} + +/////////////////////////////////////////////////////////////////////////////// +// Disk Bokeh +/////////////////////////////////////////////////////////////////////////////// + +static const half3 DiscBokeh48[48] = +{ + //48 tap regularly spaced circular kernel (x,y, length) + //fill free to change the shape to try other bokehs style :) + half3( 0.99144h, 0.13053h, 1.0h), + half3( 0.92388h, 0.38268h, 1.0h), + half3( 0.79335h, 0.60876h, 1.0h), + half3( 0.60876h, 0.79335h, 1.0h), + half3( 0.38268h, 0.92388h, 1.0h), + half3( 0.13053h, 0.99144h, 1.0h), + half3(-0.13053h, 0.99144h, 1.0h), + half3(-0.38268h, 0.92388h, 1.0h), + half3(-0.60876h, 0.79335h, 1.0h), + half3(-0.79335h, 0.60876h, 1.0h), + half3(-0.92388h, 0.38268h, 1.0h), + half3(-0.99144h, 0.13053h, 1.0h), + half3(-0.99144h,-0.13053h, 1.0h), + half3(-0.92388h,-0.38268h, 1.0h), + half3(-0.79335h,-0.60876h, 1.0h), + half3(-0.60876h,-0.79335h, 1.0h), + half3(-0.38268h,-0.92388h, 1.0h), + half3(-0.13053h,-0.99144h, 1.0h), + half3( 0.13053h,-0.99144h, 1.0h), + half3( 0.38268h,-0.92388h, 1.0h), + half3( 0.60876h,-0.79335h, 1.0h), + half3( 0.79335h,-0.60876h, 1.0h), + half3( 0.92388h,-0.38268h, 1.0h), + half3( 0.99144h,-0.13053h, 1.0h), + half3( 0.64732h, 0.12876h, 0.66h), + half3( 0.54877h, 0.36668h, 0.66h), + half3( 0.36668h, 0.54877h, 0.66h), + half3( 0.12876h, 0.64732h, 0.66h), + half3(-0.12876h, 0.64732h, 0.66h), + half3(-0.36668h, 0.54877h, 0.66h), + half3(-0.54877h, 0.36668h, 0.66h), + half3(-0.64732h, 0.12876h, 0.66h), + half3(-0.64732h,-0.12876h, 0.66h), + half3(-0.54877h,-0.36668h, 0.66h), + half3(-0.36668h,-0.54877h, 0.66h), + half3(-0.12876h,-0.64732h, 0.66h), + half3( 0.12876h,-0.64732h, 0.66h), + half3( 0.36668h,-0.54877h, 0.66h), + half3( 0.54877h,-0.36668h, 0.66h), + half3( 0.64732h,-0.12876h, 0.66h), + half3( 0.30488h, 0.12629h, 0.33h), + half3( 0.12629h, 0.30488h, 0.33h), + half3(-0.12629h, 0.30488h, 0.33h), + half3(-0.30488h, 0.12629h, 0.33h), + half3(-0.30488h,-0.12629h, 0.33h), + half3(-0.12629h,-0.30488h, 0.33h), + half3( 0.12629h,-0.30488h, 0.33h), + half3( 0.30488h,-0.12629h, 0.33h) +}; + +inline half4 circleCocBokeh(half2 uv, bool sampleDilatedFG, int increment) +{ + half4 centerTap = FetchMainTex(uv); + half fgCoc = centerTap.a; + if (sampleDilatedFG) + { + fgCoc = min(tex2Dlod(_SecondTex, half4(uv,0,0)).r, fgCoc); + } + + half bgRadius = 0.5h * smoothstep(0.0h, 0.85h, centerTap.a) * _BlurCoe.y; + half fgRadius = 0.5h * smoothstep(0.0h, 0.85h, -fgCoc) * _BlurCoe.x; + half radius = max(bgRadius, fgRadius); + if (radius < 1e-2f ) + { + return half4(centerTap.rgb, 0); + } + + half2 poissonScale = radius * _MainTex_TexelSize.xy; + half fgWeight = max(0,-centerTap.a); + half bgWeight = max(0, centerTap.a); + half3 fgSum = centerTap.rgb * fgWeight; + half3 bgSum = centerTap.rgb * bgWeight; + + half radOtherFgRad = radius/(fgRadius + 1e-2h); + half radOtherBgRad = radius/(bgRadius + 1e-2h); + + for (int l = 0; l < 48; l+= increment) + { + half2 sampleUV = uv + DiscBokeh48[l].xy * poissonScale.xy; + half4 sample0 = FetchColorAndCocFromMainTex(sampleUV, DiscBokeh48[l].xy); + + half isNear = max(0.0h, -sample0.a); + half distanceFactor = saturate(-0.5f * abs(sample0.a - centerTap.a) * DiscBokeh48[l].z + 1.0f); + half isFar = max(0.0h, sample0.a) * distanceFactor; + isNear *= 1- smoothstep(1.0h, 2.0h, DiscBokeh48[l].z * radOtherFgRad); + isFar *= 1- smoothstep(1.0h, 2.0h, DiscBokeh48[l].z * radOtherBgRad); + + fgWeight += isNear; + fgSum += sample0.rgb * isNear; + bgWeight += isFar; + bgSum += sample0.rgb * isFar; + } + + half3 fgColor = fgSum / (fgWeight + 0.0001h); + half3 bgColor = bgSum / (bgWeight + 0.0001h); + half bgBlend = saturate (2.0h * bgWeight / 49.0h); + half fgBlend = saturate (2.0h * fgWeight / 49.0h); + + half3 finalBg = lerp(centerTap.rgb, bgColor, bgBlend); + half3 finalColor = lerp(finalBg, fgColor, max(max(0.0h , -centerTap.a) , fgBlend)); + half4 returnValue = half4(finalColor, fgBlend ); + + return returnValue; +} + +half4 fragCircleBlurWithDilatedFg (v2fDepth i) : SV_Target +{ + return circleCocBokeh(i.uv, true, 1); +} + +half4 fragCircleBlur (v2fDepth i) : SV_Target +{ + return circleCocBokeh(i.uv, false, 1); +} + +half4 fragCircleBlurWithDilatedFgLowQuality (v2fDepth i) : SV_Target +{ + return circleCocBokeh(i.uv, true, 2); +} + +half4 fragCircleBlurLowQuality (v2fDepth i) : SV_Target +{ + return circleCocBokeh(i.uv, false, 2); +} + +/////////////////////////////////////////////////////////////////////////////// +// Prefilter blur +/////////////////////////////////////////////////////////////////////////////// + +#define DISC_PREFILTER_SAMPLE 9 +static const half2 DiscPrefilter[DISC_PREFILTER_SAMPLE] = +{ + half2(0.01288369f, 0.5416069f), + half2(-0.9192798f, -0.09529364f), + half2(0.7596578f, 0.1922738f), + half2(-0.14132f, -0.2880242f), + half2(-0.5249333f, 0.7777638f), + half2(-0.5871695f, -0.7403569f), + half2(0.3202196f, -0.6442268f), + half2(0.8553214f, -0.3920982f), + half2(0.5827708f, 0.7599297f) +}; + +half4 fragCocPrefilter (v2fDepth i) : SV_Target +{ + half4 centerTap = FetchMainTex(i.uv); + half radius = 0.33h * 0.5h * (centerTap.a < 0.0f ? -(centerTap.a * _BlurCoe.x):(centerTap.a * _BlurCoe.y)); + half2 poissonScale = radius * _MainTex_TexelSize.xy; + + if (radius < 0.01h ) + { + return centerTap; + } + + half sampleCount = 1; + half3 sum = centerTap.rgb * 1; + for (int l = 0; l < DISC_PREFILTER_SAMPLE; l++) + { + half2 sampleUV = i.uv + DiscPrefilter[l].xy * poissonScale.xy; + half4 sample0 = FetchColorAndCocFromMainTex(sampleUV, DiscPrefilter[l].xy); + half weight = max(sample0.a * centerTap.a,0.0h); + sum += sample0.rgb * weight; + sampleCount += weight; + } + + half4 returnValue = half4(sum / sampleCount, centerTap.a); + return returnValue; +} + +/////////////////////////////////////////////////////////////////////////////// +// Final merge and upsample +/////////////////////////////////////////////////////////////////////////////// + +inline half4 upSampleConvolved(half2 uv, bool useBicubic, bool useExplicit) +{ + half2 convolvedTexelPos = uv * _Convolved_TexelSize.xy; + half2 convolvedTexelCenter = floor( convolvedTexelPos ) + 0.5; + half2 convolvedTexelOffsetFromCenter = convolvedTexelPos - convolvedTexelCenter; + half2 offsetFromCoc = 0; + +#if defined(USE_TEX2DOBJECT_FOR_COC) + half2 cocUV = (convolvedTexelOffsetFromCenter * _Convolved_TexelSize.zw) + uv; + half4 coc = _CameraDepthTexture.GatherRed(sampler_CameraDepthTexture, cocUV); + coc.r = GetCocFromZValue(coc.r, useExplicit); + coc.g = GetCocFromZValue(coc.g, useExplicit); + coc.b = GetCocFromZValue(coc.b, useExplicit); + coc.a = GetCocFromZValue(coc.a, useExplicit); + + half4 absCoc = abs(coc); + offsetFromCoc = GetBilinearFetchTexOffsetFromAbsCoc(absCoc) * 0.5; + uv += offsetFromCoc * _Convolved_TexelSize.zw; +#endif + + if (useBicubic) + { + //bicubic upsampling (B-spline) + //adding offsetFromCoc "antialias" haloing from bright in focus region on dark out of focus region. + //however its a hack as we should consider all the COC of the bicubic region and kill the bicubic + //interpolation to avoid in any leaking but that would be too expensive, so when this is a problem + //one should rather disable bicubic interpolation. + half2 f = convolvedTexelOffsetFromCenter + offsetFromCoc; + half2 f2 = f * f; + half2 f3 = f * f2; + + half2 w0 = -0.166h * f3 + 0.5h * f2 - 0.5h * f + 0.166h; + half2 w1 = 0.5h * f3 - f2 + 0.666h; + half2 w3 = 0.166h * f3; + half2 w2 = 1.0h - w0 - w1 - w3; + + half2 s0 = w0 + w1; + half2 s1 = w2 + w3; + half2 f0 = w1 / s0; + half2 f1 = w3 / s1; + + half2 t0 = _Convolved_TexelSize.zw * (convolvedTexelCenter - 1.0h + f0); + half2 t1 = _Convolved_TexelSize.zw * (convolvedTexelCenter + 1.0h + f1); + + return tex2Dlod(_SecondTex, half4(t0.x, t0.y, 0, 0)) * s0.x * s0.y + + tex2Dlod(_SecondTex, half4(t1.x, t0.y, 0, 0)) * s1.x * s0.y + + tex2Dlod(_SecondTex, half4(t0.x, t1.y, 0, 0)) * s0.x * s1.y + + tex2Dlod(_SecondTex, half4(t1.x, t1.y, 0, 0)) * s1.x * s1.y; + } + else + { + return tex2Dlod(_SecondTex, half4(uv,0,0)); + } +} + +inline half4 dofMerge (half2 uv, bool useExplicit, bool useBicubic) +{ + half4 convolvedTap = upSampleConvolved(uv, useBicubic, useExplicit); + convolvedTap.rgb = ToneMapInvert(convolvedTap.rgb); + + half4 sourceTap = FetchMainTex(uv); + half coc = GetCocFromDepth(uv, useExplicit); + + sourceTap.rgb += getBoostAmount(half4(sourceTap.rgb, coc)); + + coc = (coc * _BlurCoe.y > 1.0h )?coc:0.0h; + half blendValue = smoothstep(0.0, 0.33h, max(coc, convolvedTap.a)); + half3 returnValue = lerp(sourceTap.rgb, convolvedTap.rgb, blendValue); + return (blendValue < 1e-2f) ? sourceTap : half4(returnValue.rgb, sourceTap.a); +} + +half4 fragMergeBicubic (v2fDepth i) : SV_Target +{ + return dofMerge(i.uv, false, true); +} + +half4 fragMergeExplicitBicubic (v2fDepth i) : SV_Target +{ + return dofMerge(i.uv, true, true); +} + +half4 fragMerge (v2fDepth i) : SV_Target +{ + return dofMerge(i.uv, false, false); +} + +half4 fragMergeExplicit (v2fDepth i) : SV_Target +{ + return dofMerge(i.uv, true, false); +} + +/////////////////////////////////////////////////////////////////////////////// +// Downsampling and COC computation +/////////////////////////////////////////////////////////////////////////////// + +inline half4 captureCoc(half2 uvColor, half2 uvDepth, bool useExplicit) +{ + /*****************/ + /* coc.a | coc.b */ + /* coc.r | coc.g */ + /*****************/ +#if defined(USE_TEX2DOBJECT_FOR_COC) + half4 coc = _CameraDepthTexture.GatherRed(sampler_CameraDepthTexture, uvDepth); + coc.r = GetCocFromZValue(coc.r, useExplicit); + coc.g = GetCocFromZValue(coc.g, useExplicit); + coc.b = GetCocFromZValue(coc.b, useExplicit); + coc.a = GetCocFromZValue(coc.a, useExplicit); +#else + half4 coc; + coc.r = GetCocFromDepth(uvDepth + _MainTex_TexelSize.xy * half2(-0.25f,+0.25f), useExplicit); + coc.g = GetCocFromDepth(uvDepth + _MainTex_TexelSize.xy * half2(+0.25f,+0.25f), useExplicit); + coc.b = GetCocFromDepth(uvDepth + _MainTex_TexelSize.xy * half2(+0.25f,-0.25f), useExplicit); + coc.a = GetCocFromDepth(uvDepth + _MainTex_TexelSize.xy * half2(-0.25f,-0.25f), useExplicit); +#endif + + half4 absCoc = abs(coc); + half2 offset = GetBilinearFetchTexOffsetFromAbsCoc(absCoc) * _MainTex_TexelSize.xy; + half4 color = FetchMainTex(uvColor + offset); + + half cocRG = (absCoc.r> m_GroupFields = new Dictionary>(); + private List m_SimpleProperties = new List(); + private List m_AdvancedProperties = new List(); + + private LensAberrations concreteTarget + { + get { return target as LensAberrations; } + } + + private void PopulateMap(FieldInfo group) + { + var searchPath = group.Name + "."; + foreach (var setting in group.FieldType.GetFields(BindingFlags.Instance | BindingFlags.Public)) + { + List settingsGroup; + if (!m_GroupFields.TryGetValue(group, out settingsGroup)) + { + settingsGroup = new List(); + m_GroupFields[group] = settingsGroup; + } + + var property = serializedObject.FindProperty(searchPath + setting.Name); + if (property != null) + { + settingsGroup.Add(property); + + if (setting.GetCustomAttributes(typeof(LensAberrations.SimpleSetting), false).Length > 0) + m_SimpleProperties.Add(property); + else if (setting.GetCustomAttributes(typeof(LensAberrations.AdvancedSetting), false).Length > 0) + m_AdvancedProperties.Add(property); + } + } + } + + private void OnEnable() + { + var settingsGroups = typeof(LensAberrations).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Where(x => x.GetCustomAttributes(typeof(LensAberrations.SettingsGroup), false).Any()); + + foreach (var settingGroup in settingsGroups) + PopulateMap(settingGroup); + } + + private void DrawFields() + { + foreach (var group in m_GroupFields) + { + var enabledField = group.Value.FirstOrDefault(x => x.propertyPath == group.Key.Name + ".enabled"); + var groupProperty = serializedObject.FindProperty(group.Key.Name); + + GUILayout.Space(5); + bool display = EditorGUIHelper.Header(groupProperty, enabledField); + if (!display) + continue; + + GUILayout.BeginHorizontal(); + { + GUILayout.Space(10); + GUILayout.BeginVertical(); + { + GUILayout.Space(3); + foreach (var field in group.Value.Where(x => x.propertyPath != group.Key.Name + ".enabled")) + { + if (group.Key.FieldType == typeof(LensAberrations.VignetteSettings)) + { + if (m_SimpleProperties.Contains(field) && concreteTarget.vignette.mode != LensAberrations.SettingsMode.Simple || + m_AdvancedProperties.Contains(field) && concreteTarget.vignette.mode != LensAberrations.SettingsMode.Advanced) + continue; + } + else + { + if (m_AdvancedProperties.Contains(field) && concreteTarget.chromaticAberration.mode != LensAberrations.SettingsMode.Advanced) + continue; + } + + EditorGUILayout.PropertyField(field); + } + } + GUILayout.EndVertical(); + } + GUILayout.EndHorizontal(); + } + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + DrawFields(); + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Cinematic Effects/LensAberrations/Editor/LensAberrationsEditor.cs.meta b/Assets/Cinematic Effects/LensAberrations/Editor/LensAberrationsEditor.cs.meta new file mode 100644 index 0000000..6b7344e --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/Editor/LensAberrationsEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8becb41f431ef90468376f6c5845e0bd +timeCreated: 1454680396 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs b/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs new file mode 100644 index 0000000..3046820 --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs @@ -0,0 +1,328 @@ +using UnityEngine; +using System; + +namespace UnityStandardAssets.CinematicEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Cinematic/Lens Aberrations")] + public class LensAberrations : MonoBehaviour + { + #region Attributes + [AttributeUsage(AttributeTargets.Field)] + public class SettingsGroup : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class SimpleSetting : Attribute + {} + + [AttributeUsage(AttributeTargets.Field)] + public class AdvancedSetting : Attribute + {} + #endregion + + #region Settings + public enum SettingsMode + { + Simple, + Advanced + } + + [Serializable] + public struct DistortionSettings + { + public bool enabled; + + [Range(-100f, 100f), Tooltip("Distortion amount.")] + public float amount; + + [Range(0f, 1f), Tooltip("Distortion center point (X axis).")] + public float centerX; + + [Range(0f, 1f), Tooltip("Distortion center point (Y axis).")] + public float centerY; + + [Range(0f, 2f), Tooltip("Amount multiplier on X axis.")] + public float amountX; + + [Range(0f, 2f), Tooltip("Amount multiplier on Y axis.")] + public float amountY; + + [Range(0.5f, 2f), Tooltip("Global screen scaling.")] + public float scale; + + public static DistortionSettings defaultSettings + { + get + { + return new DistortionSettings + { + enabled = false, + amount = 0f, + centerX = 0.5f, + centerY = 0.5f, + amountX = 1f, + amountY = 1f, + scale = 1f + }; + } + } + } + + [Serializable] + public struct VignetteSettings + { + public bool enabled; + + [Tooltip("Use the \"Advanced\" mode if you need more control over the vignette shape and smoothness at the expense of performances.")] + public SettingsMode mode; + + [Tooltip("Vignette color. Use the alpha channel for transparency.")] + public Color color; + + [SimpleSetting, Range(0f, 3f), Tooltip("Amount of vignetting on screen.")] + public float intensity; + + [SimpleSetting, Range(0.1f, 3f), Tooltip("Smoothness of the vignette borders.")] + public float smoothness; + + [AdvancedSetting, Range(0f, 1f), Tooltip("Vignette radius in screen coordinates.")] + public float radius; + + [AdvancedSetting, Range(0f, 1f), Tooltip("Smoothness of the vignette border. Tweak this at the same time as \"Falloff\" to get more control over the vignette gradient.")] + public float spread; + + [AdvancedSetting, Range(0f, 1f), Tooltip("Smoothness of the vignette border. Tweak this at the same time as \"Spread\" to get more control over the vignette gradient.")] + public float falloff; + + [AdvancedSetting, Range(0f, 1f), Tooltip("Lower values will make a square-ish vignette.")] + public float roundness; + + [Range(0f, 1f), Tooltip("Blurs the corners of the screen. Leave this at 0 to disable it.")] + public float blur; + + [Range(0f, 1f), Tooltip("Desaturate the corners of the screen. Leave this to 0 to disable it.")] + public float desaturate; + + public static VignetteSettings defaultSettings + { + get + { + return new VignetteSettings + { + enabled = false, + mode = SettingsMode.Simple, + color = Color.black, + intensity = 1.2f, + smoothness = 1.5f, + radius = 0.7f, + spread = 0.4f, + falloff = 0.5f, + roundness = 1f, + blur = 0f, + desaturate = 0f + }; + } + } + } + + [Serializable] + public struct ChromaticAberrationSettings + { + public bool enabled; + + [Tooltip("Use the \"Advanced\" mode if you need more control over the chromatic aberrations at the expense of performances.")] + public SettingsMode mode; + + [Range(-2f, 2f)] + public float tangential; + + [AdvancedSetting, Range(0f, 2f)] + public float axial; + + [AdvancedSetting, Range(0f, 2f)] + public float contrastDependency; + + public static ChromaticAberrationSettings defaultSettings + { + get + { + return new ChromaticAberrationSettings + { + enabled = false, + mode = SettingsMode.Simple, + tangential = 0f, + axial = 0f, + contrastDependency = 0f + }; + } + } + } + #endregion + + [SettingsGroup] + public DistortionSettings distortion = DistortionSettings.defaultSettings; + + [SettingsGroup] + public VignetteSettings vignette = VignetteSettings.defaultSettings; + + [SettingsGroup] + public ChromaticAberrationSettings chromaticAberration = ChromaticAberrationSettings.defaultSettings; + + private enum Pass + { + BlurPrePass, + Simple, + Desaturate, + Blur, + BlurDesaturate, + ChromaticAberrationOnly, + DistortOnly + } + + [SerializeField] + private Shader m_Shader; + public Shader shader + { + get + { + if (m_Shader == null) + m_Shader = Shader.Find("Hidden/LensAberrations"); + + return m_Shader; + } + } + + private Material m_Material; + public Material material + { + get + { + if (m_Material == null) + m_Material = ImageEffectHelper.CheckShaderAndCreateMaterial(shader); + + return m_Material; + } + } + + private void OnEnable() + { + if (!ImageEffectHelper.IsSupported(shader, false, false, this)) + enabled = false; + } + + private void OnDisable() + { + if (m_Material != null) + DestroyImmediate(m_Material); + + m_Material = null; + } + + private void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (!vignette.enabled && !chromaticAberration.enabled && !distortion.enabled) + { + Graphics.Blit(source, destination); + return; + } + + material.DisableKeyword("DISTORT"); + material.DisableKeyword("UNDISTORT"); + + if (distortion.enabled) + { + float amount = 1.6f * Math.Max(Mathf.Abs(distortion.amount), 1f); + float theta = 0.01745329251994f * Math.Min(160f, amount); + float sigma = 2f * Mathf.Tan(theta * 0.5f); + Vector4 p0 = new Vector4(2f * distortion.centerX - 1f, 2f * distortion.centerY - 1f, distortion.amountX, distortion.amountY); + Vector3 p1 = new Vector3(distortion.amount >= 0f ? theta : 1f / theta, sigma, 1f / distortion.scale); + material.SetVector("_DistCenterScale", p0); + material.SetVector("_DistAmount", p1); + + if (distortion.amount >= 0f) + material.EnableKeyword("DISTORT"); + else + material.EnableKeyword("UNDISTORT"); + } + + material.SetColor("_VignetteColor", vignette.color); + + if (vignette.mode == SettingsMode.Simple) + { + material.SetVector("_Vignette1", new Vector4(vignette.intensity, vignette.smoothness, vignette.blur, 1f - vignette.desaturate)); + material.DisableKeyword("VIGNETTE_ADVANCED"); + } + else + { + float r1 = 0.5f * vignette.radius; + float r2 = r1 + vignette.spread; + float falloff = Math.Max(0.000001f, (1f - vignette.falloff) * 0.5f); + float roundness = (1f - vignette.roundness) * 6f + vignette.roundness * 2f; + material.SetVector("_Vignette1", new Vector4(r1, 1f / (r2 - r1), vignette.blur, 1f - vignette.desaturate)); + material.SetVector("_Vignette2", new Vector3(falloff, 0.5f / falloff, roundness)); + material.EnableKeyword("VIGNETTE_ADVANCED"); + } + + material.DisableKeyword("CHROMATIC_SIMPLE"); + material.DisableKeyword("CHROMATIC_ADVANCED"); + + if (chromaticAberration.enabled && !Mathf.Approximately(chromaticAberration.tangential, 0f)) + { + if (chromaticAberration.mode == SettingsMode.Advanced) + material.EnableKeyword("CHROMATIC_ADVANCED"); + else + material.EnableKeyword("CHROMATIC_SIMPLE"); + + Vector4 chromaParams = new Vector4(2.5f * chromaticAberration.tangential, 5f * chromaticAberration.axial, 5f / Mathf.Max(Mathf.Epsilon, chromaticAberration.contrastDependency), 5f); + material.SetVector("_ChromaticAberration", chromaParams); + } + + if (vignette.enabled && vignette.blur > 0f) + { + // Downscale + gaussian blur (2 passes) + int w = source.width / 2; + int h = source.height / 2; + RenderTexture tmp1 = RenderTexture.GetTemporary(w, h, 0, source.format); + RenderTexture tmp2 = RenderTexture.GetTemporary(w, h, 0, source.format); + + material.SetVector("_BlurPass", new Vector2(1f / w, 0f)); + Graphics.Blit(source, tmp1, material, (int)Pass.BlurPrePass); + material.SetVector("_BlurPass", new Vector2(0f, 1f / h)); + Graphics.Blit(tmp1, tmp2, material, (int)Pass.BlurPrePass); + + material.SetVector("_BlurPass", new Vector2(1f / w, 0f)); + Graphics.Blit(tmp2, tmp1, material, (int)Pass.BlurPrePass); + material.SetVector("_BlurPass", new Vector2(0f, 1f / h)); + Graphics.Blit(tmp1, tmp2, material, (int)Pass.BlurPrePass); + + material.SetTexture("_BlurTex", tmp2); + + if (vignette.desaturate > 0f) + Graphics.Blit(source, destination, material, (int)Pass.BlurDesaturate); + else + Graphics.Blit(source, destination, material, (int)Pass.Blur); + + RenderTexture.ReleaseTemporary(tmp2); + RenderTexture.ReleaseTemporary(tmp1); + } + else if (vignette.enabled && vignette.desaturate > 0f) + { + Graphics.Blit(source, destination, material, (int)Pass.Desaturate); + } + else if (vignette.enabled) + { + Graphics.Blit(source, destination, material, (int)Pass.Simple); + } + else if (chromaticAberration.enabled) + { + Graphics.Blit(source, destination, material, (int)Pass.ChromaticAberrationOnly); + } + else // Distortion enabled + { + Graphics.Blit(source, destination, material, (int)Pass.DistortOnly); + } + } + } +} diff --git a/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs.meta b/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs.meta new file mode 100644 index 0000000..9f89d38 --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/LensAberrations.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ff5335a7357baa3489a469d0ca0f40f3 +timeCreated: 1454589487 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - m_Shader: {fileID: 4800000, guid: 136ab50fe2b9ad64d9c22adc3668abb7, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/LensAberrations/Resources.meta b/Assets/Cinematic Effects/LensAberrations/Resources.meta new file mode 100644 index 0000000..711f7b8 --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6580025651e0f284489694492cf3ce61 +folderAsset: yes +timeCreated: 1454583120 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader b/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader new file mode 100644 index 0000000..19e3550 --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader @@ -0,0 +1,299 @@ +Shader "Hidden/LensAberrations" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGINCLUDE + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma multi_compile __ DISTORT UNDISTORT + #pragma multi_compile __ CHROMATIC_SIMPLE CHROMATIC_ADVANCED + #pragma multi_compile __ VIGNETTE_ADVANCED + #include "UnityCG.cginc" + #pragma target 3.0 + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + + half4 _DistCenterScale; + half3 _DistAmount; + half4 _ChromaticAberration; + half4 _Vignette1; + half3 _Vignette2; + half4 _VignetteColor; + + sampler2D _BlurTex; + half2 _BlurPass; + + struct v2f + { + half4 pos : SV_POSITION; + half2 uv : TEXCOORD0; + half4 uv1 : TEXCOORD1; + half4 uv2 : TEXCOORD2; + }; + + v2f vert_blur_prepass(appdata_img v) + { + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv.y = 1.0 - o.uv.y; + #endif + + half2 d1 = 1.3846153846 * _BlurPass; + half2 d2 = 3.2307692308 * _BlurPass; + o.uv1 = half4(o.uv + d1, o.uv - d1); + o.uv2 = half4(o.uv + d2, o.uv - d2); + return o; + } + + half4 frag_blur_prepass(v2f i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half3 c = color.rgb * 0.2270270270; + c += tex2D(_MainTex, i.uv1.xy).rgb * 0.3162162162; + c += tex2D(_MainTex, i.uv1.zw).rgb * 0.3162162162; + c += tex2D(_MainTex, i.uv2.xy).rgb * 0.0702702703; + c += tex2D(_MainTex, i.uv2.zw).rgb * 0.0702702703; + return half4(c, color.a); + } + + #define DISK_SAMPLE_NUM 9 + static const half2 SmallDiscKernel[DISK_SAMPLE_NUM] = + { + half2(-0.926212,-0.40581), + half2(-0.695914, 0.457137), + half2(-0.203345, 0.820716), + half2( 0.96234, -0.194983), + half2( 0.473434,-0.480026), + half2( 0.519456, 0.767022), + half2( 0.185461,-0.893124), + half2( 0.89642, 0.412458), + half2(-0.32194, -0.932615), + }; + + half4 chromaticAberration(half4 color, half2 uv) + { +#if CHROMATIC_SIMPLE + half2 coords = (uv - 0.5) * 2.0; + half2 uvg = uv - _MainTex_TexelSize.xy * _ChromaticAberration.x * coords * dot(coords, coords); + color.g = tex2D(_MainTex, uvg).g; +#elif CHROMATIC_ADVANCED + half2 coords = (uv - 0.5) * 2.0; + half tangentialStrength = _ChromaticAberration.x * dot(coords, coords); + half uvg = -(_ChromaticAberration.y > abs(tangentialStrength) ? sign(tangentialStrength) * _ChromaticAberration.y : tangentialStrength); + half2 offset = _MainTex_TexelSize.xy * uvg * coords; + half3 blurredTap = color.rgb * 0.1; + + for (int l = 0; l < DISK_SAMPLE_NUM; l++) + { + half2 sampleUV = uv + _MainTex_TexelSize.xy * SmallDiscKernel[l].xy + offset; + half3 tap = tex2D(_MainTex, sampleUV).rgb; + blurredTap += tap; + } + + blurredTap /= (half)DISK_SAMPLE_NUM + 0.2; + half contrast = saturate(_ChromaticAberration.z * Luminance(abs(blurredTap - color.rgb))); + color.g = lerp(color.g, blurredTap.g, contrast); +#endif + return color; + } + + half2 distort(half2 uv) + { +#if DISTORT + uv = (uv - 0.5) * _DistAmount.z + 0.5; + half2 ruv = _DistCenterScale.zw * (uv - 0.5 - _DistCenterScale.xy); + half ru = length(ruv); + half wu = ru * _DistAmount.x; + ru = tan(wu) * (1.0 / (ru * _DistAmount.y)); + uv = uv + ruv * (ru - 1.0); +#elif UNDISTORT + uv = (uv - 0.5) * _DistAmount.z + 0.5; + half2 ruv = _DistCenterScale.zw * (uv - 0.5 - _DistCenterScale.xy); + half ru = length(ruv); + ru = (1.0 / ru) * _DistAmount.x * atan(ru * _DistAmount.y); + uv = uv + ruv * (ru - 1.0); +#endif + return uv; + } + + half get_vignette_factor(half2 uv) + { +#if VIGNETTE_ADVANCED + uv = abs(uv - 0.5); + half x = saturate((pow(pow(uv.x, _Vignette2.z) + pow(uv.y, _Vignette2.z), 1.0 / _Vignette2.z) - _Vignette1.x) * _Vignette1.y); + half ix = 1.0 - x; + half v = _Vignette2.x == 0.5 ? x : x <= _Vignette2.x ? x * x / ((2.0 - _Vignette2.y) * x + _Vignette2.x * (_Vignette2.y - 1.0)) : 1.0 + ix * ix / ((_Vignette2.y - 2.0) * ix + (_Vignette2.x - 1.0) * (_Vignette2.y - 1.0)); + return 1.0 - v; +#else + half2 d = (uv - 0.5) * _Vignette1.x; + return pow(saturate(1.0 - dot(d, d)), _Vignette1.y); +#endif + } + + half4 vignette_simple(half4 color, half2 uv) + { + half v = get_vignette_factor(uv); + color.rgb = lerp(_VignetteColor.rgb, color.rgb, lerp(1.0, v, _VignetteColor.a)); + return color; + } + + half4 vignette_desat(half4 color, half2 uv) + { + half v = get_vignette_factor(uv); + half lum = Luminance(color); + color.rgb = lerp(lerp(lum.xxx, color.rgb, _Vignette1.w), color.rgb, v); + color.rgb = lerp(_VignetteColor.rgb, color.rgb, lerp(1.0, v, _VignetteColor.a)); + return color; + } + + half4 vignette_blur(half4 color, half2 uv) + { + half2 coords = (uv - 0.5) * 2.0; + half v = get_vignette_factor(uv); + half3 blur = tex2D(_BlurTex, uv); + color.rgb = lerp(color.rgb, blur, saturate(_Vignette1.z * dot(coords, coords))); + color.rgb = lerp(_VignetteColor.rgb, color.rgb, lerp(1.0, v, _VignetteColor.a)); + return color; + } + + half4 vignette_blur_desat(half4 color, half2 uv) + { + half2 coords = (uv - 0.5) * 2.0; + half v = get_vignette_factor(uv); + half3 blur = tex2D(_BlurTex, uv); + color.rgb = lerp(color.rgb, blur, saturate(_Vignette1.z * dot(coords, coords))); + half lum = Luminance(color); + color.rgb = lerp(lerp(lum.xxx, color.rgb, _Vignette1.w), color.rgb, v); + color.rgb = lerp(_VignetteColor.rgb, color.rgb, lerp(1.0, v, _VignetteColor.a)); + return color; + } + + half4 frag_simple(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + half4 color = tex2D(_MainTex, uv); + color = chromaticAberration(color, uv); + color = vignette_simple(color, uv); + return color; + } + + half4 frag_desat(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + half4 color = tex2D(_MainTex, uv); + color = chromaticAberration(color, uv); + color = vignette_desat(color, uv); + return color; + } + + half4 frag_blur(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + half4 color = tex2D(_MainTex, uv); + color = chromaticAberration(color, uv); + color = vignette_blur(color, uv); + return color; + } + + half4 frag_blur_desat(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + half4 color = tex2D(_MainTex, uv); + color = chromaticAberration(color, uv); + color = vignette_blur_desat(color, uv); + return color; + } + + half4 frag_chroma_only(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + half4 color = tex2D(_MainTex, uv); + color = chromaticAberration(color, uv); + return color; + } + + half4 frag_distort_only(v2f_img i) : SV_Target + { + half2 uv = distort(i.uv); + return tex2D(_MainTex, uv); + } + + ENDCG + + // (0) Blur pre-pass + Pass + { + CGPROGRAM + #pragma vertex vert_blur_prepass + #pragma fragment frag_blur_prepass + ENDCG + } + + // (1) Vignette simple + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_simple + ENDCG + } + + // (2) Vignette desat + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_desat + ENDCG + } + + // (3) Vignette blur + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_blur + ENDCG + } + + // (4) Vignette blur desat + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_blur_desat + ENDCG + } + + // (5) Chromatic aberration only + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_chroma_only + ENDCG + } + + // (6) Distort only + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_distort_only + ENDCG + } + } + FallBack off +} diff --git a/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader.meta b/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader.meta new file mode 100644 index 0000000..e89bc32 --- /dev/null +++ b/Assets/Cinematic Effects/LensAberrations/Resources/LensAberrations.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 136ab50fe2b9ad64d9c22adc3668abb7 +timeCreated: 1454583143 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur.meta b/Assets/Cinematic Effects/MotionBlur.meta new file mode 100644 index 0000000..ada916f --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 22361d70f5bd34f35be82589af855289 +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins.meta b/Assets/Cinematic Effects/MotionBlur/Plugins.meta new file mode 100644 index 0000000..ee24b52 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 01c03782ff2da4717ae56fc9d4e95223 +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll new file mode 100644 index 0000000..8ce8d8c Binary files /dev/null and b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll differ diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll.meta new file mode 100644 index 0000000..ed556df --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotion.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: f4044b596510fe5489da703d40efc52b +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs new file mode 100644 index 0000000..7e391fe --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs @@ -0,0 +1,1167 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif +#if UNITY_4 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 +#define UNITY_PRE_5_3 +#endif + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using UnityEngine; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif +using UnityEngine.Serialization; + +namespace AmplifyMotion +{ + public enum Quality + { + Mobile = 0, + Standard = 1, + Standard_SM3 = 2, + SoftEdge_SM3 = 3 + } +} + +[RequireComponent( typeof( Camera ) )] +[AddComponentMenu( "" )] +public class AmplifyMotionEffectBase : MonoBehaviour +{ + public AmplifyMotion.Quality QualityLevel = AmplifyMotion.Quality.Standard; + public bool AutoRegisterObjs = true; + public Camera[] OverlayCameras = new Camera[ 0 ]; + public LayerMask CullingMask = ~0; + public int QualitySteps = 1; + public float MotionScale = 3.0f; + public float CameraMotionMult = 1.0f; + public float MinVelocity = 1.0f; + public float MaxVelocity = 10.0f; + public float DepthThreshold = 0.001f; + [FormerlySerializedAs( "workerThreads" )] public int WorkerThreads = 0; + public bool SystemThreadPool = false; + public bool ForceCPUOnly = false; + public bool DebugMode = false; + + // For compatibility + [Obsolete( "workerThreads is deprecated, please use WorkerThreads instead." )] + public int workerThreads { get { return WorkerThreads; } set { WorkerThreads = value; } } + + private Camera m_camera; + private bool m_starting = true; + + private int m_width, m_height; + private RenderTexture m_motionRT; +#if UNITY_4 + private Texture m_dummyTex; +#endif + private Material m_blurMaterial; + private Material m_solidVectorsMaterial; + private Material m_skinnedVectorsMaterial; + private Material m_clothVectorsMaterial; + private Material m_reprojectionMaterial; + private Material m_combineMaterial; + private Material m_dilationMaterial; + private Material m_depthMaterial; + private Material m_debugMaterial; + + internal Material SolidVectorsMaterial { get { return m_solidVectorsMaterial; } } + internal Material SkinnedVectorsMaterial { get { return m_skinnedVectorsMaterial; } } + internal Material ClothVectorsMaterial { get { return m_clothVectorsMaterial; } } + + internal RenderTexture MotionRenderTexture { get { return m_motionRT; } } + +#if TRIAL + private Texture2D m_watermark; +#endif + + private Dictionary m_linkedCameras = new Dictionary(); + public Dictionary LinkedCameras { get { return m_linkedCameras; } } + internal Camera[] m_linkedCameraKeys = null; + internal AmplifyMotionCamera[] m_linkedCameraValues = null; + internal bool m_linkedCamerasChanged = true; + + private AmplifyMotionPostProcess m_currentPostProcess = null; + + private int m_globalObjectId = 1; + + private float m_deltaTime; + private float m_fixedDeltaTime; + + private float m_motionScaleNorm; + private float m_fixedMotionScaleNorm; + + internal float MotionScaleNorm { get { return m_motionScaleNorm; } } + internal float FixedMotionScaleNorm { get { return m_fixedMotionScaleNorm; } } + + private AmplifyMotion.Quality m_qualityLevel; + + private AmplifyMotionCamera m_baseCamera = null; + public AmplifyMotionCamera BaseCamera { get { return m_baseCamera; } } + + private AmplifyMotion.WorkerThreadPool m_workerThreadPool = null; + internal AmplifyMotion.WorkerThreadPool WorkerPool { get { return m_workerThreadPool; } } + + // GLOBAL OBJECT MANAGEMENT + public static Dictionary m_activeObjects = new Dictionary(); + public static Dictionary m_activeCameras = new Dictionary(); + + private static bool m_isD3D = false; + public static bool IsD3D { get { return m_isD3D; } } + + private bool m_canUseGPU = false; + public bool CanUseGPU { get { return m_canUseGPU; } } + +#if !UNITY_4 + private const CameraEvent m_updateCBEvent = CameraEvent.BeforeImageEffectsOpaque; + private CommandBuffer m_updateCB = null; + + private const CameraEvent m_fixedUpdateCBEvent = CameraEvent.BeforeImageEffectsOpaque; + private CommandBuffer m_fixedUpdateCB = null; + + private const CameraEvent m_renderCBEvent = CameraEvent.BeforeImageEffects; + private CommandBuffer m_renderCB = null; +#endif + + private static bool m_ignoreMotionScaleWarning = false; + public static bool IgnoreMotionScaleWarning { get { return m_ignoreMotionScaleWarning; } } + + private static AmplifyMotionEffectBase m_firstInstance = null; + public static AmplifyMotionEffectBase FirstInstance { get { return m_firstInstance; } } + public static AmplifyMotionEffectBase Instance { get { return m_firstInstance; } } + + void Awake() + { + if ( m_firstInstance == null ) + m_firstInstance = this; + + m_isD3D = SystemInfo.graphicsDeviceVersion.StartsWith( "Direct3D" ); + m_globalObjectId = 1; + m_width = m_height = 0; + + if ( ForceCPUOnly ) + m_canUseGPU = false; + else + { + #if !UNITY_4 + bool hasRTs = SystemInfo.supportsRenderTextures; + bool hasSM3 = ( SystemInfo.graphicsShaderLevel >= 30 ); + bool hasRHalfTex = SystemInfo.SupportsTextureFormat( TextureFormat.RHalf ); + bool hasRGHalfTex = SystemInfo.SupportsTextureFormat( TextureFormat.RGHalf ); + bool hasARGBHalfTex = SystemInfo.SupportsTextureFormat( TextureFormat.RGBAHalf ); + bool hasARGBFloatRT = SystemInfo.SupportsRenderTextureFormat( RenderTextureFormat.ARGBFloat ); + + m_canUseGPU = hasRTs && hasSM3 && hasRHalfTex && hasRGHalfTex && hasARGBHalfTex && hasARGBFloatRT; + #endif + } + } + + internal void ResetObjectId() + { + m_globalObjectId = 1; + } + + internal int GenerateObjectId( GameObject obj ) + { + // id = 0, static objs + // id = 255, excluded objs + + if ( obj.isStatic ) + return 0; // same as background + + m_globalObjectId++; + + // TEMPORARY FIX: wrap around; may cause artifacts on id collision of nearby objs + if ( m_globalObjectId > 254 ) + m_globalObjectId = 1; + + return m_globalObjectId; + } + + void SafeDestroyMaterial( ref Material mat ) + { + if ( mat != null ) + { + DestroyImmediate( mat ); + mat = null; + } + } + + bool CheckMaterialAndShader( Material material, string name ) + { + bool ok = true; + if ( material == null || material.shader == null ) + { + Debug.LogWarning( "[AmplifyMotion] Error creating " + name + " material" ); + ok = false; + } + else if ( !material.shader.isSupported ) + { + Debug.LogWarning( "[AmplifyMotion] " + name + " shader not supported on this platform" ); + ok = false; + } + return ok; + } + + void DestroyMaterials() + { + SafeDestroyMaterial( ref m_blurMaterial ); + SafeDestroyMaterial( ref m_solidVectorsMaterial ); + SafeDestroyMaterial( ref m_skinnedVectorsMaterial ); + SafeDestroyMaterial( ref m_clothVectorsMaterial ); + SafeDestroyMaterial( ref m_reprojectionMaterial ); + SafeDestroyMaterial( ref m_combineMaterial ); + SafeDestroyMaterial( ref m_dilationMaterial ); + SafeDestroyMaterial( ref m_depthMaterial ); + SafeDestroyMaterial( ref m_debugMaterial ); + } + + bool CreateMaterials() + { + DestroyMaterials(); + + int shaderModel = ( SystemInfo.graphicsShaderLevel >= 30 ) ? 3 : 2; + + string blurShader = "Hidden/Amplify Motion/MotionBlurSM" + shaderModel; + string solidVectorsShader = "Hidden/Amplify Motion/SolidVectors"; + string skinnedVectorsShader = "Hidden/Amplify Motion/SkinnedVectors"; + string clothVectorsShader = "Hidden/Amplify Motion/ClothVectors"; + string reprojectionVectorsShader = "Hidden/Amplify Motion/ReprojectionVectors"; + string combineShader = "Hidden/Amplify Motion/Combine"; + string dilationShader = "Hidden/Amplify Motion/Dilation"; + string depthShader = "Hidden/Amplify Motion/Depth"; + string debugShader = "Hidden/Amplify Motion/Debug"; + + try + { + m_blurMaterial = new Material( Shader.Find( blurShader ) ) { hideFlags = HideFlags.DontSave }; + m_solidVectorsMaterial = new Material( Shader.Find( solidVectorsShader ) ) { hideFlags = HideFlags.DontSave }; + m_skinnedVectorsMaterial = new Material( Shader.Find( skinnedVectorsShader ) ) { hideFlags = HideFlags.DontSave }; + m_clothVectorsMaterial = new Material( Shader.Find( clothVectorsShader ) ) { hideFlags = HideFlags.DontSave }; + m_reprojectionMaterial = new Material( Shader.Find( reprojectionVectorsShader ) ) { hideFlags = HideFlags.DontSave }; + m_combineMaterial = new Material( Shader.Find( combineShader ) ) { hideFlags = HideFlags.DontSave }; + m_dilationMaterial = new Material( Shader.Find( dilationShader ) ) { hideFlags = HideFlags.DontSave }; + m_depthMaterial = new Material( Shader.Find( depthShader ) ) { hideFlags = HideFlags.DontSave }; + m_debugMaterial = new Material( Shader.Find( debugShader ) ) { hideFlags = HideFlags.DontSave }; + } + catch ( Exception ) + { + } + + // even if we fail, we still need to know which one failed + bool ok = CheckMaterialAndShader( m_blurMaterial, blurShader ); + ok = ok && CheckMaterialAndShader( m_solidVectorsMaterial, solidVectorsShader ); + ok = ok && CheckMaterialAndShader( m_skinnedVectorsMaterial, skinnedVectorsShader ); + ok = ok && CheckMaterialAndShader( m_clothVectorsMaterial, clothVectorsShader ); + ok = ok && CheckMaterialAndShader( m_reprojectionMaterial, reprojectionVectorsShader ); + ok = ok && CheckMaterialAndShader( m_combineMaterial, combineShader ); + ok = ok && CheckMaterialAndShader( m_dilationMaterial, dilationShader ); + ok = ok && CheckMaterialAndShader( m_depthMaterial, depthShader ); + ok = ok && CheckMaterialAndShader( m_debugMaterial, debugShader ); + return ok; + } + + RenderTexture CreateRenderTexture( string name, int depth, RenderTextureFormat fmt, RenderTextureReadWrite rw, FilterMode fm ) + { + RenderTexture rt = new RenderTexture( m_width, m_height, depth, fmt, rw ); + rt.hideFlags = HideFlags.DontSave; + rt.name = name; + rt.wrapMode = TextureWrapMode.Clamp; + rt.filterMode = fm; + rt.Create(); + return rt; + } + + void SafeDestroyRenderTexture( ref RenderTexture rt ) + { + if ( rt != null ) + { + RenderTexture.active = null; + rt.Release(); + DestroyImmediate( rt ); + rt = null; + } + } + + void SafeDestroyTexture( ref Texture tex ) + { + if ( tex != null ) + { + DestroyImmediate( tex ); + tex = null; + } + } + + void DestroyRenderTextures() + { + RenderTexture.active = null; + + SafeDestroyRenderTexture( ref m_motionRT ); + + #if UNITY_4 + SafeDestroyTexture( ref m_dummyTex ); + if ( m_dummyTex != null ) + { + DestroyImmediate( m_dummyTex ); + m_dummyTex = null; + } + #endif + } + + void UpdateRenderTextures( bool qualityChanged ) + { + int screenWidth = Mathf.FloorToInt( m_camera.pixelWidth + 0.5f ); + int screenHeight = Mathf.FloorToInt( m_camera.pixelHeight + 0.5f ); + + if ( QualityLevel == AmplifyMotion.Quality.Mobile ) + { + screenWidth /= 2; + screenHeight /= 2; + } + + if ( m_width != screenWidth || m_height != screenHeight || qualityChanged ) + { + m_width = screenWidth; + m_height = screenHeight; + + DestroyRenderTextures(); + } + + if ( m_motionRT == null ) + m_motionRT = CreateRenderTexture( "AM-MotionVectors", 24, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear, FilterMode.Point ); + + #if UNITY_4 + if ( m_dummyTex == null ) + { + m_dummyTex = new Texture2D( 4, 4, TextureFormat.ARGB32, false, true ); + m_dummyTex.wrapMode = TextureWrapMode.Clamp; + m_dummyTex.hideFlags = HideFlags.DontSave; + } + #endif + } + + public bool CheckSupport() + { + if ( !SystemInfo.supportsImageEffects || !SystemInfo.supportsRenderTextures ) + { + Debug.LogError( "[AmplifyMotion] Initialization failed. This plugin requires support for Image Effects and Render Textures." ); + return false; + } + return true; + } + + void InitializeThreadPool() + { + if ( WorkerThreads <= 0 ) + WorkerThreads = Mathf.Max( Environment.ProcessorCount / 2, 1 ); // half of CPU threads; non-busy idle + + m_workerThreadPool = new AmplifyMotion.WorkerThreadPool(); + m_workerThreadPool.InitializeAsyncUpdateThreads( WorkerThreads, SystemThreadPool ); + } + + void ShutdownThreadPool() + { + if ( m_workerThreadPool != null ) + { + m_workerThreadPool.FinalizeAsyncUpdateThreads(); + m_workerThreadPool = null; + } + } + + void InitializeCommandBuffers() + { + #if !UNITY_4 + ShutdownCommandBuffers(); + + m_updateCB = new CommandBuffer(); + m_updateCB.name = "AmplifyMotion.Update"; + m_camera.AddCommandBuffer( m_updateCBEvent, m_updateCB ); + + m_fixedUpdateCB = new CommandBuffer(); + m_fixedUpdateCB.name = "AmplifyMotion.FixedUpdate"; + m_camera.AddCommandBuffer( m_fixedUpdateCBEvent, m_fixedUpdateCB ); + + m_renderCB = new CommandBuffer(); + m_renderCB.name = "AmplifyMotion.Render"; + m_camera.AddCommandBuffer( m_renderCBEvent, m_renderCB ); + + #endif + } + + void ShutdownCommandBuffers() + { + #if !UNITY_4 + if ( m_updateCB != null ) + { + m_camera.RemoveCommandBuffer( m_updateCBEvent, m_updateCB ); + m_updateCB.Release(); + m_updateCB = null; + } + if ( m_fixedUpdateCB != null ) + { + m_camera.RemoveCommandBuffer( m_fixedUpdateCBEvent, m_fixedUpdateCB ); + m_fixedUpdateCB.Release(); + m_fixedUpdateCB = null; + } + if ( m_renderCB != null ) + { + m_camera.RemoveCommandBuffer( m_renderCBEvent, m_renderCB ); + m_renderCB.Release(); + m_renderCB = null; + } + #endif + } + + void OnEnable() + { + m_camera = GetComponent(); + + if ( !CheckSupport() ) + { + enabled = false; + return; + } + + InitializeThreadPool(); + + m_starting = true; + + if ( !CreateMaterials() ) + { + Debug.LogError( "[AmplifyMotion] Failed loading or compiling necessary shaders. Please try reinstalling Amplify Motion or contact support@amplify.pt" ); + enabled = false; + return; + } + + if ( AutoRegisterObjs ) + UpdateActiveObjects(); + + InitializeCameras(); + InitializeCommandBuffers(); + + UpdateRenderTextures( true ); + + m_linkedCameras.TryGetValue( m_camera, out m_baseCamera ); + + if ( m_baseCamera == null ) + { + Debug.LogError( "[AmplifyMotion] Failed setting up Base Camera. Please contact support@amplify.pt" ); + enabled = false; + return; + } + if ( m_currentPostProcess != null ) + m_currentPostProcess.enabled = true; + + m_qualityLevel = QualityLevel; + } + + void OnDisable() + { + if ( m_currentPostProcess != null ) + m_currentPostProcess.enabled = false; + + ShutdownCommandBuffers(); + ShutdownThreadPool(); + } + + void Start() + { + UpdatePostProcess(); + +#if TRIAL + m_watermark = new Texture2D( 4, 4 ); + m_watermark.LoadImage( AmplifyMotion.Watermark.ImageData ); +#endif + } + + internal void RemoveCamera( Camera reference ) + { + m_linkedCameras.Remove( reference ); + } + + void OnDestroy() + { + AmplifyMotionCamera[] prevLinkedCams = m_linkedCameras.Values.ToArray(); + + foreach ( AmplifyMotionCamera cam in prevLinkedCams ) + { + if ( cam != null && cam.gameObject != gameObject ) + { + Camera actual = cam.GetComponent(); + if ( actual != null ) + actual.targetTexture = null; + DestroyImmediate( cam ); + } + } + + DestroyRenderTextures(); + DestroyMaterials(); +#if TRIAL + DestroyImmediate( m_watermark ); +#endif + } + + GameObject RecursiveFindCamera( GameObject obj, string auxCameraName ) + { + GameObject cam = null; + if ( obj.name == auxCameraName ) + cam = obj; + else + { + foreach ( Transform child in obj.transform ) + { + cam = RecursiveFindCamera( child.gameObject, auxCameraName ); + if ( cam != null ) + break; + } + } + return cam; + } + + void InitializeCameras() + { + List cleanOverlayCameras = new List( OverlayCameras.Length ); + for ( int i = 0; i < OverlayCameras.Length; i++ ) + { + if ( OverlayCameras[ i ] != null ) + cleanOverlayCameras.Add( OverlayCameras[ i ] ); + } + + Camera[] referenceCameras = new Camera[ cleanOverlayCameras.Count + 1 ]; + + referenceCameras[ 0 ] = m_camera; + for ( int i = 0; i < cleanOverlayCameras.Count; i++ ) + referenceCameras[ i + 1 ] = cleanOverlayCameras[ i ]; + + m_linkedCameras.Clear(); + + for ( int i = 0; i < referenceCameras.Length; i++ ) + { + Camera reference = referenceCameras[ i ]; + if ( !m_linkedCameras.ContainsKey( reference ) ) + { + AmplifyMotionCamera cam = reference.gameObject.GetComponent(); + if ( cam != null ) + { + cam.enabled = false; + cam.enabled = true; + } + else + cam = reference.gameObject.AddComponent(); + + cam.LinkTo( this, i > 0 ); + + m_linkedCameras.Add( reference, cam ); + m_linkedCamerasChanged = true; + } + } + } + + public void UpdateActiveCameras() + { + InitializeCameras(); + } + + internal static void RegisterCamera( AmplifyMotionCamera cam ) + { + m_activeCameras.Add( cam.GetComponent(), cam ); + foreach ( AmplifyMotionObjectBase obj in m_activeObjects.Values ) + obj.RegisterCamera( cam ); + } + + internal static void UnregisterCamera( AmplifyMotionCamera cam ) + { + foreach ( AmplifyMotionObjectBase obj in m_activeObjects.Values ) + obj.UnregisterCamera( cam ); + m_activeCameras.Remove( cam.GetComponent() ); + } + + public void UpdateActiveObjects() + { + GameObject[] gameObjs = FindObjectsOfType( typeof( GameObject ) ) as GameObject[]; + for ( int i = 0; i < gameObjs.Length; i++ ) + { + if ( !m_activeObjects.ContainsKey( gameObjs[ i ] ) ) + TryRegister( gameObjs[ i ], true ); + } + } + + internal static void RegisterObject( AmplifyMotionObjectBase obj ) + { + m_activeObjects.Add( obj.gameObject, obj ); + foreach ( AmplifyMotionCamera cam in m_activeCameras.Values ) + obj.RegisterCamera( cam ); + } + + internal static void UnregisterObject( AmplifyMotionObjectBase obj ) + { + foreach ( AmplifyMotionCamera cam in m_activeCameras.Values ) + obj.UnregisterCamera( cam ); + m_activeObjects.Remove( obj.gameObject ); + } + + internal static bool FindValidTag( Material[] materials ) + { + for ( int i = 0; i < materials.Length; i++ ) + { + Material mat = materials[ i ]; + if ( mat != null ) + { + string tag = mat.GetTag( "RenderType", false ); + if ( tag == "Opaque" || tag == "TransparentCutout" ) + #if UNITY_4 + return true; + #else + return !mat.IsKeywordEnabled( "_ALPHABLEND_ON" ) && !mat.IsKeywordEnabled( "_ALPHAPREMULTIPLY_ON" ); + #endif + } + } + return false; + } + + internal static bool CanRegister( GameObject gameObj, bool autoReg ) + { + // Ignore static objects + if ( gameObj.isStatic ) + return false; + + // Ignore invalid materials; Ignore static batches + Renderer renderer = gameObj.GetComponent(); + if ( renderer == null || renderer.sharedMaterials == null || renderer.isPartOfStaticBatch ) + return false; + + // Ignore disabled renderer + if ( !renderer.enabled ) + return false; + + // Ignore if visible only for shadows + #if !UNITY_4 + if ( renderer.shadowCastingMode == UnityEngine.Rendering.ShadowCastingMode.ShadowsOnly ) + return false; + #endif + + if ( renderer.GetType() == typeof( SpriteRenderer ) ) + { + return false; + } + else + { + // Ignore unsupported RenderType + if ( !FindValidTag( renderer.sharedMaterials ) ) + return false; + + #if UNITY_4 + if ( renderer.GetType() == typeof( ClothRenderer ) ) + { + if ( gameObj.GetComponent().tearFactor != 0.0f ) + Debug.LogWarning( "[AmplifyMotion] Tearable cloth objects are not supported at this time. Ignoring cloth object \"" + renderer.name + "\"" ); + else + return true; + } + #endif + + // Only valid and supported renderers + Type type = renderer.GetType(); + if ( type == typeof( MeshRenderer ) || type == typeof( SkinnedMeshRenderer ) ) + { + return true; + } + + #if !UNITY_PRE_5_3 + if ( type == typeof( ParticleSystemRenderer ) && !autoReg ) + { + // Only supported ParticleSystem modes + ParticleSystemRenderMode mode = ( renderer as ParticleSystemRenderer ).renderMode; + return ( mode == ParticleSystemRenderMode.Mesh || mode == ParticleSystemRenderMode.Billboard ); + } + #endif + } + + return false; + } + + internal static void TryRegister( GameObject gameObj, bool autoReg ) + { + if ( CanRegister( gameObj, autoReg ) && gameObj.GetComponent() == null ) + { + AmplifyMotionObjectBase.ApplyToChildren = false; + gameObj.AddComponent(); + AmplifyMotionObjectBase.ApplyToChildren = true; + } + } + + internal static void TryUnregister( GameObject gameObj ) + { + AmplifyMotionObjectBase comp = gameObj.GetComponent(); + if ( comp != null ) + Destroy( comp ); + } + + public void Register( GameObject gameObj ) + { + if ( !m_activeObjects.ContainsKey( gameObj ) ) + TryRegister( gameObj, false ); + } + + public static void RegisterS( GameObject gameObj ) + { + if ( !m_activeObjects.ContainsKey( gameObj ) ) + TryRegister( gameObj, false ); + } + + public void RegisterRecursively( GameObject gameObj ) + { + if ( !m_activeObjects.ContainsKey( gameObj ) ) + TryRegister( gameObj, false ); + + foreach ( Transform child in gameObj.transform ) + RegisterRecursively( child.gameObject ); + } + + public static void RegisterRecursivelyS( GameObject gameObj ) + { + if ( !m_activeObjects.ContainsKey( gameObj ) ) + TryRegister( gameObj, false ); + + foreach ( Transform child in gameObj.transform ) + RegisterRecursivelyS( child.gameObject ); + } + + public void Unregister( GameObject gameObj ) + { + if ( m_activeObjects.ContainsKey( gameObj ) ) + TryUnregister( gameObj ); + } + + public static void UnregisterS( GameObject gameObj ) + { + if ( m_activeObjects.ContainsKey( gameObj ) ) + TryUnregister( gameObj ); + } + + public void UnregisterRecursively( GameObject gameObj ) + { + if ( m_activeObjects.ContainsKey( gameObj ) ) + TryUnregister( gameObj ); + + foreach ( Transform child in gameObj.transform ) + UnregisterRecursively( child.gameObject ); + } + + public static void UnregisterRecursivelyS( GameObject gameObj ) + { + if ( m_activeObjects.ContainsKey( gameObj ) ) + TryUnregister( gameObj ); + + foreach ( Transform child in gameObj.transform ) + UnregisterRecursivelyS( child.gameObject ); + } + + void UpdatePostProcess() + { + Camera highestReference = null; + float highestDepth = -float.MaxValue; + + if ( m_linkedCamerasChanged ) + UpdateLinkedCameras(); + + for ( int i = 0; i < m_linkedCameraKeys.Length; i++ ) + { + if ( m_linkedCameraKeys[ i ] != null && m_linkedCameraKeys[ i ].isActiveAndEnabled && m_linkedCameraKeys[ i ].depth > highestDepth ) + { + highestReference = m_linkedCameraKeys[ i ]; + highestDepth = m_linkedCameraKeys[ i ].depth; + } + } + + if ( m_currentPostProcess != null && m_currentPostProcess.gameObject != highestReference.gameObject ) + { + DestroyImmediate( m_currentPostProcess ); + m_currentPostProcess = null; + } + + if ( m_currentPostProcess == null && highestReference != null && highestReference != m_camera ) + { + AmplifyMotionPostProcess[] runtimes = gameObject.GetComponents(); + if ( runtimes != null && runtimes.Length > 0 ) + { + for ( int i = 0; i < runtimes.Length; i++ ) + DestroyImmediate( runtimes[ i ] ); + } + m_currentPostProcess = highestReference.gameObject.AddComponent(); + m_currentPostProcess.Instance = this; + } + } + + void LateUpdate() + { + if ( m_baseCamera.AutoStep ) + { + float delta = Application.isPlaying ? Time.deltaTime : Time.fixedDeltaTime; + float fixedDelta = Time.fixedDeltaTime; + + m_deltaTime = ( delta > float.Epsilon ) ? delta : m_deltaTime; + m_fixedDeltaTime = ( delta > float.Epsilon ) ? fixedDelta : m_fixedDeltaTime; + } + + QualitySteps = Mathf.Clamp( QualitySteps, 0, 16 ); + MotionScale = Mathf.Max( MotionScale, 0 ); + MinVelocity = Mathf.Min( MinVelocity, MaxVelocity ); + DepthThreshold = Mathf.Max( DepthThreshold, 0 ); + + UpdatePostProcess(); + } + + public void StopAutoStep() + { + foreach ( AmplifyMotionCamera cam in m_linkedCameras.Values ) + cam.StopAutoStep(); + } + + public void StartAutoStep() + { + foreach ( AmplifyMotionCamera cam in m_linkedCameras.Values ) + cam.StartAutoStep(); + } + + public void Step( float delta ) + { + m_deltaTime = delta; + m_fixedDeltaTime = delta; + foreach ( AmplifyMotionCamera cam in m_linkedCameras.Values ) + cam.Step(); + } + + void UpdateLinkedCameras() + { + Dictionary.KeyCollection keys = m_linkedCameras.Keys; + Dictionary.ValueCollection values = m_linkedCameras.Values; + + if ( m_linkedCameraKeys == null || keys.Count != m_linkedCameraKeys.Length ) + m_linkedCameraKeys = new Camera[ keys.Count ]; + + if ( m_linkedCameraValues == null || values.Count != m_linkedCameraValues.Length ) + m_linkedCameraValues = new AmplifyMotionCamera[ values.Count ]; + + keys.CopyTo( m_linkedCameraKeys, 0 ); + values.CopyTo( m_linkedCameraValues, 0 ); + + m_linkedCamerasChanged = false; + } + + void FixedUpdate() + { + if ( m_camera.enabled ) + { + if ( m_linkedCamerasChanged ) + UpdateLinkedCameras(); + + #if !UNITY_4 + m_fixedUpdateCB.Clear(); + #endif + + for ( int i = 0; i < m_linkedCameraValues.Length; i++ ) + { + if ( m_linkedCameraValues[ i ] != null && m_linkedCameraValues[ i ].isActiveAndEnabled ) + { + #if UNITY_4 + m_linkedCameraValues[ i ].FixedUpdateTransform(); + #else + m_linkedCameraValues[ i ].FixedUpdateTransform( m_fixedUpdateCB ); + #endif + } + } + } + } + + void OnPreRender() + { + if ( m_camera.enabled && ( Time.frameCount == 1 || Mathf.Abs( Time.deltaTime ) > float.Epsilon ) ) + { + if ( m_linkedCamerasChanged ) + UpdateLinkedCameras(); + + #if !UNITY_4 + m_updateCB.Clear(); + #endif + + for ( int i = 0; i < m_linkedCameraValues.Length; i++ ) + { + if ( m_linkedCameraValues[ i ] != null && m_linkedCameraValues[ i ].isActiveAndEnabled ) + { + #if UNITY_4 + m_linkedCameraValues[ i ].UpdateTransform(); + #else + m_linkedCameraValues[ i ].UpdateTransform( m_updateCB ); + #endif + } + } + } + } + +#if UNITY_4 + void RenderReprojectionVectors( RenderTexture destination, float scale ) + { + Shader.SetGlobalMatrix( "_AM_MATRIX_CURR_REPROJ", m_baseCamera.PrevViewProjMatrix * m_baseCamera.InvViewProjMatrix ); + Shader.SetGlobalFloat( "_AM_MOTION_SCALE", scale ); + + Graphics.Blit( m_dummyTex, destination, m_reprojectionMaterial ); + } +#else + void RenderReprojectionVectors( CommandBuffer commandBuffer, RenderTexture destination, float scale ) + { + commandBuffer.SetGlobalMatrix( "_AM_MATRIX_CURR_REPROJ", m_baseCamera.PrevViewProjMatrix * m_baseCamera.InvViewProjMatrix ); + commandBuffer.SetGlobalFloat( "_AM_MOTION_SCALE", scale ); + + RenderTexture dummy = null; + commandBuffer.Blit( new RenderTargetIdentifier( dummy ), destination, m_reprojectionMaterial ); + } +#endif + + public static void DiscardContents( RenderTexture rtex ) + { + #if !( UNITY_WP8 || UNITY_WP8_1 || UNITY_WSA ) // why?.. + rtex.DiscardContents(); + #endif + } + + void OnPostRender() + { + bool qualityChanged = ( QualityLevel != m_qualityLevel ); + if ( qualityChanged ) + { + CreateMaterials(); + m_qualityLevel = QualityLevel; + } + UpdateRenderTextures( qualityChanged ); + + ResetObjectId(); + + #if UNITY_4 + RenderBuffer prevColor = Graphics.activeColorBuffer; + RenderBuffer prevDepth = Graphics.activeDepthBuffer; + #endif + bool cameraMotion = ( CameraMotionMult > float.Epsilon ); + bool clearColor = !cameraMotion || m_starting; + + float rcpDepthThreshold = ( DepthThreshold > float.Epsilon ) ? 1.0f / DepthThreshold : float.MaxValue; + + m_motionScaleNorm = ( m_deltaTime >= float.Epsilon ) ? MotionScale * ( 1.0f / m_deltaTime ) : 0; + m_fixedMotionScaleNorm = ( m_fixedDeltaTime >= float.Epsilon ) ? MotionScale * ( 1.0f / m_fixedDeltaTime ) : 0; + + float objectScale = !m_starting ? m_motionScaleNorm : 0; + float objectFixedScale = !m_starting ? m_fixedMotionScaleNorm : 0; + + DiscardContents( m_motionRT ); + + #if UNITY_4 + Graphics.SetRenderTarget( m_motionRT ); + GL.Clear( true, clearColor, Color.black ); + + Shader.SetGlobalFloat( "_AM_MIN_VELOCITY", MinVelocity ); + Shader.SetGlobalFloat( "_AM_MAX_VELOCITY", MaxVelocity ); + Shader.SetGlobalFloat( "_AM_RCP_TOTAL_VELOCITY", 1.0f / ( MaxVelocity - MinVelocity ) ); + Shader.SetGlobalVector( "_AM_DEPTH_THRESHOLD", new Vector2( DepthThreshold, rcpDepthThreshold ) ); + #else + m_updateCB.Clear(); + m_renderCB.Clear(); + + m_renderCB.SetGlobalFloat( "_AM_MIN_VELOCITY", MinVelocity ); + m_renderCB.SetGlobalFloat( "_AM_MAX_VELOCITY", MaxVelocity ); + m_renderCB.SetGlobalFloat( "_AM_RCP_TOTAL_VELOCITY", 1.0f / ( MaxVelocity - MinVelocity ) ); + m_renderCB.SetGlobalVector( "_AM_DEPTH_THRESHOLD", new Vector2( DepthThreshold, rcpDepthThreshold ) ); + + m_renderCB.SetRenderTarget( m_motionRT ); + m_renderCB.ClearRenderTarget( true, clearColor, Color.black ); + #endif + + if ( cameraMotion ) + { + float cameraMotionScaleNorm = ( m_deltaTime >= float.Epsilon ) ? MotionScale * CameraMotionMult * ( 1.0f / m_deltaTime ) : 0; + float cameraScale = !m_starting ? cameraMotionScaleNorm : 0; + + #if UNITY_4 + RenderReprojectionVectors( m_motionRT, cameraScale ); + #else + RenderReprojectionVectors( m_renderCB, m_motionRT, cameraScale ); + #endif + } + + #if UNITY_4 + m_baseCamera.RenderVectors( objectScale, objectFixedScale, QualityLevel ); + #else + // base camera + m_baseCamera.RenderVectors( m_renderCB, objectScale, objectFixedScale, QualityLevel ); + + // overlay cameras + for ( int i = 0; i < m_linkedCameraValues.Length; i++ ) + { + AmplifyMotionCamera cam = m_linkedCameraValues[ i ]; + if ( cam != null && cam.Overlay && cam.isActiveAndEnabled ) + m_linkedCameraValues[ i ].RenderVectors( m_renderCB, objectScale, objectFixedScale, QualityLevel ); + } + #endif + + m_starting = false; + + #if UNITY_4 + Graphics.SetRenderTarget( prevColor, prevDepth ); + #endif + } + + void ApplyMotionBlur( RenderTexture source, RenderTexture destination, Vector4 blurStep ) + { + bool mobile = ( QualityLevel == AmplifyMotion.Quality.Mobile ); + int pass = ( int ) QualityLevel; + + RenderTexture depthRT = null; + if ( mobile ) + { + depthRT = RenderTexture.GetTemporary( m_width, m_height, 0, RenderTextureFormat.ARGB32 ); + depthRT.name = "AM-DepthTemp"; + depthRT.wrapMode = TextureWrapMode.Clamp; + depthRT.filterMode = FilterMode.Point; + } + + RenderTexture combinedRT = RenderTexture.GetTemporary( m_width, m_height, 0, source.format ); + combinedRT.name = "AM-CombinedTemp"; + combinedRT.wrapMode = TextureWrapMode.Clamp; + combinedRT.filterMode = FilterMode.Point; + + DiscardContents( combinedRT ); + m_combineMaterial.SetTexture( "_MotionTex", m_motionRT ); + source.filterMode = FilterMode.Point; + Graphics.Blit( source, combinedRT, m_combineMaterial, 0 ); + + m_blurMaterial.SetTexture( "_MotionTex", m_motionRT ); + if ( mobile ) + { + Graphics.Blit( null, depthRT, m_depthMaterial, 0 ); + m_blurMaterial.SetTexture( "_DepthTex", depthRT ); + } + + if ( QualitySteps > 1 ) + { + RenderTexture temp = RenderTexture.GetTemporary( m_width, m_height, 0, source.format ); + temp.name = "AM-CombinedTemp2"; + temp.filterMode = FilterMode.Point; + + float step = 1.0f / QualitySteps; + float scale = 1.0f; + RenderTexture src = combinedRT; + RenderTexture dst = temp; + + for ( int i = 0; i < QualitySteps; i++ ) + { + if ( dst != destination ) + DiscardContents( dst ); + + m_blurMaterial.SetVector( "_AM_BLUR_STEP", blurStep * scale ); + Graphics.Blit( src, dst, m_blurMaterial, pass ); + + if ( i < QualitySteps - 2 ) + { + RenderTexture tmp = dst; + dst = src; + src = tmp; + } + else + { + src = dst; + dst = destination; + } + scale -= step; + } + + RenderTexture.ReleaseTemporary( temp ); + } + else + { + m_blurMaterial.SetVector( "_AM_BLUR_STEP", blurStep ); + Graphics.Blit( combinedRT, destination, m_blurMaterial, pass ); + } + + if ( mobile ) + { + // we need the full res here + m_combineMaterial.SetTexture( "_MotionTex", m_motionRT ); + Graphics.Blit( source, destination, m_combineMaterial, 1 ); + } + + RenderTexture.ReleaseTemporary( combinedRT ); + if ( depthRT != null ) + RenderTexture.ReleaseTemporary( depthRT ); + } + + void OnRenderImage( RenderTexture source, RenderTexture destination ) + { + if ( m_currentPostProcess == null ) + PostProcess( source, destination ); + else + Graphics.Blit( source, destination ); + } + + public void PostProcess( RenderTexture source, RenderTexture destination ) + { + Vector4 blurStep = Vector4.zero; + blurStep.x = MaxVelocity / 1000.0f; + blurStep.y = MaxVelocity / 1000.0f; + + RenderTexture dilatedRT = null; + if ( QualitySettings.antiAliasing > 1 ) + { + dilatedRT = RenderTexture.GetTemporary( m_width, m_height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear ); + dilatedRT.name = "AM-DilatedTemp"; + dilatedRT.filterMode = FilterMode.Point; + + m_dilationMaterial.SetTexture( "_MotionTex", m_motionRT ); + Graphics.Blit( m_motionRT, dilatedRT, m_dilationMaterial, 0 ); + m_dilationMaterial.SetTexture( "_MotionTex", dilatedRT ); + Graphics.Blit( dilatedRT, m_motionRT, m_dilationMaterial, 1 ); + } + + if ( DebugMode ) + { + m_debugMaterial.SetTexture( "_MotionTex", m_motionRT ); + Graphics.Blit( source, destination, m_debugMaterial ); + } + else + { + ApplyMotionBlur( source, destination, blurStep ); + } + + if ( dilatedRT != null ) + RenderTexture.ReleaseTemporary( dilatedRT ); + } + +#if TRIAL + void OnGUI() + { + GUI.DrawTexture( new Rect( 15, Screen.height - m_watermark.height - 12, m_watermark.width, m_watermark.height ), m_watermark ); + } +#endif + + //void OnGUI() + //{ + // GUI.color = Color.black; + // GUILayout.BeginHorizontal(); + // GUILayout.Space( 300 ); + // GUILayout.BeginVertical(); + // GUILayout.Label( "GPU / RT / SM3 => " + m_canUseGPU + " / " + SystemInfo.supportsRenderTextures + " / " + ( SystemInfo.graphicsShaderLevel >= 30 ) ); + // GUILayout.Label( "TEX.RHalf => " + SystemInfo.SupportsTextureFormat( TextureFormat.RHalf ) ); + // GUILayout.Label( "TEX.RGHalf => " + SystemInfo.SupportsTextureFormat( TextureFormat.RGHalf ) ); + // GUILayout.Label( "TEX.RGBAHalf => " + SystemInfo.SupportsTextureFormat( TextureFormat.RGBAHalf ) ); + // GUILayout.Label( "RT.RFloat => " + SystemInfo.SupportsRenderTextureFormat( RenderTextureFormat.RFloat ) ); + // GUILayout.Label( "RT.ARGBFloat => " + SystemInfo.SupportsRenderTextureFormat( RenderTextureFormat.ARGBFloat ) ); + // GUILayout.EndVertical(); + // GUILayout.EndHorizontal(); + //} +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs.meta new file mode 100644 index 0000000..fb79157 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionBase.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8deec7bec0fc2284e96c09a92987d61f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs new file mode 100644 index 0000000..874c73f --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs @@ -0,0 +1,318 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif + +[AddComponentMenu( "" )] +[RequireComponent( typeof( Camera ) )] +public class AmplifyMotionCamera : MonoBehaviour +{ + internal AmplifyMotionEffectBase Instance = null; + + internal Matrix4x4 PrevViewProjMatrix; + internal Matrix4x4 ViewProjMatrix; + internal Matrix4x4 InvViewProjMatrix; + + internal Matrix4x4 PrevViewProjMatrixRT; + internal Matrix4x4 ViewProjMatrixRT; + + internal Transform Transform; + + private bool m_linked = false; + private bool m_initialized = false; + private bool m_starting = true; + + private bool m_autoStep = true; + private bool m_step = false; + private bool m_overlay = false; + private Camera m_camera; + + public bool Initialized { get { return m_initialized; } } + public bool AutoStep { get { return m_autoStep; } } + public bool Overlay { get { return m_overlay; } } + public Camera Camera { get { return m_camera; } } + + private int m_prevFrameCount = 0; + + private HashSet m_affectedObjectsTable = new HashSet(); + private AmplifyMotionObjectBase[] m_affectedObjects = null; + private bool m_affectedObjectsChanged = true; + + public void RegisterObject( AmplifyMotionObjectBase obj ) + { + m_affectedObjectsTable.Add( obj ); + m_affectedObjectsChanged = true; + } + + public void UnregisterObject( AmplifyMotionObjectBase obj ) + { + m_affectedObjectsTable.Remove( obj ); + m_affectedObjectsChanged = true; + } + + void UpdateAffectedObjects() + { + if ( m_affectedObjects == null || m_affectedObjectsTable.Count != m_affectedObjects.Length ) + m_affectedObjects = new AmplifyMotionObjectBase[ m_affectedObjectsTable.Count ]; + + m_affectedObjectsTable.CopyTo( m_affectedObjects ); + + m_affectedObjectsChanged = false; + } + + public void LinkTo( AmplifyMotionEffectBase instance, bool overlay ) + { + Instance = instance; + + m_camera = GetComponent(); + m_camera.depthTextureMode |= DepthTextureMode.Depth; + + m_overlay = overlay; + m_linked = true; + } + + public void Initialize() + { + m_step = false; + UpdateMatrices(); + m_initialized = true; + } + + void Awake() + { + Transform = transform; + } + + void OnEnable() + { + AmplifyMotionEffectBase.RegisterCamera( this ); + } + + void OnDisable() + { + m_initialized = false; + AmplifyMotionEffectBase.UnregisterCamera( this ); + } + + void OnDestroy() + { + if ( Instance != null ) + Instance.RemoveCamera( m_camera ); + } + + public void StopAutoStep() + { + if ( m_autoStep ) + { + m_autoStep = false; + m_step = true; + } + } + + public void StartAutoStep() + { + m_autoStep = true; + } + + public void Step() + { + m_step = true; + } + + void Update() + { + if ( !m_linked || !Instance.isActiveAndEnabled ) + return; + + if ( !m_initialized ) + Initialize(); + + if ( ( m_camera.depthTextureMode & DepthTextureMode.Depth ) == 0 ) + m_camera.depthTextureMode |= DepthTextureMode.Depth; + } + + void UpdateMatrices() + { + if ( !m_starting ) + { + PrevViewProjMatrix = ViewProjMatrix; + PrevViewProjMatrixRT = ViewProjMatrixRT; + } + + Matrix4x4 view = m_camera.worldToCameraMatrix; + Matrix4x4 proj = GL.GetGPUProjectionMatrix( m_camera.projectionMatrix, false ); + ViewProjMatrix = proj * view; + InvViewProjMatrix = Matrix4x4.Inverse( ViewProjMatrix ); + + Matrix4x4 projRT = GL.GetGPUProjectionMatrix( m_camera.projectionMatrix, true ); + ViewProjMatrixRT = projRT * view; + + if ( m_starting ) + { + PrevViewProjMatrix = ViewProjMatrix; + PrevViewProjMatrixRT = ViewProjMatrixRT; + } + } + +#if UNITY_4 + public void FixedUpdateTransform() +#else + public void FixedUpdateTransform( CommandBuffer updateCB ) +#endif + { + if ( !m_initialized ) + Initialize(); + + if ( m_affectedObjectsChanged ) + UpdateAffectedObjects(); + + for ( int i = 0; i < m_affectedObjects.Length; i++ ) + { + if ( m_affectedObjects[ i ].FixedStep ) + { + #if UNITY_4 + m_affectedObjects[ i ].OnUpdateTransform( m_camera, m_starting ); + #else + m_affectedObjects[ i ].OnUpdateTransform( m_camera, updateCB, m_starting ); + #endif + } + } + } + +#if UNITY_4 + public void UpdateTransform() +#else + public void UpdateTransform( CommandBuffer updateCB ) +#endif + { + if ( !m_initialized ) + Initialize(); + + if ( Time.frameCount > m_prevFrameCount && ( m_autoStep || m_step ) ) + { + UpdateMatrices(); + + if ( m_affectedObjectsChanged ) + UpdateAffectedObjects(); + + for ( int i = 0; i < m_affectedObjects.Length; i++ ) + { + if ( !m_affectedObjects[ i ].FixedStep ) + { + #if UNITY_4 + m_affectedObjects[ i ].OnUpdateTransform( m_camera, m_starting ); + #else + m_affectedObjects[ i ].OnUpdateTransform( m_camera, updateCB, m_starting ); + #endif + + } + } + + m_starting = false; + m_step = false; + + m_prevFrameCount = Time.frameCount; + } + } + +#if UNITY_4 + public void RenderVectors( float scale, float fixedScale, AmplifyMotion.Quality quality ) +#else + public void RenderVectors( CommandBuffer renderCB, float scale, float fixedScale, AmplifyMotion.Quality quality ) +#endif + { + if ( !m_initialized ) + Initialize(); + + // For some reason Unity's own values weren't working correctly on Windows/OpenGL + float near = m_camera.nearClipPlane; + float far = m_camera.farClipPlane; + Vector4 zparam; + + if ( AmplifyMotionEffectBase.IsD3D ) + { + zparam.x = 1.0f - far / near; + zparam.y = far / near; + } + else + { + // OpenGL + zparam.x = ( 1.0f - far / near ) / 2.0f; + zparam.y = ( 1.0f + far / near ) / 2.0f; + } + + zparam.z = zparam.x / far; + zparam.w = zparam.y / far; + + Shader.SetGlobalVector( "_AM_ZBUFFER_PARAMS", zparam ); + + if ( m_affectedObjectsChanged ) + UpdateAffectedObjects(); + + for ( int i = 0; i < m_affectedObjects.Length; i++ ) + { + // don't render objects excluded via camera culling mask + if ( ( m_camera.cullingMask & ( 1 << m_affectedObjects[ i ].gameObject.layer ) ) != 0 ) + { + #if UNITY_4 + m_affectedObjects[ i ].OnRenderVectors( m_camera, m_affectedObjects[ i ].FixedStep ? fixedScale : scale, quality ); + #else + m_affectedObjects[ i ].OnRenderVectors( m_camera, renderCB, m_affectedObjects[ i ].FixedStep ? fixedScale : scale, quality ); + #endif + } + } + } + +#if UNITY_4 + void OnPostRender() + { + if ( !m_linked || !Instance.isActiveAndEnabled ) + return; + + if ( !m_initialized ) + Initialize(); + + if ( m_overlay ) + { + + RenderTexture prevRT = RenderTexture.active; + + Graphics.SetRenderTarget( Instance.MotionRenderTexture ); + RenderVectors( Instance.MotionScaleNorm, Instance.FixedMotionScaleNorm, Instance.QualityLevel ); + + RenderTexture.active = prevRT; + } + } +#endif + + void OnGUI() + { + if ( !Application.isEditor ) + return; + + if ( !m_linked || !Instance.isActiveAndEnabled ) + return; + + if ( !m_initialized ) + Initialize(); + + if ( m_affectedObjectsChanged ) + UpdateAffectedObjects(); + + for ( int i = 0; i < m_affectedObjects.Length; i++ ) + m_affectedObjects[ i ].OnRenderDebugHUD( m_camera ); + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs.meta new file mode 100644 index 0000000..7cdf87b --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionCamera.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 32f3679b48c5ac84f913fe16c3ffb43a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs new file mode 100644 index 0000000..8259f05 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs @@ -0,0 +1,13 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using UnityEngine; + +[RequireComponent( typeof( Camera ) )] +[AddComponentMenu( "Image Effects/Amplify Motion" )] +public class AmplifyMotionEffect : AmplifyMotionEffectBase +{ + public static new AmplifyMotionEffect FirstInstance { get { return ( AmplifyMotionEffect ) AmplifyMotionEffectBase.FirstInstance; } } + public static new AmplifyMotionEffect Instance { get { return ( AmplifyMotionEffect ) AmplifyMotionEffectBase.Instance; } } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs.meta new file mode 100644 index 0000000..27f08b4 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionEffect.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 390397f02bff7644ab045efd81d0d720 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 0ea3c819440ae8346ae765cd2a7d95cc, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs new file mode 100644 index 0000000..9005615 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs @@ -0,0 +1,10 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using UnityEngine; + +[AddComponentMenu( "Image Effects/Amplify Motion Object" )] +public class AmplifyMotionObject : AmplifyMotionObjectBase +{ +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs.meta new file mode 100644 index 0000000..ddf4146 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObject.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3be5e33915e952b4cac8186b1a6f8f3f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: be11958c9498dd048baecca8002f8212, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs new file mode 100644 index 0000000..3b7b98f --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs @@ -0,0 +1,371 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif +#if UNITY_4 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 +#define UNITY_PRE_5_3 +#endif + +using System; +using System.Collections.Generic; +using UnityEngine; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif + +namespace AmplifyMotion +{ + +public enum ObjectType +{ + None, + Solid, + Skinned, + Cloth, +#if !UNITY_PRE_5_3 + Particle +#endif +} + +[Serializable] +internal abstract class MotionState +{ + protected struct MaterialDesc + { + public Material material; + #if !UNITY_4 + public MaterialPropertyBlock propertyBlock; + #endif + public bool coverage; + public bool cutoff; + } + + public const int AsyncUpdateTimeout = 100; + + protected bool m_error; + protected bool m_initialized; + protected Transform m_transform; + + protected AmplifyMotionCamera m_owner; + protected AmplifyMotionObjectBase m_obj; + + public AmplifyMotionCamera Owner { get { return m_owner; } } + public bool Initialized { get { return m_initialized; } } + public bool Error { get { return m_error; } } + + public MotionState( AmplifyMotionCamera owner, AmplifyMotionObjectBase obj ) + { + m_error = false; + m_initialized = false; + + m_owner = owner; + m_obj = obj; + m_transform = obj.transform; + } + + internal virtual void Initialize() { m_initialized = true; } + internal virtual void Shutdown() {} + + internal virtual void AsyncUpdate() {} +#if UNITY_4 + internal abstract void UpdateTransform( bool starting ); + internal virtual void RenderVectors( Camera camera, float scale, AmplifyMotion.Quality quality ) {} +#else + internal abstract void UpdateTransform( CommandBuffer updateCB, bool starting ); + internal virtual void RenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) {} +#endif + internal virtual void RenderDebugHUD() {} + + private static HashSet m_materialWarnings = new HashSet(); + + protected MaterialDesc[] ProcessSharedMaterials( Material[] mats ) + { + MaterialDesc[] matsDesc = new MaterialDesc [ mats.Length ]; + for ( int i = 0; i < mats.Length; i++ ) + { + matsDesc[ i ].material = mats[ i ]; + bool legacyCoverage = ( mats[ i ].GetTag( "RenderType", false ) == "TransparentCutout" ); + #if UNITY_4 + bool isCoverage = legacyCoverage; + matsDesc[ i ].coverage = mats[ i ].HasProperty( "_MainTex" ) && isCoverage; + #else + bool isCoverage = legacyCoverage || mats[ i ].IsKeywordEnabled( "_ALPHATEST_ON" ); + matsDesc[ i ].propertyBlock = new MaterialPropertyBlock(); + matsDesc[ i ].coverage = mats[ i ].HasProperty( "_MainTex" ) && isCoverage; + #endif + matsDesc[ i ].cutoff = mats[ i ].HasProperty( "_Cutoff" ); + + if ( isCoverage && !matsDesc[ i ].coverage && !m_materialWarnings.Contains( matsDesc[ i ].material ) ) + { + Debug.LogWarning( "[AmplifyMotion] TransparentCutout material \"" + matsDesc[ i ].material.name + "\" {" + matsDesc[ i ].material.shader.name + "} not using _MainTex standard property." ); + m_materialWarnings.Add( matsDesc[ i ].material ); + } + } + return matsDesc; + } + + internal static bool VectorChanged( Vector3 a, Vector3 b ) + { + return Vector3.SqrMagnitude( a - b ) > 0.0f; + } + + internal static bool RotationChanged( Quaternion a, Quaternion b ) + { + Vector4 diff = new Vector4( a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w ); + return Vector4.SqrMagnitude( diff ) > 0.0f; + } + + internal static void MulPoint4x4_XYZW( ref Vector4 result, ref Matrix4x4 mat, Vector4 vec ) + { + result.x = mat.m00 * vec.x + mat.m01 * vec.y + mat.m02 * vec.z + mat.m03 * vec.w; + result.y = mat.m10 * vec.x + mat.m11 * vec.y + mat.m12 * vec.z + mat.m13 * vec.w; + result.z = mat.m20 * vec.x + mat.m21 * vec.y + mat.m22 * vec.z + mat.m23 * vec.w; + result.w = mat.m30 * vec.x + mat.m31 * vec.y + mat.m32 * vec.z + mat.m33 * vec.w; + } + + internal static void MulPoint3x4_XYZ( ref Vector3 result, ref Matrix4x4 mat, Vector4 vec ) + { + result.x = mat.m00 * vec.x + mat.m01 * vec.y + mat.m02 * vec.z + mat.m03; + result.y = mat.m10 * vec.x + mat.m11 * vec.y + mat.m12 * vec.z + mat.m13; + result.z = mat.m20 * vec.x + mat.m21 * vec.y + mat.m22 * vec.z + mat.m23; + } + + internal static void MulPoint3x4_XYZW( ref Vector3 result, ref Matrix4x4 mat, Vector4 vec ) + { + result.x = mat.m00 * vec.x + mat.m01 * vec.y + mat.m02 * vec.z + mat.m03 * vec.w; + result.y = mat.m10 * vec.x + mat.m11 * vec.y + mat.m12 * vec.z + mat.m13 * vec.w; + result.z = mat.m20 * vec.x + mat.m21 * vec.y + mat.m22 * vec.z + mat.m23 * vec.w; + } + + internal static void MulAddPoint3x4_XYZW( ref Vector3 result, ref Matrix4x4 mat, Vector4 vec ) + { + result.x += mat.m00 * vec.x + mat.m01 * vec.y + mat.m02 * vec.z + mat.m03 * vec.w; + result.y += mat.m10 * vec.x + mat.m11 * vec.y + mat.m12 * vec.z + mat.m13 * vec.w; + result.z += mat.m20 * vec.x + mat.m21 * vec.y + mat.m22 * vec.z + mat.m23 * vec.w; + } +} +} + +[AddComponentMenu( "" )] +public class AmplifyMotionObjectBase : MonoBehaviour +{ + public enum MinMaxCurveState + { + Scalar = 0, + Curve = 1, + TwoCurves = 2, + TwoScalars = 3 + } + + internal static bool ApplyToChildren = true; + [SerializeField] private bool m_applyToChildren = ApplyToChildren; + + private AmplifyMotion.ObjectType m_type = AmplifyMotion.ObjectType.None; + private Dictionary m_states = new Dictionary(); + + private bool m_fixedStep = false; + private int m_objectId = 0; + + internal bool FixedStep { get { return m_fixedStep; } } + internal int ObjectId { get { return m_objectId; } } + + public AmplifyMotion.ObjectType Type { get { return m_type; } } + + internal void RegisterCamera( AmplifyMotionCamera camera ) + { + Camera actual = camera.GetComponent(); + if ( ( actual.cullingMask & ( 1 << gameObject.layer ) ) != 0 && !m_states.ContainsKey( actual ) ) + { + AmplifyMotion.MotionState state = null; + switch ( m_type ) + { + case AmplifyMotion.ObjectType.Solid: + state = new AmplifyMotion.SolidState( camera, this ); break; + case AmplifyMotion.ObjectType.Skinned: + state = new AmplifyMotion.SkinnedState( camera, this ); break; + case AmplifyMotion.ObjectType.Cloth: + state = new AmplifyMotion.ClothState( camera, this ); break; + #if !UNITY_PRE_5_3 + case AmplifyMotion.ObjectType.Particle: + state = new AmplifyMotion.ParticleState( camera, this ); break; + #endif + default: + throw new Exception( "[AmplifyMotion] Invalid object type." ); + } + + camera.RegisterObject( this ); + + m_states.Add( actual, state ); + } + } + + internal void UnregisterCamera( AmplifyMotionCamera camera ) + { + AmplifyMotion.MotionState state; + Camera actual = camera.GetComponent(); + if ( m_states.TryGetValue( actual, out state ) ) + { + camera.UnregisterObject( this ); + + if ( m_states.TryGetValue( actual, out state ) ) + state.Shutdown(); + + m_states.Remove( actual ); + } + } + + bool InitializeType() + { + Renderer renderer = GetComponent(); + if ( AmplifyMotionEffectBase.CanRegister( gameObject, false ) ) + { + #if !UNITY_PRE_5_3 + ParticleSystem particleRenderer = GetComponent(); + if ( particleRenderer != null ) + { + m_type = AmplifyMotion.ObjectType.Particle; + AmplifyMotionEffectBase.RegisterObject( this ); + } + else + #endif + if ( renderer != null ) + { + // At this point, Renderer is guaranteed to be one of the following + if ( renderer.GetType() == typeof( MeshRenderer ) ) + m_type = AmplifyMotion.ObjectType.Solid; + #if UNITY_4 + else if ( renderer.GetType() == typeof( ClothRenderer ) ) + m_type = AmplifyMotion.ObjectType.Cloth; + #endif + else if ( renderer.GetType() == typeof( SkinnedMeshRenderer ) ) + { + #if !UNITY_4 + if ( GetComponent() != null ) + m_type = AmplifyMotion.ObjectType.Cloth; + else + #endif + m_type = AmplifyMotion.ObjectType.Skinned; + } + + AmplifyMotionEffectBase.RegisterObject( this ); + } + } + + // No renderer? disable it, it is here just for adding children + return ( renderer != null ); + } + + void OnEnable() + { + bool valid = InitializeType(); + if ( valid ) + { + if ( m_type == AmplifyMotion.ObjectType.Cloth ) + { + #if UNITY_4 + m_fixedStep = true; + #else + m_fixedStep = false; + #endif + } + else if ( m_type == AmplifyMotion.ObjectType.Solid ) + { + Rigidbody rigidbody = GetComponent(); + if ( rigidbody != null && rigidbody.interpolation == RigidbodyInterpolation.None && !rigidbody.isKinematic ) + m_fixedStep = true; + } + } + + if ( m_applyToChildren ) + { + foreach ( Transform child in gameObject.transform ) + AmplifyMotionEffectBase.RegisterRecursivelyS( child.gameObject ); + } + + if ( !valid ) + enabled = false; + } + + void OnDisable() + { + AmplifyMotionEffectBase.UnregisterObject( this ); + } + + void TryInitializeStates() + { + var enumerator = m_states.GetEnumerator(); + while ( enumerator.MoveNext() ) + { + AmplifyMotion.MotionState state = enumerator.Current.Value; + if ( state.Owner.Initialized && !state.Error && !state.Initialized ) + state.Initialize(); + } + } + + void Start() + { + if ( AmplifyMotionEffectBase.Instance != null ) + TryInitializeStates(); + } + + void Update() + { + if ( AmplifyMotionEffectBase.Instance != null ) + TryInitializeStates(); + } + +#if UNITY_4 + internal void OnUpdateTransform( Camera camera, bool starting ) +#else + internal void OnUpdateTransform( Camera camera, CommandBuffer updateCB, bool starting ) +#endif + { + AmplifyMotion.MotionState state; + if ( m_states.TryGetValue( camera, out state ) ) + { + if ( !state.Error ) + { + #if UNITY_4 + state.UpdateTransform( starting ); + #else + state.UpdateTransform( updateCB, starting ); + #endif + } + } + } + +#if UNITY_4 + internal void OnRenderVectors( Camera camera, float scale, AmplifyMotion.Quality quality ) +#else + internal void OnRenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) +#endif + { + AmplifyMotion.MotionState state; + if ( m_states.TryGetValue( camera, out state ) ) + { + if ( !state.Error ) + { + #if UNITY_4 + state.RenderVectors( camera, scale, quality ); + #else + state.RenderVectors( camera, renderCB, scale, quality ); + #endif + } + } + } + + internal void OnRenderDebugHUD( Camera camera ) + { + AmplifyMotion.MotionState state; + if ( m_states.TryGetValue( camera, out state ) ) + { + if ( !state.Error ) + state.RenderDebugHUD(); + } + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs.meta new file mode 100644 index 0000000..839dc99 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionObjectBase.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d700ac4720013ea408722e2fce137691 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs new file mode 100644 index 0000000..0ff752b --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs @@ -0,0 +1,20 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using System.Collections.Generic; +using UnityEngine; + +[AddComponentMenu( "" )] +[RequireComponent( typeof( Camera ) )] +sealed public class AmplifyMotionPostProcess : MonoBehaviour +{ + private AmplifyMotionEffectBase m_instance = null; + public AmplifyMotionEffectBase Instance { get { return m_instance; } set { m_instance = value; } } + + void OnRenderImage( RenderTexture source, RenderTexture destination ) + { + if ( m_instance != null ) + m_instance.PostProcess( source, destination ); + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs.meta new file mode 100644 index 0000000..e47b0ca --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/AmplifyMotionPostProcess.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 14fbfa86b7161f344b463004a203fcea +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs new file mode 100644 index 0000000..43cda78 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs @@ -0,0 +1,293 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif + +using System; +using System.Collections.Generic; +using System.Threading; +using UnityEngine; +using UnityEngine.Profiling; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif + +namespace AmplifyMotion +{ +internal class ClothState : AmplifyMotion.MotionState +{ +#if UNITY_4 + private InteractiveCloth m_cloth; +#else + private Cloth m_cloth; +#endif + private Renderer m_renderer; + + public Matrix4x4 m_prevLocalToWorld; + public Matrix4x4 m_currLocalToWorld; + + private int m_targetVertexCount; + private int[] m_targetRemap; + private Vector3[] m_prevVertices; + private Vector3[] m_currVertices; + + private Mesh m_clonedMesh; + + private MaterialDesc[] m_sharedMaterials; + + private bool m_starting; + private bool m_wasVisible; + + private static HashSet m_uniqueWarnings = new HashSet(); + + public ClothState( AmplifyMotionCamera owner, AmplifyMotionObjectBase obj ) + : base( owner, obj ) + { + #if UNITY_4 + m_cloth = m_obj.GetComponent(); + #else + m_cloth = m_obj.GetComponent(); + #endif + } + + internal override void Initialize() + { + if ( m_cloth.vertices == null ) + { + if ( !m_uniqueWarnings.Contains( m_obj ) ) + { + Debug.LogWarning( "[AmplifyMotion] Invalid " + m_cloth.GetType().Name + " vertices in object " + m_obj.name + ". Skipping." ); + m_uniqueWarnings.Add( m_obj ); + } + m_error = true; + return; + } + + #if UNITY_4 + Mesh clothMesh = m_cloth.mesh; + #else + SkinnedMeshRenderer skinnedRenderer = m_cloth.gameObject.GetComponent(); + Mesh clothMesh = skinnedRenderer.sharedMesh; + #endif + + if ( clothMesh == null || clothMesh.vertices == null || clothMesh.triangles == null ) + { + Debug.LogError( "[AmplifyMotion] Invalid Mesh on Cloth-enabled object " + m_obj.name ); + m_error = true; + return; + } + + base.Initialize(); + + m_renderer = m_cloth.gameObject.GetComponent(); + + int meshVertexCount = clothMesh.vertexCount; + Vector3[] meshVertices = clothMesh.vertices; + Vector2[] meshTexcoords = clothMesh.uv; + int[] meshTriangles = clothMesh.triangles; + + m_targetRemap = new int[ meshVertexCount ]; + + if ( m_cloth.vertices.Length == clothMesh.vertices.Length ) + { + for ( int i = 0; i < meshVertexCount; i++ ) + m_targetRemap[ i ] = i; + } + else + { + // a) May contains duplicated verts, optimization/cleanup is required + Dictionary dict = new Dictionary(); + int original, vertexCount = 0; + + for ( int i = 0; i < meshVertexCount; i++ ) + { + if ( dict.TryGetValue( meshVertices[ i ], out original ) ) + m_targetRemap[ i ] = original; + else + { + m_targetRemap[ i ] = vertexCount; + dict.Add( meshVertices[ i ], vertexCount++ ); + } + } + + // b) Tear is activated, creates extra verts (NOT SUPPORTED, POOL OF VERTS USED, NO ACCESS TO TRIANGLES) + } + + m_targetVertexCount = meshVertexCount; + m_prevVertices = new Vector3[ m_targetVertexCount ]; + m_currVertices = new Vector3[ m_targetVertexCount ]; + + m_clonedMesh = new Mesh(); + m_clonedMesh.vertices = meshVertices; + m_clonedMesh.normals = meshVertices; + m_clonedMesh.uv = meshTexcoords; + m_clonedMesh.triangles = meshTriangles; + + m_sharedMaterials = ProcessSharedMaterials( m_renderer.sharedMaterials ); + + m_wasVisible = false; + } + + internal override void Shutdown() + { + Mesh.Destroy( m_clonedMesh ); + } + +#if UNITY_4 + internal override void UpdateTransform( bool starting ) +#else + internal override void UpdateTransform( CommandBuffer updateCB, bool starting ) +#endif + { + if ( !m_initialized ) + { + Initialize(); + return; + } + + Profiler.BeginSample( "Cloth.Update" ); + + if ( !starting && m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + bool isVisible = m_renderer.isVisible; + if ( !m_error && ( isVisible || starting ) ) + { + if ( !starting && m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_targetVertexCount ); + } + + #if UNITY_4 + m_currLocalToWorld = Matrix4x4.identity; + #else + m_currLocalToWorld = Matrix4x4.TRS( m_transform.position, m_transform.rotation, Vector3.one ); + #endif + + if ( starting || !m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + m_starting = starting; + m_wasVisible = isVisible; + + Profiler.EndSample(); + } + +#if UNITY_4 + internal override void RenderVectors( Camera camera, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_renderer.isVisible ) + { + Profiler.BeginSample( "Cloth.Render" ); + + const float rcp255 = 1 / 255.0f; + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Vector3[] clothVertices = m_cloth.vertices; + for ( int i = 0; i < m_targetVertexCount; i++ ) + m_currVertices[ i ] = clothVertices[ m_targetRemap[ i ] ]; + + if ( m_starting || !m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_targetVertexCount ); + + m_clonedMesh.vertices = m_currVertices; + m_clonedMesh.normals = m_prevVertices; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + Shader.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + Shader.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + Shader.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = qualityPass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + m_owner.Instance.ClothVectorsMaterial.mainTexture = matDesc.material.mainTexture; + if ( matDesc.cutoff ) + m_owner.Instance.ClothVectorsMaterial.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + if ( m_owner.Instance.ClothVectorsMaterial.SetPass( pass ) ) + { + #if UNITY_4 + Graphics.DrawMeshNow( m_clonedMesh, Matrix4x4.identity, i ); + #else + Graphics.DrawMeshNow( m_clonedMesh, m_currLocalToWorld, i ); + #endif + } + } + + Profiler.EndSample(); + } + } +#else + internal override void RenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_renderer.isVisible ) + { + Profiler.BeginSample( "Cloth.Render" ); + + const float rcp255 = 1 / 255.0f; + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Vector3[] clothVertices = m_cloth.vertices; + for ( int i = 0; i < m_targetVertexCount; i++ ) + m_currVertices[ i ] = clothVertices[ m_targetRemap[ i ] ]; + + if ( m_starting || !m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_targetVertexCount ); + + m_clonedMesh.vertices = m_currVertices; + m_clonedMesh.normals = m_prevVertices; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + renderCB.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + renderCB.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + renderCB.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = qualityPass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + Texture mainTex = matDesc.material.mainTexture; + if ( mainTex != null ) + matDesc.propertyBlock.SetTexture( "_MainTex", mainTex ); + if ( matDesc.cutoff ) + matDesc.propertyBlock.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + renderCB.DrawMesh( m_clonedMesh, m_currLocalToWorld, m_owner.Instance.ClothVectorsMaterial, i, pass, matDesc.propertyBlock ); + } + + Profiler.EndSample(); + } + } +#endif +} +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs.meta new file mode 100644 index 0000000..2f84319 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/ClothState.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ee21680ad49e16d47baa6b281c4511d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor.meta new file mode 100644 index 0000000..b1069c5 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7dfaf547c29f54b01bfc82b484a511b6 +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs new file mode 100644 index 0000000..77703b9 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs @@ -0,0 +1,92 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +namespace AmplifyMotion +{ + public class About : EditorWindow + { + private const string AboutImagePath = "AmplifyMotion/Textures/About.png"; + private Vector2 m_scrollPosition = Vector2.zero; + private Texture2D m_aboutImage; + + [MenuItem( "Window/Amplify Motion/About...", false, 20 )] + static void Init() + { + About window = ( About ) EditorWindow.GetWindow( typeof( About ) , true , "About Amplify Motion" ); + window.minSize = new Vector2( 502, 258 ); + window.maxSize = new Vector2( 502, 258 ); + window.Show(); + } + + public void OnFocus() + { + string[] guids = AssetDatabase.FindAssets( "About t:Texture" ); + string asset = ""; + + foreach ( string guid in guids ) + { + string path = AssetDatabase.GUIDToAssetPath( guid ); + if ( path.EndsWith( AboutImagePath ) ) + { + asset = path; + break; + } + } + + if ( !string.IsNullOrEmpty( asset ) ) + { + TextureImporter importer = AssetImporter.GetAtPath( asset ) as TextureImporter; + + if ( importer.textureType != TextureImporterType.GUI ) + { + importer.textureType = TextureImporterType.GUI; + AssetDatabase.ImportAsset( asset ); + } + + m_aboutImage = AssetDatabase.LoadAssetAtPath( asset, typeof( Texture2D ) ) as Texture2D; + } + else + Debug.LogWarning( "[AmplifyMotion] About image not found at " + AboutImagePath ); + } + + public void OnGUI() + { + m_scrollPosition = GUILayout.BeginScrollView( m_scrollPosition ); + + GUILayout.BeginVertical(); + + GUILayout.Space( 10 ); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Box( m_aboutImage, GUIStyle.none ); + + if ( Event.current.type == EventType.MouseUp && GUILayoutUtility.GetLastRect().Contains( Event.current.mousePosition ) ) + Application.OpenURL( "http://www.amplify.pt" ); + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUIStyle labelStyle = new GUIStyle( EditorStyles.label ); + labelStyle.alignment = TextAnchor.MiddleCenter; + labelStyle.wordWrap = true; + + GUILayout.Space( 10 ); + + GUILayout.Label( "\nAmplify Motion " + VersionInfo.StaticToString() + " - Full-scene Motion Blur", labelStyle, GUILayout.ExpandWidth( true ) ); + + GUILayout.Space( 6 ); + + GUILayout.Label( "\nCopyright (c) Amplify Creations, Lda. All rights reserved.\n", labelStyle, GUILayout.ExpandWidth( true ) ); + + GUILayout.EndVertical(); + + GUILayout.EndScrollView(); + } + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs.meta new file mode 100644 index 0000000..b103acc --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/About.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8702049a56e8d69438a372d2291d93f6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll new file mode 100644 index 0000000..a95f1aa Binary files /dev/null and b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll differ diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll.meta new file mode 100644 index 0000000..6a26777 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionEditor.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 1a9ae1fa1f8b6324483523d4e0a5fabb +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs new file mode 100644 index 0000000..f73e079 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs @@ -0,0 +1,14 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using UnityEngine; +using UnityEditor; +using System.Collections; +using UnityEditor.Callbacks; +using UnityEditorInternal; + +[InitializeOnLoad] +[CustomEditor( typeof( AmplifyMotionObject ) )] +public class AmplifyMotionObjectEditor : AmplifyMotionObjectEditorBase +{ +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs.meta new file mode 100644 index 0000000..8b33994 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fa9cf487ac20ad844953ae6d9746f058 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs new file mode 100644 index 0000000..eb704c1 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs @@ -0,0 +1,13 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using UnityEngine; +using UnityEditor; +using System.Collections; +using System.Reflection; +using UnityEditor.Callbacks; +using UnityEditorInternal; + +public class AmplifyMotionObjectEditorBase : Editor +{ +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs.meta new file mode 100644 index 0000000..3746cc4 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/AmplifyMotionObjectEditorBase.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 74f699bbe74c7f1469a9a32862bbaa9a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources.meta new file mode 100644 index 0000000..84b80f5 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fe82cb816e6564133af86bf31fc695dd +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png new file mode 100644 index 0000000..d77d47c Binary files /dev/null and b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png differ diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png.meta new file mode 100644 index 0000000..a21974e --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/effect-icon.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 0ea3c819440ae8346ae765cd2a7d95cc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -2 + maxTextureSize: 32 + textureSettings: + filterMode: 0 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif new file mode 100644 index 0000000..5971775 Binary files /dev/null and b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif differ diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif.meta new file mode 100644 index 0000000..89933bb --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Editor/Resources/object-icon.tif.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: be11958c9498dd048baecca8002f8212 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs new file mode 100644 index 0000000..d8b48d7 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs @@ -0,0 +1,327 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif +#if UNITY_4 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 +#define UNITY_PRE_5_3 +#endif + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Profiling; + +#if !UNITY_PRE_5_3 +using UnityEngine.Rendering; + +namespace AmplifyMotion +{ +internal class ParticleState : AmplifyMotion.MotionState +{ + public class Particle + { + public int refCount; + public Matrix4x4 prevLocalToWorld; + public Matrix4x4 currLocalToWorld; + } + + public ParticleSystem m_particleSystem; + public ParticleSystemRenderer m_renderer; + + private Mesh m_mesh; + + private ParticleSystem.RotationOverLifetimeModule rotationOverLifetime; + private ParticleSystem.RotationBySpeedModule rotationBySpeed; + + private ParticleSystem.Particle[] m_particles; + private Dictionary m_particleDict; + private List m_listToRemove; + private Stack m_particleStack; + private int m_capacity; + + private MaterialDesc[] m_sharedMaterials; + + public bool m_moved = false; + private bool m_wasVisible; + + private static HashSet m_uniqueWarnings = new HashSet(); + + public ParticleState( AmplifyMotionCamera owner, AmplifyMotionObjectBase obj ) + : base( owner, obj ) + { + m_particleSystem = m_obj.GetComponent(); + m_renderer = m_particleSystem.GetComponent(); + rotationOverLifetime = m_particleSystem.rotationOverLifetime; + rotationBySpeed = m_particleSystem.rotationBySpeed; + } + + private Mesh CreateBillboardMesh() + { + int[] tris = new int[ 6 ] { 0, 1, 2, 2, 3, 0 }; + + Vector3[] vertices = new Vector3[ 4 ] { + new Vector3( -0.5f, -0.5f, 0 ), + new Vector3( 0.5f, -0.5f, 0 ), + new Vector3( 0.5f, 0.5f, 0 ), + new Vector3( -0.5f, 0.5f, 0 ) }; + + Vector2[] uv = new Vector2[ 4 ] { + new Vector2( 0, 0 ), + new Vector2( 1, 0 ), + new Vector2( 1, 1 ), + new Vector2( 0, 1 ) }; + + Mesh mesh = new Mesh(); + mesh.vertices = vertices; + mesh.uv = uv; + mesh.triangles = tris; + return mesh; + } + + private Mesh CreateStretchedBillboardMesh() + { + int[] tris = new int[ 6 ] { 0, 1, 2, 2, 3, 0 }; + + Vector3[] vertices = new Vector3[ 4 ] { + new Vector3( 0, -0.5f, -1.0f ), + new Vector3( 0, -0.5f, 0.0f ), + new Vector3( 0, 0.5f, 0.0f ), + new Vector3( 0, 0.5f, -1.0f ) + }; + + Vector2[] uv = new Vector2[ 4 ] { + new Vector2( 1, 1 ), + new Vector2( 0, 1 ), + new Vector2( 0, 0 ), + new Vector2( 1, 0 ) }; + + Mesh mesh = new Mesh(); + mesh.vertices = vertices; + mesh.uv = uv; + mesh.triangles = tris; + return mesh; + } + + internal override void Initialize() + { + if ( m_renderer == null ) + { + if ( !m_uniqueWarnings.Contains( m_obj ) ) + { + Debug.LogWarning( "[AmplifyMotion] Missing/Invalid Particle Renderer in object " + m_obj.name + ". Skipping." ); + m_uniqueWarnings.Add( m_obj ); + } + m_error = true; + return; + } + + base.Initialize(); + + if ( m_renderer.renderMode == ParticleSystemRenderMode.Mesh ) + m_mesh = m_renderer.mesh; + else if ( m_renderer.renderMode == ParticleSystemRenderMode.Stretch ) + m_mesh = CreateStretchedBillboardMesh(); + else + m_mesh = CreateBillboardMesh(); + + m_sharedMaterials = ProcessSharedMaterials( m_renderer.sharedMaterials ); + + m_capacity = m_particleSystem.maxParticles; + + m_particleDict = new Dictionary( m_capacity ); + m_particles = new ParticleSystem.Particle[ m_capacity ]; + m_listToRemove = new List( m_capacity ); + m_particleStack = new Stack( m_capacity ); + + for ( int k = 0; k < m_capacity; k++ ) + m_particleStack.Push( new Particle() ); + + m_wasVisible = false; + } + + void RemoveDeadParticles() + { + m_listToRemove.Clear(); + + var enumerator = m_particleDict.GetEnumerator(); + while ( enumerator.MoveNext() ) + { + KeyValuePair pair = enumerator.Current; + + if ( pair.Value.refCount <= 0 ) + { + m_particleStack.Push( pair.Value ); + if(!m_listToRemove.Contains(pair.Key)) + m_listToRemove.Add( pair.Key ); + } + else + pair.Value.refCount = 0; + } + + for ( int i = 0; i < m_listToRemove.Count; i++ ) + m_particleDict.Remove( m_listToRemove[ i ] ); + } + + internal override void UpdateTransform( CommandBuffer updateCB, bool starting ) + { + if ( !m_initialized || m_capacity != m_particleSystem.maxParticles ) + { + Initialize(); + return; + } + + Profiler.BeginSample( "Particle.Update" ); + + if ( !starting && m_wasVisible ) + { + var enumerator = m_particleDict.GetEnumerator(); + while ( enumerator.MoveNext() ) + { + Particle particle = enumerator.Current.Value; + particle.prevLocalToWorld = particle.currLocalToWorld; + } + } + + m_moved = true; + + int numAlive = m_particleSystem.GetParticles( m_particles ); + + Matrix4x4 transformLocalToWorld = Matrix4x4.TRS( m_transform.position, m_transform.rotation, Vector3.one ); + + bool separateAxes = ( rotationOverLifetime.enabled && rotationOverLifetime.separateAxes ) || + ( rotationBySpeed.enabled && rotationBySpeed.separateAxes ); + + for ( int i = 0; i < numAlive; i++ ) + { + uint seed = m_particles[ i ].randomSeed; + Particle particle; + + bool justSpawned = false; + if ( !m_particleDict.TryGetValue( seed, out particle ) && m_particleStack.Count > 0 ) + { + m_particleDict[ seed ] = particle = m_particleStack.Pop(); + justSpawned = true; + } + + if ( particle == null ) + continue; + + float currentSize = m_particles[ i ].GetCurrentSize( m_particleSystem ); + Vector3 size = new Vector3( currentSize, currentSize, currentSize ); + + Matrix4x4 particleCurrLocalToWorld; + if ( m_renderer.renderMode == ParticleSystemRenderMode.Mesh ) + { + Quaternion rotation; + if ( separateAxes ) + rotation = Quaternion.Euler( m_particles[ i ].rotation3D ); + else + rotation = Quaternion.AngleAxis( m_particles[ i ].rotation, m_particles[ i ].axisOfRotation ); + + Matrix4x4 particleMatrix = Matrix4x4.TRS( m_particles[ i ].position, rotation, size ); + + if ( m_particleSystem.simulationSpace == ParticleSystemSimulationSpace.World ) + particleCurrLocalToWorld = particleMatrix; + else + particleCurrLocalToWorld = transformLocalToWorld * particleMatrix; + } + else if ( m_renderer.renderMode == ParticleSystemRenderMode.Billboard ) + { + if ( m_particleSystem.simulationSpace == ParticleSystemSimulationSpace.Local ) + m_particles[ i ].position = transformLocalToWorld.MultiplyPoint( m_particles[ i ].position ); + + Quaternion rotation; + if ( separateAxes ) + rotation = Quaternion.Euler( -m_particles[ i ].rotation3D.x, -m_particles[ i ].rotation3D.y, m_particles[ i ].rotation3D.z ); + else + rotation = Quaternion.AngleAxis( m_particles[ i ].rotation, Vector3.back ); + + particleCurrLocalToWorld = Matrix4x4.TRS( m_particles[ i ].position, m_owner.Transform.rotation * rotation, size ); + } + else + { + // unsupported + particleCurrLocalToWorld = Matrix4x4.identity; + } + + particle.refCount = 1; + particle.currLocalToWorld = particleCurrLocalToWorld; + if ( justSpawned ) + particle.prevLocalToWorld = particle.currLocalToWorld; + } + + if ( starting || !m_wasVisible ) + { + var enumerator = m_particleDict.GetEnumerator(); + while ( enumerator.MoveNext() ) + { + Particle particle = enumerator.Current.Value; + particle.prevLocalToWorld = particle.currLocalToWorld; + } + } + + RemoveDeadParticles(); + + m_wasVisible = m_renderer.isVisible; + + Profiler.EndSample(); + } + + internal override void RenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) + { + Profiler.BeginSample( "Particle.Render" ); + + // TODO: batch + + if ( m_initialized && !m_error && m_renderer.isVisible ) + { + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + if ( !mask || ( mask && m_moved ) ) + { + const float rcp255 = 1 / 255.0f; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + renderCB.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + renderCB.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = qualityPass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + Texture mainTex = matDesc.material.mainTexture; + if ( mainTex != null ) + matDesc.propertyBlock.SetTexture( "_MainTex", mainTex ); + if ( matDesc.cutoff ) + matDesc.propertyBlock.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + var enumerator = m_particleDict.GetEnumerator(); + while ( enumerator.MoveNext() ) + { + KeyValuePair pair = enumerator.Current; + + Matrix4x4 prevModelViewProj = m_owner.PrevViewProjMatrixRT * pair.Value.prevLocalToWorld; + renderCB.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + + renderCB.DrawMesh( m_mesh, pair.Value.currLocalToWorld, m_owner.Instance.SolidVectorsMaterial, i, pass, matDesc.propertyBlock ); + } + } + } + } + + Profiler.EndSample(); + } +} +} + +#endif diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs.meta new file mode 100644 index 0000000..4b9eb3a --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/ParticleState.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9f0d513b4e0749b4d9367ab62c348623 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime.meta new file mode 100644 index 0000000..cbe33a9 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c11944833b1df48bdbdad6a591d010cf +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs new file mode 100644 index 0000000..4b456f3 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs @@ -0,0 +1,64 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using UnityEngine; + +namespace AmplifyMotion +{ + [Serializable] + public class VersionInfo + { + public const byte Major = 1; + public const byte Minor = 7; + public const byte Release = 1; + + private static string StageSuffix = "_dev001"; + + #if TRIAL + private static string TrialSuffix = " Trial"; + #else + private static string TrialSuffix = ""; + #endif + + public static string StaticToString() + { + return string.Format( "{0}.{1}.{2}", Major, Minor, Release ) + StageSuffix + TrialSuffix; + } + + public override string ToString() + { + return string.Format( "{0}.{1}.{2}", m_major, m_minor, m_release ) + StageSuffix + TrialSuffix; + } + + public int Number { get { return m_major * 100 + m_minor * 10 + m_release; } } + + [SerializeField] private int m_major; + [SerializeField] private int m_minor; + [SerializeField] private int m_release; + + VersionInfo() + { + m_major = Major; + m_minor = Minor; + m_release = Release; + } + + VersionInfo( byte major, byte minor, byte release ) + { + m_major = major; + m_minor = minor; + m_release = release; + } + + public static VersionInfo Current() + { + return new VersionInfo( Major, Minor, Release ); + } + + public static bool Matches( VersionInfo version ) + { + return ( Major == version.m_major ) && ( Minor == version.m_minor ) && ( Release == version.m_release ); + } + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs.meta new file mode 100644 index 0000000..19e5f71 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/Runtime/VersionInfo.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 69a9dd9acbcff9d45acbf435fddd6110 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs new file mode 100644 index 0000000..bf231cd --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs @@ -0,0 +1,848 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Threading; +using UnityEngine; +using UnityEngine.Profiling; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif + +namespace AmplifyMotion +{ +internal class SkinnedState : AmplifyMotion.MotionState +{ + private SkinnedMeshRenderer m_renderer; + + private int m_boneCount; + private Transform[] m_boneTransforms; + private Matrix4x4[] m_bones; + + private int m_weightCount; + private int[] m_boneIndices; + private float[] m_boneWeights; + + private int m_vertexCount; + private Vector4[] m_baseVertices; + private Vector3[] m_prevVertices; + private Vector3[] m_currVertices; + +#if !UNITY_4 + private int m_gpuBoneTexWidth; + private int m_gpuBoneTexHeight; + private int m_gpuVertexTexWidth; + private int m_gpuVertexTexHeight; + private Material m_gpuSkinDeformMat; + private Color[] m_gpuBoneData; + private Texture2D m_gpuBones; + private Texture2D m_gpuBoneIndices; + private Texture2D[] m_gpuBaseVertices; + private RenderTexture m_gpuPrevVertices; + private RenderTexture m_gpuCurrVertices; +#endif + + private Mesh m_clonedMesh; + private Matrix4x4 m_worldToLocalMatrix; + private Matrix4x4 m_prevLocalToWorld; + private Matrix4x4 m_currLocalToWorld; + + private MaterialDesc[] m_sharedMaterials; + + private ManualResetEvent m_asyncUpdateSignal = null; + private bool m_asyncUpdateTriggered = false; + + private bool m_starting; + private bool m_wasVisible; + private bool m_useFallback; + private bool m_useGPU = false; + + private static HashSet m_uniqueWarnings = new HashSet(); + + public SkinnedState( AmplifyMotionCamera owner, AmplifyMotionObjectBase obj ) + : base( owner, obj ) + { + m_renderer = m_obj.GetComponent(); + } + + internal override void Initialize() + { + if ( !m_renderer.sharedMesh.isReadable ) + { + if ( !m_uniqueWarnings.Contains( m_obj ) ) + { + Debug.LogWarning( "[AmplifyMotion] Read/Write Import Setting disabled in object " + m_obj.name + ". Skipping." ); + m_uniqueWarnings.Add( m_obj ); + } + m_error = true; + return; + } + + // find out if we're forced to use the fallback path + Transform[] bones = m_renderer.bones; + m_useFallback = ( bones == null || bones.Length == 0 ); + + if ( !m_useFallback ) + m_useGPU = m_owner.Instance.CanUseGPU; // use GPU, if allowed + + base.Initialize(); + + m_vertexCount = m_renderer.sharedMesh.vertexCount; + m_prevVertices = new Vector3[ m_vertexCount ]; + m_currVertices = new Vector3[ m_vertexCount ]; + m_clonedMesh = new Mesh(); + + if ( !m_useFallback ) + { + if ( m_renderer.quality == SkinQuality.Auto ) + m_weightCount = ( int ) QualitySettings.blendWeights; + else + m_weightCount = ( int ) m_renderer.quality; + + m_boneTransforms = m_renderer.bones; + m_boneCount = m_renderer.bones.Length; + m_bones = new Matrix4x4[ m_boneCount ]; + + Vector4[] baseVertices = new Vector4[ m_vertexCount * m_weightCount ]; + int[] boneIndices = new int[ m_vertexCount * m_weightCount ]; + float[] boneWeights = ( m_weightCount > 1 ) ? new float[ m_vertexCount * m_weightCount ] : null; + + if ( m_weightCount == 1 ) + InitializeBone1( baseVertices, boneIndices ); + else if ( m_weightCount == 2 ) + InitializeBone2( baseVertices, boneIndices, boneWeights ); + else + InitializeBone4( baseVertices, boneIndices, boneWeights ); + + m_baseVertices = baseVertices; + m_boneIndices = boneIndices; + m_boneWeights = boneWeights; + + Mesh skinnedMesh = m_renderer.sharedMesh; + + m_clonedMesh.vertices = skinnedMesh.vertices; + m_clonedMesh.normals = skinnedMesh.vertices; + m_clonedMesh.uv = skinnedMesh.uv; + m_clonedMesh.subMeshCount = skinnedMesh.subMeshCount; + for ( int i = 0; i < skinnedMesh.subMeshCount; i++ ) + m_clonedMesh.SetTriangles( skinnedMesh.GetTriangles( i ), i ); + + #if !UNITY_4 + if ( m_useGPU ) + { + if ( !InitializeGPUSkinDeform() ) + { + // fallback + Debug.LogWarning( "[AmplifyMotion] Failed initializing GPU skin deform for object " + m_obj.name + ". Falling back to CPU path." ); + m_useGPU = false; + } + else + { + // release unnecessary data + m_boneIndices = null; + m_boneWeights = null; + + m_baseVertices = null; + m_prevVertices = null; + m_currVertices = null; + } + } + #endif + + if ( !m_useGPU ) + { + m_asyncUpdateSignal = new ManualResetEvent( false ); + m_asyncUpdateTriggered = false; + } + } + + m_sharedMaterials = ProcessSharedMaterials( m_renderer.sharedMaterials ); + + m_wasVisible = false; + } + + internal override void Shutdown() + { + if ( !m_useFallback && !m_useGPU ) + WaitForAsyncUpdate(); + + #if !UNITY_4 + if ( m_useGPU ) + ShutdownGPUSkinDeform(); + #endif + + if ( m_clonedMesh != null ) + { + Mesh.Destroy( m_clonedMesh ); + m_clonedMesh = null; + } + + m_boneTransforms = null; + m_bones = null; + m_boneIndices = null; + m_boneWeights = null; + m_baseVertices = null; + m_prevVertices = null; + m_currVertices = null; + m_sharedMaterials = null; + } + +#if !UNITY_4 + private bool InitializeGPUSkinDeform() + { + bool succeeded = true; + try + { + m_gpuBoneTexWidth = Mathf.NextPowerOfTwo( m_boneCount ); + m_gpuBoneTexHeight = 4; + m_gpuVertexTexWidth = Mathf.NextPowerOfTwo( Mathf.CeilToInt( Mathf.Sqrt( m_vertexCount ) ) ); + m_gpuVertexTexHeight = Mathf.NextPowerOfTwo( Mathf.CeilToInt( m_vertexCount / ( float ) m_gpuVertexTexWidth ) ); + + // gpu skin deform material + m_gpuSkinDeformMat = new Material( Shader.Find( "Hidden/Amplify Motion/GPUSkinDeform" ) ) { hideFlags = HideFlags.DontSave }; + + // bone matrix texture + m_gpuBones = new Texture2D( m_gpuBoneTexWidth, m_gpuBoneTexHeight, TextureFormat.RGBAFloat, false, true ); + m_gpuBones.hideFlags = HideFlags.DontSave; + m_gpuBones.name = "AM-" + m_obj.name + "-Bones"; + m_gpuBones.filterMode = FilterMode.Point; + + m_gpuBoneData = new Color[ m_gpuBoneTexWidth * m_gpuBoneTexHeight ]; + + UpdateBonesGPU(); + + // vertex bone index/weight textures + TextureFormat boneIDWFormat = TextureFormat.RHalf; + boneIDWFormat = ( m_weightCount == 2 ) ? TextureFormat.RGHalf : boneIDWFormat; + boneIDWFormat = ( m_weightCount == 4 ) ? TextureFormat.RGBAHalf : boneIDWFormat; + + m_gpuBoneIndices = new Texture2D( m_gpuVertexTexWidth, m_gpuVertexTexHeight, boneIDWFormat, false, true ); + m_gpuBoneIndices.hideFlags = HideFlags.DontSave; + m_gpuBoneIndices.name = "AM-" + m_obj.name + "-Bones"; + m_gpuBoneIndices.filterMode = FilterMode.Point; + m_gpuBoneIndices.wrapMode = TextureWrapMode.Clamp; + + BoneWeight[] meshBoneWeights = m_renderer.sharedMesh.boneWeights; + Color[] boneIndices = new Color[ m_gpuVertexTexWidth * m_gpuVertexTexHeight ]; + + for ( int v = 0; v < m_vertexCount; v++ ) + { + int x = v % m_gpuVertexTexWidth; + int y = v / m_gpuVertexTexWidth; + int offset = y * m_gpuVertexTexWidth + x; + + BoneWeight boneWeight = meshBoneWeights[ v ]; + boneIndices[ offset ] = new Vector4( boneWeight.boneIndex0, boneWeight.boneIndex1, boneWeight.boneIndex2, boneWeight.boneIndex3 ); + } + m_gpuBoneIndices.SetPixels( boneIndices ); + m_gpuBoneIndices.Apply(); + + // base vertex textures + m_gpuBaseVertices = new Texture2D[ m_weightCount ]; + for ( int w = 0; w < m_weightCount; w++ ) + { + m_gpuBaseVertices[ w ] = new Texture2D( m_gpuVertexTexWidth, m_gpuVertexTexHeight, TextureFormat.RGBAFloat, false, true ); + m_gpuBaseVertices[ w ].hideFlags = HideFlags.DontSave; + m_gpuBaseVertices[ w ].name = "AM-" + m_obj.name + "-BaseVerts"; + m_gpuBaseVertices[ w ].filterMode = FilterMode.Point; + } + + List baseVertices = new List( m_weightCount ); + for ( int w = 0; w < m_weightCount; w++ ) + baseVertices.Add( new Color[ m_gpuVertexTexWidth * m_gpuVertexTexHeight ] ); + + for ( int v = 0; v < m_vertexCount; v++ ) + { + int x = v % m_gpuVertexTexWidth; + int y = v / m_gpuVertexTexWidth; + int offset = y * m_gpuVertexTexWidth + x; + + for ( int w = 0; w < m_weightCount; w++ ) + baseVertices[ w ][ offset ] = m_baseVertices[ v * m_weightCount + w ]; + } + for ( int w = 0; w < m_weightCount; w++ ) + { + m_gpuBaseVertices[ w ].SetPixels( baseVertices[ w ] ); + m_gpuBaseVertices[ w ].Apply(); + } + + // create output/target vertex render textures + m_gpuPrevVertices = new RenderTexture( m_gpuVertexTexWidth, m_gpuVertexTexHeight, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear ); + m_gpuPrevVertices.hideFlags = HideFlags.DontSave; + m_gpuPrevVertices.name = "AM-" + m_obj.name + "-PrevVerts"; + m_gpuPrevVertices.filterMode = FilterMode.Point; + m_gpuPrevVertices.wrapMode = TextureWrapMode.Clamp; + m_gpuPrevVertices.Create(); + + m_gpuCurrVertices = new RenderTexture( m_gpuVertexTexWidth, m_gpuVertexTexHeight, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear ); + m_gpuCurrVertices.hideFlags = HideFlags.DontSave; + m_gpuCurrVertices.name = "AM-" + m_obj.name + "-CurrVerts"; + m_gpuCurrVertices.filterMode = FilterMode.Point; + m_gpuCurrVertices.wrapMode = TextureWrapMode.Clamp; + m_gpuCurrVertices.Create(); + + // assign local material constants + m_gpuSkinDeformMat.SetTexture( "_AM_BONE_TEX", m_gpuBones ); + m_gpuSkinDeformMat.SetTexture( "_AM_BONE_INDEX_TEX", m_gpuBoneIndices ); + for ( int w = 0; w < m_weightCount; w++ ) + m_gpuSkinDeformMat.SetTexture( "_AM_BASE_VERTEX" + w + "_TEX", m_gpuBaseVertices[ w ] ); + + // assign global shader constants + Vector4 boneTexelSize = new Vector4( 1.0f / m_gpuBoneTexWidth, 1.0f / m_gpuBoneTexHeight, m_gpuBoneTexWidth, m_gpuBoneTexHeight ); + Vector4 vertexTexelSize = new Vector4( 1.0f / m_gpuVertexTexWidth, 1.0f / m_gpuVertexTexHeight, m_gpuVertexTexWidth, m_gpuVertexTexHeight ); + + m_gpuSkinDeformMat.SetVector( "_AM_BONE_TEXEL_SIZE", boneTexelSize ); + m_gpuSkinDeformMat.SetVector( "_AM_BONE_TEXEL_HALFSIZE", boneTexelSize * 0.5f ); + m_gpuSkinDeformMat.SetVector( "_AM_VERTEX_TEXEL_SIZE", vertexTexelSize ); + m_gpuSkinDeformMat.SetVector( "_AM_VERTEX_TEXEL_HALFSIZE", vertexTexelSize * 0.5f ); + + // assign vertex x/y offsets packed into second uv channel + Vector2[] indexCoords = new Vector2[ m_vertexCount ]; + for ( int v = 0; v < m_vertexCount; v++ ) + { + int x = v % m_gpuVertexTexWidth; + int y = v / m_gpuVertexTexWidth; + float x_norm = ( x / ( float ) m_gpuVertexTexWidth ) + vertexTexelSize.x * 0.5f; + float y_norm = ( y / ( float ) m_gpuVertexTexHeight ) + vertexTexelSize.y * 0.5f; + indexCoords[ v ] = new Vector2( x_norm, y_norm ); + } + m_clonedMesh.uv2 = indexCoords; + } + catch ( Exception ) + { + succeeded = false; + } + return succeeded; + } + + private void ShutdownGPUSkinDeform() + { + if ( m_gpuSkinDeformMat != null ) + { + Material.DestroyImmediate( m_gpuSkinDeformMat ); + m_gpuSkinDeformMat = null; + } + + m_gpuBoneData = null; + + if ( m_gpuBones != null ) + { + Texture2D.DestroyImmediate( m_gpuBones ); + m_gpuBones = null; + } + + if ( m_gpuBoneIndices != null ) + { + Texture2D.DestroyImmediate( m_gpuBoneIndices ); + m_gpuBoneIndices = null; + } + + if ( m_gpuBaseVertices != null ) + { + for ( int i = 0; i < m_gpuBaseVertices.Length; i++ ) + Texture2D.DestroyImmediate( m_gpuBaseVertices[ i ] ); + m_gpuBaseVertices = null; + } + + if ( m_gpuPrevVertices != null ) + { + RenderTexture.active = null; + m_gpuPrevVertices.Release(); + RenderTexture.DestroyImmediate( m_gpuPrevVertices ); + m_gpuPrevVertices = null; + } + + if ( m_gpuCurrVertices != null ) + { + RenderTexture.active = null; + m_gpuCurrVertices.Release(); + RenderTexture.DestroyImmediate( m_gpuCurrVertices ); + m_gpuCurrVertices = null; + } + } + + private void UpdateBonesGPU() + { + for ( int b = 0; b < m_boneCount; b++ ) + { + for ( int r = 0; r < m_gpuBoneTexHeight; r++ ) + m_gpuBoneData[ r * m_gpuBoneTexWidth + b ] = m_bones[ b ].GetRow( r ); + } + m_gpuBones.SetPixels( m_gpuBoneData ); + m_gpuBones.Apply(); + } + + private void UpdateVerticesGPU( CommandBuffer updateCB, bool starting ) + { + if ( !starting && m_wasVisible ) + { + AmplifyMotionEffectBase.DiscardContents( m_gpuPrevVertices ); + updateCB.Blit( new RenderTargetIdentifier( m_gpuCurrVertices ), m_gpuPrevVertices ); + } + + updateCB.SetGlobalMatrix( "_AM_WORLD_TO_LOCAL_MATRIX", m_worldToLocalMatrix ); + + AmplifyMotionEffectBase.DiscardContents( m_gpuCurrVertices ); + RenderTexture dummy = null; + updateCB.Blit( new RenderTargetIdentifier( dummy ), m_gpuCurrVertices, m_gpuSkinDeformMat, Mathf.Min( m_weightCount - 1, 2 ) ); + + if ( starting || !m_wasVisible ) + { + AmplifyMotionEffectBase.DiscardContents( m_gpuPrevVertices ); + updateCB.Blit( new RenderTargetIdentifier( m_gpuCurrVertices ), m_gpuPrevVertices ); + } + } +#endif + + private void UpdateBones() + { + for ( int b = 0; b < m_boneCount; b++ ) + m_bones[ b ] = ( m_boneTransforms[ b ] != null ) ? m_boneTransforms[ b ].localToWorldMatrix : Matrix4x4.identity; + + m_worldToLocalMatrix = m_transform.worldToLocalMatrix; + + #if !UNITY_4 + if ( m_useGPU ) + { + Profiler.BeginSample( "UpdateBonesGPU" ); + UpdateBonesGPU(); + Profiler.EndSample(); + } + #endif + } + + private void UpdateVerticesFallback( bool starting ) + { + if ( !starting && m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_vertexCount ); + + m_renderer.BakeMesh( m_clonedMesh ); + + Array.Copy( m_clonedMesh.vertices, m_currVertices, m_vertexCount ); + + if ( starting || !m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_vertexCount ); + } + + private void AsyncUpdateVertices( bool starting ) + { + if ( !starting && m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_vertexCount ); + + for ( int i = 0; i < m_boneCount; i++ ) + m_bones[ i ] = m_worldToLocalMatrix * m_bones[ i ]; + + if ( m_weightCount == 1 ) + UpdateVerticesBone1(); + else if ( m_weightCount == 2 ) + UpdateVerticesBone2(); + else + UpdateVerticesBone4(); + + if ( starting || !m_wasVisible ) + Array.Copy( m_currVertices, m_prevVertices, m_vertexCount ); + } + + private void InitializeBone1( Vector4[] baseVertices, int[] boneIndices ) + { + Vector3[] meshVertices = m_renderer.sharedMesh.vertices; + Matrix4x4[] meshBindPoses = m_renderer.sharedMesh.bindposes; + BoneWeight[] meshBoneWeights = m_renderer.sharedMesh.boneWeights; + + for ( int i = 0; i < m_vertexCount; i++ ) + { + int offset0 = i * m_weightCount; + + int bone0 = boneIndices[ offset0 ] = meshBoneWeights[ i ].boneIndex0; + Vector3 baseVertex0 = meshBindPoses[ bone0 ].MultiplyPoint3x4( meshVertices[ i ] ); + + baseVertices[ offset0 ] = new Vector4( baseVertex0.x, baseVertex0.y, baseVertex0.z, 1.0f ); + } + } + + private void InitializeBone2( Vector4[] baseVertices, int[] boneIndices, float[] boneWeights ) + { + Vector3[] meshVertices = m_renderer.sharedMesh.vertices; + Matrix4x4[] meshBindPoses = m_renderer.sharedMesh.bindposes; + BoneWeight[] meshBoneWeights = m_renderer.sharedMesh.boneWeights; + + for ( int i = 0; i < m_vertexCount; i++ ) + { + int offset0 = i * m_weightCount; + int offset1 = offset0 + 1; + + BoneWeight boneWeight = meshBoneWeights[ i ]; + int bone0 = boneIndices[ offset0 ] = boneWeight.boneIndex0; + int bone1 = boneIndices[ offset1 ] = boneWeight.boneIndex1; + + float weight0 = boneWeight.weight0; + float weight1 = boneWeight.weight1; + + float rcpSum = 1.0f / ( weight0 + weight1 ); + boneWeights[ offset0 ] = weight0 = weight0 * rcpSum; + boneWeights[ offset1 ] = weight1 = weight1 * rcpSum; + + Vector3 baseVertex0 = weight0 * meshBindPoses[ bone0 ].MultiplyPoint3x4( meshVertices[ i ] ); + Vector3 baseVertex1 = weight1 * meshBindPoses[ bone1 ].MultiplyPoint3x4( meshVertices[ i ] ); + + baseVertices[ offset0 ] = new Vector4( baseVertex0.x, baseVertex0.y, baseVertex0.z, weight0 ); + baseVertices[ offset1 ] = new Vector4( baseVertex1.x, baseVertex1.y, baseVertex1.z, weight1 ); + } + } + + private void InitializeBone4( Vector4[] baseVertices, int[] boneIndices, float[] boneWeights ) + { + Vector3[] meshVertices = m_renderer.sharedMesh.vertices; + Matrix4x4[] meshBindPoses = m_renderer.sharedMesh.bindposes; + BoneWeight[] meshBoneWeights = m_renderer.sharedMesh.boneWeights; + + for ( int i = 0; i < m_vertexCount; i++ ) + { + int offset0 = i * m_weightCount; + int offset1 = offset0 + 1; + int offset2 = offset0 + 2; + int offset3 = offset0 + 3; + + BoneWeight boneWeight = meshBoneWeights[ i ]; + int bone0 = boneIndices[ offset0 ] = boneWeight.boneIndex0; + int bone1 = boneIndices[ offset1 ] = boneWeight.boneIndex1; + int bone2 = boneIndices[ offset2 ] = boneWeight.boneIndex2; + int bone3 = boneIndices[ offset3 ] = boneWeight.boneIndex3; + + float weight0 = boneWeights[ offset0 ] = boneWeight.weight0; + float weight1 = boneWeights[ offset1 ] = boneWeight.weight1; + float weight2 = boneWeights[ offset2 ] = boneWeight.weight2; + float weight3 = boneWeights[ offset3 ] = boneWeight.weight3; + + Vector3 baseVertex0 = weight0 * meshBindPoses[ bone0 ].MultiplyPoint3x4( meshVertices[ i ] ); + Vector3 baseVertex1 = weight1 * meshBindPoses[ bone1 ].MultiplyPoint3x4( meshVertices[ i ] ); + Vector3 baseVertex2 = weight2 * meshBindPoses[ bone2 ].MultiplyPoint3x4( meshVertices[ i ] ); + Vector3 baseVertex3 = weight3 * meshBindPoses[ bone3 ].MultiplyPoint3x4( meshVertices[ i ] ); + + baseVertices[ offset0 ] = new Vector4( baseVertex0.x, baseVertex0.y, baseVertex0.z, weight0 ); + baseVertices[ offset1 ] = new Vector4( baseVertex1.x, baseVertex1.y, baseVertex1.z, weight1 ); + baseVertices[ offset2 ] = new Vector4( baseVertex2.x, baseVertex2.y, baseVertex2.z, weight2 ); + baseVertices[ offset3 ] = new Vector4( baseVertex3.x, baseVertex3.y, baseVertex3.z, weight3 ); + } + } + + private void UpdateVerticesBone1() + { + for ( int i = 0; i < m_vertexCount; i++ ) + MulPoint3x4_XYZ( ref m_currVertices[ i ], ref m_bones[ m_boneIndices[ i ] ], m_baseVertices[ i ] ); + } + + private void UpdateVerticesBone2() + { + Vector3 deformedVertex = Vector3.zero; + for ( int i = 0; i < m_vertexCount; i++ ) + { + int offset0 = i * 2; + int offset1 = offset0 + 1; + + int b0 = m_boneIndices[ offset0 ]; + int b1 = m_boneIndices[ offset1 ]; + float weight1 = m_boneWeights[ offset1 ]; + + MulPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b0 ], m_baseVertices[ offset0 ] ); + if ( weight1 != 0 ) + MulAddPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b1 ], m_baseVertices[ offset1 ] ); + + m_currVertices[ i ] = deformedVertex; + } + } + + private void UpdateVerticesBone4() + { + Vector3 deformedVertex = Vector3.zero; + for ( int i = 0; i < m_vertexCount; i++ ) + { + int offset0 = i * 4; + int offset1 = offset0 + 1; + int offset2 = offset0 + 2; + int offset3 = offset0 + 3; + + int b0 = m_boneIndices[ offset0 ]; + int b1 = m_boneIndices[ offset1 ]; + int b2 = m_boneIndices[ offset2 ]; + int b3 = m_boneIndices[ offset3 ]; + + float weight1 = m_boneWeights[ offset1 ]; + float weight2 = m_boneWeights[ offset2 ]; + float weight3 = m_boneWeights[ offset3 ]; + + MulPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b0 ], m_baseVertices[ offset0 ] ); + if ( weight1 != 0 ) + MulAddPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b1 ], m_baseVertices[ offset1 ] ); + if ( weight2 != 0 ) + MulAddPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b2 ], m_baseVertices[ offset2 ] ); + if ( weight3 != 0 ) + MulAddPoint3x4_XYZW( ref deformedVertex, ref m_bones[ b3 ], m_baseVertices[ offset3 ] ); + + m_currVertices[ i ] = deformedVertex; + } + } + + internal override void AsyncUpdate() + { + try + { + AsyncUpdateVertices( m_starting ); + } + catch ( System.Exception e ) + { + Debug.LogError( "[AmplifyMotion] Failed on SkinnedMeshRenderer data. Please contact support.\n" + e.Message ); + } + finally + { + m_asyncUpdateSignal.Set(); + } + } + +#if UNITY_4 + internal override void UpdateTransform( bool starting ) +#else + internal override void UpdateTransform( CommandBuffer updateCB, bool starting ) +#endif + { + if ( !m_initialized ) + { + Initialize(); + return; + } + + Profiler.BeginSample( "Skinned.Update" ); + + if ( !starting && m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + bool isVisible = m_renderer.isVisible; + + if ( !m_error && ( isVisible || starting ) ) + { + UpdateBones(); + + m_starting = !m_wasVisible || starting; + + if ( !m_useFallback ) + { + if ( !m_useGPU ) + { + m_asyncUpdateSignal.Reset(); + m_asyncUpdateTriggered = true; + m_owner.Instance.WorkerPool.EnqueueAsyncUpdate( this ); + } + #if !UNITY_4 + else + UpdateVerticesGPU( updateCB, m_starting ); + #endif + } + else + UpdateVerticesFallback( m_starting ); + } + + if ( !m_useFallback ) + m_currLocalToWorld = m_transform.localToWorldMatrix; + else + m_currLocalToWorld = Matrix4x4.TRS( m_transform.position, m_transform.rotation, Vector3.one ); + + if ( starting || !m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + m_wasVisible = isVisible; + + Profiler.EndSample(); + } + + private void WaitForAsyncUpdate() + { + if ( m_asyncUpdateTriggered ) + { + if ( !m_asyncUpdateSignal.WaitOne( MotionState.AsyncUpdateTimeout ) ) + { + Debug.LogWarning( "[AmplifyMotion] Aborted abnormally long Async Skin deform operation. Not a critical error but might indicate a problem. Please contact support." ); + return; + } + m_asyncUpdateTriggered = false; + } + } + +#if UNITY_4 + internal override void RenderVectors( Camera camera, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_renderer.isVisible ) + { + Profiler.BeginSample( "Skinned.Update" ); + + if ( !m_useFallback ) + { + if ( !m_useGPU ) + WaitForAsyncUpdate(); + } + + Profiler.EndSample(); + + Profiler.BeginSample( "Skinned.Render" ); + + if ( !m_useGPU ) + { + if ( !m_useFallback ) + m_clonedMesh.vertices = m_currVertices; + m_clonedMesh.normals = m_prevVertices; + } + + const float rcp255 = 1 / 255.0f; + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + Shader.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + Shader.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + Shader.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + if ( m_useGPU ) + { + #if !UNITY_4 + Vector4 vertexTexelSize = new Vector4( 1.0f / m_gpuVertexTexWidth, 1.0f / m_gpuVertexTexHeight, m_gpuVertexTexWidth, m_gpuVertexTexHeight ); + + Shader.SetGlobalVector( "_AM_VERTEX_TEXEL_SIZE", vertexTexelSize ); + Shader.SetGlobalVector( "_AM_VERTEX_TEXEL_HALFSIZE", vertexTexelSize * 0.5f ); + + Shader.SetGlobalTexture( "_AM_PREV_VERTEX_TEX", m_gpuPrevVertices ); + Shader.SetGlobalTexture( "_AM_CURR_VERTEX_TEX", m_gpuCurrVertices ); + #endif + } + + int hardwarePass = m_useGPU ? 4 : 0; + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + int basePass = hardwarePass + qualityPass; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = basePass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + m_owner.Instance.SkinnedVectorsMaterial.mainTexture = matDesc.material.mainTexture; + if ( matDesc.cutoff ) + m_owner.Instance.SkinnedVectorsMaterial.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + if ( m_owner.Instance.SkinnedVectorsMaterial.SetPass( pass ) ) + Graphics.DrawMeshNow( m_clonedMesh, m_currLocalToWorld, i ); + } + + Profiler.EndSample(); + } + } +#else + internal override void RenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_renderer.isVisible ) + { + Profiler.BeginSample( "Skinned.Update" ); + + if ( !m_useFallback ) + { + if ( !m_useGPU ) + WaitForAsyncUpdate(); + } + + Profiler.EndSample(); + + Profiler.BeginSample( "Skinned.Render" ); + if ( !m_useGPU ) + { + if ( !m_useFallback ) + m_clonedMesh.vertices = m_currVertices; + m_clonedMesh.normals = m_prevVertices; + } + + const float rcp255 = 1 / 255.0f; + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + renderCB.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + renderCB.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + renderCB.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + if ( m_useGPU ) + { + #if !UNITY_4 + Vector4 vertexTexelSize = new Vector4( 1.0f / m_gpuVertexTexWidth, 1.0f / m_gpuVertexTexHeight, m_gpuVertexTexWidth, m_gpuVertexTexHeight ); + + renderCB.SetGlobalVector( "_AM_VERTEX_TEXEL_SIZE", vertexTexelSize ); + renderCB.SetGlobalVector( "_AM_VERTEX_TEXEL_HALFSIZE", vertexTexelSize * 0.5f ); + + renderCB.SetGlobalTexture( "_AM_PREV_VERTEX_TEX", m_gpuPrevVertices ); + renderCB.SetGlobalTexture( "_AM_CURR_VERTEX_TEX", m_gpuCurrVertices ); + #endif + } + + int hardwarePass = m_useGPU ? 4 : 0; + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + int basePass = hardwarePass + qualityPass; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = basePass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + Texture mainTex = matDesc.material.mainTexture; + if ( mainTex != null ) + matDesc.propertyBlock.SetTexture( "_MainTex", mainTex ); + if ( matDesc.cutoff ) + matDesc.propertyBlock.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + renderCB.DrawMesh( m_clonedMesh, m_currLocalToWorld, m_owner.Instance.SkinnedVectorsMaterial, i, pass, matDesc.propertyBlock ); + } + + Profiler.EndSample(); + } + } +#endif + + //internal override void RenderDebugHUD() + //{ + // if ( m_useGPU && m_obj.name.Contains( "Soldier" ) ) + // { + // const int size = 180; + // int y = 180; + // + // GUI.DrawTexture( new Rect( 0, y, size, size ), m_gpuBoneIndices, ScaleMode.ScaleToFit, false ); + // GUI.DrawTexture( new Rect( size * 2, y, size, size ), m_gpuBones, ScaleMode.ScaleToFit, false ); + // y += size + 10; + // + // for ( int w = 0; w < m_weightCount; w++ ) + // GUI.DrawTexture( new Rect( w * size, y, size, size ), m_gpuBaseVertices[ w ], ScaleMode.ScaleToFit, false ); + // + // GUI.DrawTexture( new Rect( Screen.width - size * 2, y, size, size ), m_gpuPrevVertices, ScaleMode.ScaleToFit, false ); + // GUI.DrawTexture( new Rect( Screen.width - size, y, size, size ), m_gpuCurrVertices, ScaleMode.ScaleToFit, false ); + // } + //} +} +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs.meta new file mode 100644 index 0000000..9638c1b --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/SkinnedState.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ef01d8ed1b37f1e4db5c9d687dc4b0dd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs new file mode 100644 index 0000000..87179c5 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs @@ -0,0 +1,212 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 +#define UNITY_4 +#endif +#if UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5 || UNITY_5_6 || UNITY_5_7 || UNITY_5_8 || UNITY_5_9 +#define UNITY_5 +#endif + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Profiling; +#if !UNITY_4 +using UnityEngine.Rendering; +#endif + +namespace AmplifyMotion +{ +internal class SolidState : AmplifyMotion.MotionState +{ + public MeshRenderer m_meshRenderer; + + public Matrix4x4 m_prevLocalToWorld; + public Matrix4x4 m_currLocalToWorld; + + public Vector3 m_lastPosition; + public Quaternion m_lastRotation; + public Vector3 m_lastScale; + + private Mesh m_mesh; + + private MaterialDesc[] m_sharedMaterials; + + public bool m_moved = false; + private bool m_wasVisible; + + private static HashSet m_uniqueWarnings = new HashSet(); + + public SolidState( AmplifyMotionCamera owner, AmplifyMotionObjectBase obj ) + : base( owner, obj ) + { + m_meshRenderer = m_obj.GetComponent(); + } + + internal override void Initialize() + { + MeshFilter meshFilter = m_obj.GetComponent(); + if ( meshFilter == null || meshFilter.mesh == null ) + { + if ( !m_uniqueWarnings.Contains( m_obj ) ) + { + Debug.LogWarning( "[AmplifyMotion] Invalid MeshFilter/Mesh in object " + m_obj.name + ". Skipping." ); + m_uniqueWarnings.Add( m_obj ); + } + m_error = true; + return; + } + + base.Initialize(); + + m_mesh = meshFilter.mesh; + + m_sharedMaterials = ProcessSharedMaterials( m_meshRenderer.sharedMaterials ); + + m_wasVisible = false; + } + +#if UNITY_4 + internal override void UpdateTransform( bool starting ) +#else + internal override void UpdateTransform( CommandBuffer updateCB, bool starting ) +#endif + { + if ( !m_initialized ) + { + Initialize(); + return; + } + + Profiler.BeginSample( "Solid.Update" ); + + if ( !starting && m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + m_moved = true; + if ( !m_owner.Overlay ) + { + Vector3 position = m_transform.position; + Quaternion rotation = m_transform.rotation; + Vector3 scale = m_transform.lossyScale; + + m_moved = starting || + VectorChanged( position, m_lastPosition ) || + RotationChanged( rotation, m_lastRotation ) || + VectorChanged( scale, m_lastScale ); + + if ( m_moved ) + { + m_lastPosition = position; + m_lastRotation = rotation; + m_lastScale = scale; + } + } + + m_currLocalToWorld = m_transform.localToWorldMatrix; + + if ( starting || !m_wasVisible ) + m_prevLocalToWorld = m_currLocalToWorld; + + m_wasVisible = m_meshRenderer.isVisible; + + Profiler.EndSample(); + } + +#if UNITY_4 + internal override void RenderVectors( Camera camera, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_meshRenderer.isVisible ) + { + Profiler.BeginSample( "Solid.Render" ); + + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + if ( !mask || ( mask && m_moved ) ) + { + const float rcp255 = 1 / 255.0f; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + Shader.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + Shader.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + Shader.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = qualityPass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + m_owner.Instance.SolidVectorsMaterial.mainTexture = matDesc.material.mainTexture; + if ( matDesc.cutoff ) + m_owner.Instance.SolidVectorsMaterial.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + if ( m_owner.Instance.SolidVectorsMaterial.SetPass( pass ) ) + Graphics.DrawMeshNow( m_mesh, m_transform.localToWorldMatrix, i ); + } + } + + Profiler.EndSample(); + } + } +#else + internal override void RenderVectors( Camera camera, CommandBuffer renderCB, float scale, AmplifyMotion.Quality quality ) + { + if ( m_initialized && !m_error && m_meshRenderer.isVisible ) + { + Profiler.BeginSample( "Solid.Render" ); + + bool mask = ( m_owner.Instance.CullingMask & ( 1 << m_obj.gameObject.layer ) ) != 0; + if ( !mask || ( mask && m_moved ) ) + { + const float rcp255 = 1 / 255.0f; + int objectId = mask ? m_owner.Instance.GenerateObjectId( m_obj.gameObject ) : 255; + + Matrix4x4 prevModelViewProj; + if ( m_obj.FixedStep ) + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_currLocalToWorld; + else + prevModelViewProj = m_owner.PrevViewProjMatrixRT * m_prevLocalToWorld; + + renderCB.SetGlobalMatrix( "_AM_MATRIX_PREV_MVP", prevModelViewProj ); + renderCB.SetGlobalFloat( "_AM_OBJECT_ID", objectId * rcp255 ); + renderCB.SetGlobalFloat( "_AM_MOTION_SCALE", mask ? scale : 0 ); + + // TODO: cache property blocks + + int qualityPass = ( quality == AmplifyMotion.Quality.Mobile ) ? 0 : 2; + + for ( int i = 0; i < m_sharedMaterials.Length; i++ ) + { + MaterialDesc matDesc = m_sharedMaterials[ i ]; + int pass = qualityPass + ( matDesc.coverage ? 1 : 0 ); + + if ( matDesc.coverage ) + { + Texture mainTex = matDesc.material.mainTexture; + if ( mainTex != null ) + matDesc.propertyBlock.SetTexture( "_MainTex", mainTex ); + if ( matDesc.cutoff ) + matDesc.propertyBlock.SetFloat( "_Cutoff", matDesc.material.GetFloat( "_Cutoff" ) ); + } + + renderCB.DrawMesh( m_mesh, m_transform.localToWorldMatrix, m_owner.Instance.SolidVectorsMaterial, i, pass, matDesc.propertyBlock ); + } + } + + Profiler.EndSample(); + } + } +#endif +} +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs.meta new file mode 100644 index 0000000..dd70ecb --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/SolidState.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9d29ecb1177dbe5488d7d41e2fa8ef6a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs b/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs new file mode 100644 index 0000000..7491b16 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs @@ -0,0 +1,182 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +using System; +using System.Threading; +#if NETFX_CORE +using Windows.System.Threading; +using System.Threading.Tasks; +#endif +using System.Collections.Generic; +using UnityEngine; + +namespace AmplifyMotion +{ +internal class WorkerThreadPool +{ +#if !NETFX_CORE && !UNITY_WEBGL + private const int ThreadStateQueueCapacity = 1024; + internal Queue[] m_threadStateQueues = null; + internal object[] m_threadStateQueueLocks = null; + + private int m_threadPoolSize = 0; + private ManualResetEvent m_threadPoolTerminateSignal; + private AutoResetEvent[] m_threadPoolContinueSignals; + private Thread[] m_threadPool = null; + private bool m_threadPoolFallback = false; + internal object m_threadPoolLock = null; + internal int m_threadPoolIndex = 0; +#endif + + internal void InitializeAsyncUpdateThreads( int threadCount, bool systemThreadPool ) + { + #if !NETFX_CORE && !UNITY_WEBGL + if ( systemThreadPool ) + { + m_threadPoolFallback = true; + return; + } + + try + { + m_threadPoolSize = threadCount; + m_threadStateQueues = new Queue[ m_threadPoolSize ]; + m_threadStateQueueLocks = new object[ m_threadPoolSize ]; + m_threadPool = new Thread[ m_threadPoolSize ]; + + m_threadPoolTerminateSignal = new ManualResetEvent( false ); + m_threadPoolContinueSignals = new AutoResetEvent[ m_threadPoolSize ]; + m_threadPoolLock = new object(); + m_threadPoolIndex = 0; + + for ( int id = 0; id < m_threadPoolSize; id++ ) + { + m_threadStateQueues[ id ] = new Queue( ThreadStateQueueCapacity ); + m_threadStateQueueLocks[ id ] = new object(); + + m_threadPoolContinueSignals[ id ] = new AutoResetEvent( false ); + + m_threadPool[ id ] = new Thread( new ParameterizedThreadStart( AsyncUpdateThread ) ); + m_threadPool[ id ].Start( new KeyValuePair( this, id ) ); + } + } + catch ( Exception e ) + { + // fallback to ThreadPool + Debug.LogWarning( "[AmplifyMotion] Non-critical error while initializing WorkerThreads. Falling back to using System.Threading.ThreadPool().\n" + e.Message ); + m_threadPoolFallback = true; + } + #endif + } + + internal void FinalizeAsyncUpdateThreads() + { + #if !NETFX_CORE && !UNITY_WEBGL + if ( !m_threadPoolFallback ) + { + m_threadPoolTerminateSignal.Set(); + + for ( int i = 0; i < m_threadPoolSize; i++ ) + { + if ( m_threadPool[ i ].IsAlive ) + { + m_threadPoolContinueSignals[ i ].Set(); + m_threadPool[ i ].Join(); + + // making sure these marked for disposal + m_threadPool[ i ] = null; + } + + lock ( m_threadStateQueueLocks[ i ] ) + { + while ( m_threadStateQueues[ i ].Count > 0 ) + m_threadStateQueues[ i ].Dequeue().AsyncUpdate(); + } + } + + m_threadStateQueues = null; + m_threadStateQueueLocks = null; + + m_threadPoolSize = 0; + m_threadPool = null; + m_threadPoolTerminateSignal = null; + m_threadPoolContinueSignals = null; + m_threadPoolLock = null; + m_threadPoolIndex = 0; + } + #endif + } + + internal void EnqueueAsyncUpdate( AmplifyMotion.MotionState state ) + { + #if NETFX_CORE + Task.Run( () => AsyncUpdateCallback( state ) ); + #elif UNITY_WEBGL + AsyncUpdateCallback( state ); + #else + if ( !m_threadPoolFallback ) + { + lock ( m_threadStateQueueLocks[ m_threadPoolIndex ] ) + { + m_threadStateQueues[ m_threadPoolIndex ].Enqueue( state ); + } + + m_threadPoolContinueSignals[ m_threadPoolIndex ].Set(); + + m_threadPoolIndex++; + if ( m_threadPoolIndex >= m_threadPoolSize ) + m_threadPoolIndex = 0; + } + else + ThreadPool.QueueUserWorkItem( new WaitCallback( AsyncUpdateCallback ), state ); + #endif + } + + private static void AsyncUpdateCallback( object obj ) + { + AmplifyMotion.MotionState state = ( AmplifyMotion.MotionState ) obj; + state.AsyncUpdate(); + } + + private static void AsyncUpdateThread( object obj ) + { + #if !NETFX_CORE && !UNITY_WEBGL + KeyValuePair pair = ( KeyValuePair ) obj; + WorkerThreadPool pool = ( WorkerThreadPool ) pair.Key; + int id = ( int ) pair.Value; + + while ( true ) + { + try + { + pool.m_threadPoolContinueSignals[ id ].WaitOne(); + + if ( pool.m_threadPoolTerminateSignal.WaitOne( 0 ) ) + break; + + while ( true ) + { + AmplifyMotion.MotionState state = null; + + lock ( pool.m_threadStateQueueLocks[ id ] ) + { + if ( pool.m_threadStateQueues[ id ].Count > 0 ) + state = pool.m_threadStateQueues[ id ].Dequeue(); + } + + if ( state != null ) + state.AsyncUpdate(); + else + break; + } + } + catch ( System.Exception e ) + { + if ( e.GetType() != typeof( ThreadAbortException ) ) + Debug.LogWarning( e ); + } + } + #endif + } +} +} diff --git a/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs.meta b/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs.meta new file mode 100644 index 0000000..5c14588 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Plugins/WorkerThreadPool.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 657ea4a21f9ed6849b837ac500e921a0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources.meta b/Assets/Cinematic Effects/MotionBlur/Resources.meta new file mode 100644 index 0000000..299f9ad --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f9e2a8bd9fe5044ac862ed1d017d8ccc +folderAsset: yes +timeCreated: 1461976949 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader b/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader new file mode 100644 index 0000000..60e3b7d --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader @@ -0,0 +1,126 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/ClothVectors" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Cutoff ("Alpha cutoff", Range(0,1)) = 0.25 + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #include "Shared.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float3 prev_vertex : NORMAL; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 pos : SV_POSITION; + float4 motion : TEXCOORD0; + float4 screen_pos : TEXCOORD1; + float2 uv : TEXCOORD2; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + float _Cutoff; + + v2f vert_base( appdata_t v, bool mobile ) + { + v2f o; + UNITY_INITIALIZE_OUTPUT( v2f, o ); + + float4 pos = o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + float4 pos_prev = mul( _AM_MATRIX_PREV_MVP, float4( v.prev_vertex, 1 ) ); + float4 pos_curr = o.pos; + + #if UNITY_UV_STARTS_AT_TOP + pos_curr.y = -pos_curr.y; + pos_prev.y = -pos_prev.y; + if ( _ProjectionParams.x > 0 ) + pos.y = -pos.y; + #endif + + pos_prev = pos_prev / pos_prev.w; + pos_curr = pos_curr / pos_curr.w; + + if ( mobile ) + o.motion = DeformableMotionVector( ( pos_curr.xyz - pos_prev.xyz ) * _AM_MOTION_SCALE, _AM_OBJECT_ID ); + else + o.motion.xyz = ( pos_curr.xyz - pos_prev.xyz ) * _AM_MOTION_SCALE; + + o.screen_pos = ComputeScreenPos( pos ); + o.uv = TRANSFORM_TEX( v.texcoord, _MainTex ); + return o; + } + + inline half4 frag_opaque( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) ) + discard; + + if ( mobile ) + return i.motion; + else + return DeformableMotionVector( i.motion, _AM_OBJECT_ID ); + } + + inline half4 frag_cutout( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) || tex2D( _MainTex, i.uv ).a < _Cutoff ) + discard; + + if ( mobile ) + return i.motion; + else + return DeformableMotionVector( i.motion, _AM_OBJECT_ID ); + } + ENDCG + SubShader { + Tags { "RenderType"="Opaque" } + Blend Off Cull Off Fog { Mode off } + ZTest LEqual ZWrite On + Offset -1, -1 + Pass { + Name "MOB_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, true ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, true ); } + ENDCG + } + Pass { + Name "MOB_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, true ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, true ); } + ENDCG + } + Pass { + Name "STD_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, false ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, false ); } + ENDCG + } + Pass { + Name "STD_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, false ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, false ); } + ENDCG + } + } + FallBack Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader.meta new file mode 100644 index 0000000..9414595 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/ClothVectors.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1768f062f9aaadc49b754774fc1c5c47 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader b/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader new file mode 100644 index 0000000..8fac628 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader @@ -0,0 +1,75 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/Combine" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + _CameraMotionTex ("Motion (RGB)", 2D) = "white" {} + } + CGINCLUDE + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _MotionTex; + sampler2D _BlurredTex; + float4 _MainTex_TexelSize; + + struct v2f + { + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + o.uv.xy = v.texcoord.xy; + o.uv.zw = v.texcoord.xy; + #if defined( UNITY_UV_STARTS_AT_TOP ) + if ( _MainTex_TexelSize.y < 0 ) + o.uv.w = 1 - o.uv.w; + #endif + return o; + } + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + + // Combine source RGB and motion object ID + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + half4 frag( v2f i ) : SV_Target + { + return half4( tex2D( _MainTex, i.uv.xy ).xyz, tex2D( _MotionTex, i.uv.zw ).a + 0.0000001f ); // hack to trick Unity into behaving + } + ENDCG + } + + // Combine motion blurred lowres and non-blurred full res (mobile mode) + Pass { + Blend SrcAlpha OneMinusSrcAlpha + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + half4 frag( v2f i ) : SV_Target + { + half4 source = tex2D( _MainTex, i.uv.xy ); + half mag = 2 * tex2D( _MotionTex, i.uv.zw ).z; + return half4( source.rgb, 1 - saturate( mag * 1.5 ) ); + } + ENDCG + } + } + + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader.meta new file mode 100644 index 0000000..41d8eb6 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Combine.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 930d72fd71d3a464b9ac2e51161a269e +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader b/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader new file mode 100644 index 0000000..16f8a44 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader @@ -0,0 +1,56 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/Debug" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + } + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _MotionTex; + sampler2D _CameraDepthTexture; + float4 _MainTex_TexelSize; + + struct v2f + { + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + o.uv.xy = v.texcoord.xy; + o.uv.zw = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if ( _MainTex_TexelSize.y < 0 ) + o.uv.w = 1 - o.uv.w; + #endif + return o; + } + + half4 frag( v2f i ) : SV_Target + { + half4 motion = tex2D( _MotionTex, i.uv.zw ); + half2 vec = ( motion.xy * 2 - 1 ) * motion.z; + half id = motion.w; + return half4( vec, id * 10, 1 ); + } + ENDCG + } + } + + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader.meta new file mode 100644 index 0000000..ba1d73b --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Debug.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e352ad1d36bf8904c927cfbcecf998d1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader b/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader new file mode 100644 index 0000000..8c51fa6 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader @@ -0,0 +1,139 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/Depth" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #include "UnityCG.cginc" + + sampler2D _CameraDepthTexture; + float4 _CameraDepthTexture_TexelSize; + + sampler2D _MainTex; + float4 _MainTex_TexelSize; + + sampler2D _MotionTex; + + struct v2f + { + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; + float4 uv0 : TEXCOORD1; + float4 uv1 : TEXCOORD2; + float4 uv2 : TEXCOORD3; + float4 uv3 : TEXCOORD4; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + + const float4 texels = float4( _MainTex_TexelSize.xy, _CameraDepthTexture_TexelSize.xy ); + const float4 offsets[ 4 ] = { + float4( 0.5, 0.5, 0.5, 0.5 ), + float4( 1.5, 0.5, 1.5, 0.5 ), + float4( 1.5, 1.5, 1.5, 1.5 ), + float4( 0.5, 1.5, 0.5, 1.5 ) + }; + + o.uv = v.texcoord.xyxy; + o.uv0 = v.texcoord.xyxy + texels * offsets[ 0 ]; + o.uv1 = v.texcoord.xyxy + texels * offsets[ 1 ]; + o.uv2 = v.texcoord.xyxy + texels * offsets[ 2 ]; + o.uv3 = v.texcoord.xyxy + texels * offsets[ 3 ]; + + #if UNITY_UV_STARTS_AT_TOP + if ( _MainTex_TexelSize.y < 0 ) + { + o.uv.w = 1 - o.uv.w; + o.uv0.w = 1 - o.uv0.w; + o.uv1.w = 1 - o.uv1.w; + o.uv2.w = 1 - o.uv2.w; + o.uv3.w = 1 - o.uv3.w; + } + #endif + return o; + } + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + + // Straight Copy + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + fixed4 frag( v2f i ) : SV_Target + { + float depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.zw ); + return ( depth == 1.0 ) ? ( 1.0 ).xxxx : EncodeFloatRGBA( depth ); + } + ENDCG + } + + // 4-Tap MinZ Depth Downsampling + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + half4 frag( v2f i ) : SV_Target + { + float depth0 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv0.zw ); + float depth1 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv1.zw ); + float depth2 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv2.zw ); + float depth3 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv3.zw ); + + float depth = depth0; + depth = ( depth1 < depth ) ? depth1 : depth; + depth = ( depth2 < depth ) ? depth2 : depth; + depth = ( depth3 < depth ) ? depth3 : depth; + + return depth.xxxx; + } + ENDCG + } + + // 4-Tap Depth-Aware (MinZ) Combined Downsampling + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + half4 frag( v2f i ) : SV_Target + { + float depth0 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv0.zw ); + float depth1 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv1.zw ); + float depth2 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv2.zw ); + float depth3 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv3.zw ); + + half4 combo0 = half4( tex2D( _MainTex, i.uv0.xy ).xyz, tex2D( _MotionTex, i.uv0.zw ).a + 0.0000001 ); + half4 combo1 = half4( tex2D( _MainTex, i.uv1.xy ).xyz, tex2D( _MotionTex, i.uv1.zw ).a + 0.0000001 ); + half4 combo2 = half4( tex2D( _MainTex, i.uv2.xy ).xyz, tex2D( _MotionTex, i.uv2.zw ).a + 0.0000001 ); + half4 combo3 = half4( tex2D( _MainTex, i.uv3.xy ).xyz, tex2D( _MotionTex, i.uv3.zw ).a + 0.0000001 ); + + half4 combo = combo0; + float depth = depth0; + + combo = ( depth1 < depth ) ? combo1 : combo; + depth = ( depth1 < depth ) ? depth1 : depth; + combo = ( depth2 < depth ) ? combo2 : combo; + depth = ( depth2 < depth ) ? depth2 : depth; + combo = ( depth3 < depth ) ? combo3 : combo; + depth = ( depth3 < depth ) ? depth3 : depth; + + return combo; + } + ENDCG + } + } + + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader.meta new file mode 100644 index 0000000..f1d5439 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Depth.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6e53249b629741a4eb9dc58c3f2b617d +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader b/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader new file mode 100644 index 0000000..447f9ee --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader @@ -0,0 +1,160 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/Dilation" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #include "UnityCG.cginc" + + sampler2D _CameraDepthTexture; + sampler2D _MotionTex; + float4 _MainTex_TexelSize; + + struct v2f + { + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + o.uv.xy = v.texcoord.xy; + o.uv.zw = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if ( _MainTex_TexelSize.y < 0 ) + o.uv.w = 1 - o.uv.w; + #endif + return o; + } + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + + // Separable Dilation - 3-Tap Horizontal + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_horizontal + + half4 frag_horizontal( v2f i ) : SV_Target + { + float tx = _MainTex_TexelSize.x; + float2 offsets[ 3 ] = { float2( -tx, 0 ), float2( 0, 0 ), float2( tx, 0 ) }; + + half4 motion_ref = tex2D( _MotionTex, i.uv.zw ); + float depth_ref = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.zw ); + half4 result = motion_ref; + + for ( int tap = 0; tap < 3; tap++ ) + { + float2 tap_uv = i.uv.zw + offsets[ tap ]; + + half4 motion = tex2D( _MotionTex, tap_uv ); + float depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, tap_uv ); + result = ( depth < depth_ref ) ? motion : result; + } + + return result; + } + ENDCG + } + + // Separable Dilation - 3-Tap Vertical + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_vertical + + half4 frag_vertical( v2f i ) : SV_Target + { + float ty = _MainTex_TexelSize.y; + float2 offsets[ 3 ] = { float2( 0, -ty ), float2( 0, 0 ), float2( 0, ty ) }; + + half4 motion_ref = tex2D( _MotionTex, i.uv.zw ); + float depth_ref = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.zw ); + half4 result = motion_ref; + + for ( int tap = 0; tap < 3; tap++ ) + { + float2 tap_uv = i.uv.zw + offsets[ tap ]; + + half4 motion = tex2D( _MotionTex, tap_uv ); + float depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, tap_uv ); + result = ( depth < depth_ref ) ? motion : result; + } + + return result; + } + ENDCG + } + + // Separable Dilation - 5-Tap Horizontal + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_horizontal + + half4 frag_horizontal( v2f i ) : SV_Target + { + float tx1 = _MainTex_TexelSize.x; + float tx2 = tx1 + tx1; + float2 offsets[ 5 ] = { float2( -tx2, 0 ), float2( -tx1, 0 ), float2( 0, 0 ), float2( tx1, 0 ), float2( tx2, 0 ) }; + + half4 motion_ref = tex2D( _MotionTex, i.uv.zw ); + float depth_ref = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.zw ); + half4 result = motion_ref; + + for ( int tap = 0; tap < 5; tap++ ) + { + float2 tap_uv = i.uv.zw + offsets[ tap ]; + + half4 motion = tex2D( _MotionTex, tap_uv ); + float depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, tap_uv ); + result = ( depth < depth_ref ) ? motion : result; + } + + return result; + } + ENDCG + } + + // Separable Dilation - 5-Tap Vertical + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_vertical + + half4 frag_vertical( v2f i ) : SV_Target + { + float ty1 = _MainTex_TexelSize.y; + float ty2 = ty1 + ty1; + float2 offsets[ 5 ] = { float2( 0, -ty2 ), float2( 0, -ty1 ), float2( 0, 0 ), float2( 0, ty1 ), float2( 0, ty2 ) }; + + half4 motion_ref = tex2D( _MotionTex, i.uv.zw ); + float depth_ref = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.zw ); + half4 result = motion_ref; + + for ( int tap = 0; tap < 5; tap++ ) + { + float2 tap_uv = i.uv.zw + offsets[ tap ]; + + half4 motion = tex2D( _MotionTex, tap_uv ); + float depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, tap_uv ); + result = ( depth < depth_ref ) ? motion : result; + } + + return result; + } + ENDCG + } + } + + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader.meta new file mode 100644 index 0000000..dadf1af --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Dilation.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 83053a1495b64ea47942703db953dfb1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader b/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader new file mode 100644 index 0000000..654fec2 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader @@ -0,0 +1,113 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/GPUSkinDeform" { + Properties { } + CGINCLUDE + #pragma target 3.0 + #pragma glsl + #include "UnityCG.cginc" + + sampler2D _AM_BONE_TEX; + sampler2D _AM_BONE_INDEX_TEX; + sampler2D _AM_BASE_VERTEX0_TEX; + sampler2D _AM_BASE_VERTEX1_TEX; + sampler2D _AM_BASE_VERTEX2_TEX; + sampler2D _AM_BASE_VERTEX3_TEX; + + float4 _AM_BONE_TEXEL_SIZE; + float4 _AM_BONE_TEXEL_HALFSIZE; + + float4x4 _AM_WORLD_TO_LOCAL_MATRIX; + + inline float4x4 fetch_bone( float index ) + { + float4 row0 = tex2Dlod( _AM_BONE_TEX, float4( float2( index, 0 ) * _AM_BONE_TEXEL_SIZE.xy + _AM_BONE_TEXEL_HALFSIZE.xy, 0, 0 ) ); + float4 row1 = tex2Dlod( _AM_BONE_TEX, float4( float2( index, 1 ) * _AM_BONE_TEXEL_SIZE.xy + _AM_BONE_TEXEL_HALFSIZE.xy, 0, 0 ) ); + float4 row2 = tex2Dlod( _AM_BONE_TEX, float4( float2( index, 2 ) * _AM_BONE_TEXEL_SIZE.xy + _AM_BONE_TEXEL_HALFSIZE.xy, 0, 0 ) ); + float4 row3 = tex2Dlod( _AM_BONE_TEX, float4( float2( index, 3 ) * _AM_BONE_TEXEL_SIZE.xy + _AM_BONE_TEXEL_HALFSIZE.xy, 0, 0 ) ); + return float4x4( row0, row1, row2, row3 ); + } + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + + // 1 weight per-vertex + Pass { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + + float4 frag( v2f_img i ) : SV_Target + { + float4 boneIndices = tex2Dlod( _AM_BONE_INDEX_TEX, float4( i.uv, 0, 0 ) ); + + float4 baseVertex0 = tex2Dlod( _AM_BASE_VERTEX0_TEX, float4( i.uv, 0, 0 ) ); + + float4x4 bone0 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.x ) ); + + float4 deformedVertex; + deformedVertex = mul( bone0, baseVertex0 ); + + return float4( deformedVertex.xyz, 1 ); + } + ENDCG + } + + // 2 weights per-vertex + Pass { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + + float4 frag( v2f_img i ) : SV_Target + { + float4 boneIndices = tex2Dlod( _AM_BONE_INDEX_TEX, float4( i.uv, 0, 0 ) ); + + float4 baseVertex0 = tex2Dlod( _AM_BASE_VERTEX0_TEX, float4( i.uv, 0, 0 ) ); + float4 baseVertex1 = tex2Dlod( _AM_BASE_VERTEX1_TEX, float4( i.uv, 0, 0 ) ); + + float4x4 bone0 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.x ) ); + float4x4 bone1 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.y ) ); + + float4 deformedVertex; + deformedVertex = mul( bone0, baseVertex0 ); + deformedVertex += mul( bone1, baseVertex1 ); + + return float4( deformedVertex.xyz, 1 ); + } + ENDCG + } + + // 4 weights per-vertex + Pass { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + + float4 frag( v2f_img i ) : SV_Target + { + float4 boneIndices = tex2Dlod( _AM_BONE_INDEX_TEX, float4( i.uv, 0, 0 ) ); + + float4 baseVertex0 = tex2Dlod( _AM_BASE_VERTEX0_TEX, float4( i.uv, 0, 0 ) ); + float4 baseVertex1 = tex2Dlod( _AM_BASE_VERTEX1_TEX, float4( i.uv, 0, 0 ) ); + float4 baseVertex2 = tex2Dlod( _AM_BASE_VERTEX2_TEX, float4( i.uv, 0, 0 ) ); + float4 baseVertex3 = tex2Dlod( _AM_BASE_VERTEX3_TEX, float4( i.uv, 0, 0 ) ); + + float4x4 bone0 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.x ) ); + float4x4 bone1 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.y ) ); + float4x4 bone2 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.z ) ); + float4x4 bone3 = mul( _AM_WORLD_TO_LOCAL_MATRIX, fetch_bone( boneIndices.w ) ); + + float4 deformedVertex; + deformedVertex = mul( bone0, baseVertex0 ); + deformedVertex += mul( bone1, baseVertex1 ); + deformedVertex += mul( bone2, baseVertex2 ); + deformedVertex += mul( bone3, baseVertex3 ); + + return float4( deformedVertex.xyz, 1 ); + } + ENDCG + } + } +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader.meta new file mode 100644 index 0000000..5174a7e --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/GPUSkinDeform.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9f9650ce6454d854dad8d0372917779e +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader new file mode 100644 index 0000000..ee10188 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader @@ -0,0 +1,35 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/MotionBlurSM2" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + #include "MotionBlurShared.cginc" + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + Pass { + Name "MOB" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_mobile + #pragma target 2.0 + ENDCG + } + Pass { + Name "STD" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_sm2 + #pragma target 2.0 + ENDCG + } + } + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader.meta new file mode 100644 index 0000000..2909ca7 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM2.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ebf06ea1548615049bfb691bcb60d35b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader new file mode 100644 index 0000000..cf81ccd --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader @@ -0,0 +1,53 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/MotionBlurSM3" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _MotionTex ("Motion (RGB)", 2D) = "white" {} + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + #include "MotionBlurShared.cginc" + ENDCG + SubShader { + ZTest Always Cull Off ZWrite Off Fog { Mode off } + Pass { + Name "MOB" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_mobile + #pragma target 2.0 + ENDCG + } + Pass { + Name "STD" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_sm2 + #pragma target 2.0 + ENDCG + } + Pass { + Name "STD_SM3" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_sm3 + #pragma target 3.0 + #pragma exclude_renderers d3d11_9x + ENDCG + } + Pass { + Name "SOFT_SM3" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag_soft_sm3 + #pragma target 3.0 + #pragma exclude_renderers d3d11_9x + ENDCG + } + } + Fallback Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader.meta new file mode 100644 index 0000000..cb68c00 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurSM3.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9e697d6188428a43830f6aad3d2c114 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc new file mode 100644 index 0000000..8c2eaf3 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc @@ -0,0 +1,236 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#ifndef AMPLIFY_MOTION_BLUR_SHARED_INCLUDED +#define AMPLIFY_MOTION_BLUR_SHARED_INCLUDED + +#include "UnityCG.cginc" + +sampler2D _MainTex; +float4 _MainTex_TexelSize; + +sampler2D _CameraDepthTexture; +float4 _CameraDepthTexture_TexelSize; + +sampler2D _DepthTex; +float4 _DepthTex_TexelSize; +sampler2D _MotionTex; + +half4 _AM_BLUR_STEP; +half2 _AM_DEPTH_THRESHOLD; + +struct v2f +{ + float4 pos : SV_POSITION; + float4 uv : TEXCOORD0; +}; + +v2f vert( appdata_img v ) +{ + v2f o = ( v2f ) 0; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + o.uv.xy = v.texcoord.xy; + o.uv.zw = v.texcoord.xy; +#if UNITY_UV_STARTS_AT_TOP + if ( _MainTex_TexelSize.y < 0 ) + o.uv.w = 1 - o.uv.w; +#endif + return o; +} + +half4 frag_mobile( v2f i ) : SV_Target +{ + // 3-TAP + half3 motion = tex2D( _MotionTex, i.uv.zw ).xyz; + half4 color = tex2D( _MainTex, i.uv.xy ); + half4 accum = half4( color.xyz, 1 ); + + half ref_depth = saturate( DecodeFloatRGBA( tex2D( _DepthTex, i.uv.xy ) ) ); + half ref_id = color.a; + + half id = floor( color.a * 255 + 0.5 ); + half ref_isobj = ( id > 1 ) * ( id < 254 ); + + half2 dir_step = _AM_BLUR_STEP.xy * ( motion.xy * 2.0 - 1.0 ) * motion.z; + + half sample_depth0 = saturate( DecodeFloatRGBA( tex2D( _DepthTex, i.uv.xy - dir_step ) ) ); + half sample_depth1 = saturate( DecodeFloatRGBA( tex2D( _DepthTex, i.uv.xy + dir_step ) ) ); + + half4 sample_color0 = tex2D( _MainTex, i.uv.xy - dir_step ); + half4 sample_color1 = tex2D( _MainTex, i.uv.xy + dir_step ); + + half2 sample_depth = half2( sample_depth0, sample_depth1 ); + half2 sample_id = half2( sample_color0.a, sample_color1.a ); + + half2 depth_test = sample_depth > ( ref_depth.xx - _AM_DEPTH_THRESHOLD.xx ); + half2 obj_test = ref_isobj.xx * ( sample_id == ref_id.xx ); + + half2 sample_test = saturate( depth_test + obj_test ); + + accum += sample_test.x * half4( sample_color0.xyz, 1 ); + accum += sample_test.y * half4( sample_color1.xyz, 1 ); + + return half4( accum.xyz / accum.w, ref_id ); +} + +half4 frag_sm2( v2f i ) : SV_Target +{ + // 5-TAP + half3 motion = tex2D( _MotionTex, i.uv.zw ).xyz; + half4 color = tex2D( _MainTex, i.uv.xy ); + half4 accum = half4( color.xyz, 1 ); + + half ref_depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy ); + half ref_id = color.a; + + half id = floor( color.a * 255 + 0.5 ); + half ref_isobj = ( id > 1 ) * ( id < 254 ); + + half2 dir_step = _AM_BLUR_STEP.xy * ( motion.xy * 2.0 - 1.0 ) * motion.z; + half2 dir_step1 = dir_step * 0.5; + + half sample_depth0 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step ); + half sample_depth1 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step1 ); + half sample_depth2 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step1 ); + half sample_depth3 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step ); + + half4 sample_color0 = tex2D( _MainTex, i.uv.xy - dir_step ); + half4 sample_color1 = tex2D( _MainTex, i.uv.xy - dir_step1 ); + half4 sample_color2 = tex2D( _MainTex, i.uv.xy + dir_step1 ); + half4 sample_color3 = tex2D( _MainTex, i.uv.xy + dir_step ); + + half4 sample_depth = half4( sample_depth0, sample_depth1, sample_depth2, sample_depth3 ); + half4 sample_id = half4( sample_color0.a, sample_color1.a, sample_color2.a, sample_color3.a ); + + half4 depth_test = sample_depth > ( ref_depth.xxxx - _AM_DEPTH_THRESHOLD.xxxx ); + half4 obj_test = ref_isobj.xxxx * ( sample_id == ref_id.xxxx ); + + half4 sample_test = saturate( depth_test + obj_test ); + + accum += sample_test.x * half4( sample_color0.xyz, 1 ); + accum += sample_test.y * half4( sample_color1.xyz, 1 ); + accum += sample_test.z * half4( sample_color2.xyz, 1 ); + accum += sample_test.w * half4( sample_color3.xyz, 1 ); + + return half4( accum.xyz / accum.w, ref_id ); +} + +half4 frag_sm3( v2f i ) : SV_Target +{ + // 9-TAP + half3 motion = tex2D( _MotionTex, i.uv.zw ).xyz; + half4 color = tex2D( _MainTex, i.uv.xy ); + half4 accum = half4( color.xyz, 1 ); + + half ref_depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy ); + half ref_id = color.a; + + half id = floor( color.a * 255 + 0.5 ); + half ref_isobj = ( id > 1 ) * ( id < 254 ); + + half2 dir_step = _AM_BLUR_STEP.xy * ( motion.xy * 2.0 - 1.0 ) * motion.z; + half2 dir_step1 = dir_step * 0.75; + half2 dir_step2 = dir_step * 0.50; + half2 dir_step3 = dir_step * 0.25; + + half sample_depth0 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step ); + half sample_depth1 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step1 ); + half sample_depth2 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step2 ); + half sample_depth3 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step3 ); + half sample_depth4 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step3 ); + half sample_depth5 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step2 ); + half sample_depth6 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step1 ); + half sample_depth7 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step ); + + half4 sample_depthA = half4( sample_depth0, sample_depth1, sample_depth2, sample_depth3 ); + half4 sample_depthB = half4( sample_depth4, sample_depth5, sample_depth6, sample_depth7 ); + + half4 diffA = ref_depth.xxxx - sample_depthA; + half4 diffB = ref_depth.xxxx - sample_depthB; + half4 diff_testA = diffA < _AM_DEPTH_THRESHOLD.xxxx; + half4 diff_testB = diffB < _AM_DEPTH_THRESHOLD.xxxx; + half4 sample_testA = diff_testA - diff_testA * saturate( diffA * _AM_DEPTH_THRESHOLD.yyyy ); + half4 sample_testB = diff_testB - diff_testB * saturate( diffB * _AM_DEPTH_THRESHOLD.yyyy ); + + half4 sample_color0 = tex2D( _MainTex, i.uv.xy - dir_step * sample_testA.x ); + half4 sample_color1 = tex2D( _MainTex, i.uv.xy - dir_step1 * sample_testA.y ); + half4 sample_color2 = tex2D( _MainTex, i.uv.xy - dir_step2 * sample_testA.z ); + half4 sample_color3 = tex2D( _MainTex, i.uv.xy - dir_step3 * sample_testA.w ); + half4 sample_color4 = tex2D( _MainTex, i.uv.xy + dir_step3 * sample_testB.x ); + half4 sample_color5 = tex2D( _MainTex, i.uv.xy + dir_step2 * sample_testB.y ); + half4 sample_color6 = tex2D( _MainTex, i.uv.xy + dir_step1 * sample_testB.z ); + half4 sample_color7 = tex2D( _MainTex, i.uv.xy + dir_step * sample_testB.w ); + + half4 sample_idA = half4( sample_color0.a, sample_color1.a, sample_color2.a, sample_color3.a ); + half4 sample_idB = half4( sample_color4.a, sample_color5.a, sample_color6.a, sample_color7.a ); + + half4 obj_testA = ref_isobj.xxxx * ( sample_idA == ref_id.xxxx ); + half4 obj_testB = ref_isobj.xxxx * ( sample_idB == ref_id.xxxx ); + + sample_testA = saturate( sample_testA + obj_testA ); + sample_testB = saturate( sample_testB + obj_testB ); + + accum += sample_testA.x * half4( sample_color0.xyz, 1 ); + accum += sample_testA.y * half4( sample_color1.xyz, 1 ); + accum += sample_testA.z * half4( sample_color2.xyz, 1 ); + accum += sample_testA.w * half4( sample_color3.xyz, 1 ); + accum += sample_testB.x * half4( sample_color4.xyz, 1 ); + accum += sample_testB.y * half4( sample_color5.xyz, 1 ); + accum += sample_testB.z * half4( sample_color6.xyz, 1 ); + accum += sample_testB.w * half4( sample_color7.xyz, 1 ); + + return half4( accum.xyz / accum.w, ref_id ); +} + +half4 frag_soft_sm3( v2f i ) : SV_Target +{ + // 5-TAP + half3 motion = tex2D( _MotionTex, i.uv.zw ).xyz; + half4 color = tex2D( _MainTex, i.uv.xy ); + half4 accum = half4( color.xyz, 1 ); + + half ref_depth = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy ); + half ref_id = color.a; + + half id = floor( color.a * 255 + 0.5 ); + half ref_isobj = ( id > 1 ) * ( id < 254 ); + + half2 dir_step = _AM_BLUR_STEP.xy * ( motion.xy * 2.0 - 1.0 ) * motion.z; + half2 dir_step1 = dir_step * 0.5; + + half sample_depth0 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step ); + half sample_depth1 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy - dir_step1 ); + half sample_depth2 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step1 ); + half sample_depth3 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv.xy + dir_step ); + + half4 sample_color0 = tex2D( _MainTex, i.uv.xy - dir_step ); + half4 sample_color1 = tex2D( _MainTex, i.uv.xy - dir_step1 ); + half4 sample_color2 = tex2D( _MainTex, i.uv.xy + dir_step1 ); + half4 sample_color3 = tex2D( _MainTex, i.uv.xy + dir_step ); + + half sample_mag0 = tex2D( _MotionTex, i.uv.xy - dir_step ).z; + half sample_mag1 = tex2D( _MotionTex, i.uv.xy - dir_step1 ).z; + half sample_mag2 = tex2D( _MotionTex, i.uv.xy + dir_step1 ).z; + half sample_mag3 = tex2D( _MotionTex, i.uv.xy + dir_step ).z; + + half4 sample_depth = half4( sample_depth0, sample_depth1, sample_depth2, sample_depth3 ); + half4 sample_id = half4( sample_color0.a, sample_color1.a, sample_color2.a, sample_color3.a ); + half4 sample_mag = half4( sample_mag0, sample_mag1, sample_mag2, sample_mag3 ); + + half4 thres_mag = ( 0.5 ).xxxx; + + half4 depth_test = sample_depth > ( ref_depth.xxxx - _AM_DEPTH_THRESHOLD.xxxx ); + half4 obj_test = ref_isobj.xxxx * ( sample_id == ref_id.xxxx ); + half4 mag_test = sample_mag > thres_mag; + + half4 sample_test = saturate( depth_test + obj_test + mag_test ); + + accum += sample_test.x * half4( sample_color0.xyz, 1 ); + accum += sample_test.y * half4( sample_color1.xyz, 1 ); + accum += sample_test.z * half4( sample_color2.xyz, 1 ); + accum += sample_test.w * half4( sample_color3.xyz, 1 ); + + return half4( accum.xyz / accum.w, ref_id ); +} + +#endif diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc.meta b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc.meta new file mode 100644 index 0000000..a75cc0f --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/MotionBlurShared.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6df9775b9d7b1b14b818b28c92892dae +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader b/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader new file mode 100644 index 0000000..16e36f8 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader @@ -0,0 +1,73 @@ + +Shader "Hidden/Amplify Motion/ReprojectionVectors" { + Properties { + _MainTex ("-", 2D) = "" {} + } + SubShader { + Cull Off ZTest Always ZWrite Off Blend Off Fog { Mode Off } + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv_rt : TEXCOORD1; + }; + + sampler2D _CameraDepthTexture; + sampler2D _MainTex; + float4 _MainTex_TexelSize; + + float4x4 _AM_MATRIX_CURR_REPROJ; + float _AM_MOTION_SCALE; + float _AM_MIN_VELOCITY; + float _AM_MAX_VELOCITY; + float _AM_RCP_TOTAL_VELOCITY; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + o.uv = v.texcoord.xy; + o.uv_rt = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if ( _MainTex_TexelSize.y < 0 ) + o.uv_rt.y = 1 - o.uv_rt.y; + #endif + return o; + } + + half4 frag( v2f i ) : SV_Target + { + float d = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, i.uv_rt ); + #if defined( SHADER_API_OPENGL ) || defined( SHADER_API_GLES ) || defined( SHADER_API_GLES3 ) + float4 pos_curr = float4( float3( i.uv.xy, d ) * 2 - 1, 1 ); + #else + float4 pos_curr = float4( i.uv.xy * 2 - 1, d, 1 ); + #endif + + // 1) unproject to world; 2) reproject into previous ViewProj + float4 pos_prev = mul( _AM_MATRIX_CURR_REPROJ, pos_curr ); + + pos_prev = pos_prev / pos_prev.w; + pos_curr = pos_curr / pos_curr.w; + + half4 motion = ( pos_curr - pos_prev ) * _AM_MOTION_SCALE; + + motion.z = length( motion.xy ); + motion.xy = ( motion.xy / motion.z ) * 0.5f + 0.5f; + motion.z = ( motion.z < _AM_MIN_VELOCITY ) ? 0 : motion.z; + motion.z = max( min( motion.z, _AM_MAX_VELOCITY ) - _AM_MIN_VELOCITY, 0 ) * _AM_RCP_TOTAL_VELOCITY; + + return half4( motion.xyz, 0 ); + } + ENDCG + } + } + FallBack Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader.meta new file mode 100644 index 0000000..cd27c34 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/ReprojectionVectors.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d54d4ac3d05c2246aebc73a9b2dbf66 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc b/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc new file mode 100644 index 0000000..763db79 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc @@ -0,0 +1,59 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +#ifndef AMPLIFY_MOTION_SHARED_INCLUDED +#define AMPLIFY_MOTION_SHARED_INCLUDED + +#include "UnityCG.cginc" + +sampler2D _CameraDepthTexture; +float4x4 _AM_MATRIX_PREV_MVP; +float4 _AM_ZBUFFER_PARAMS; +float _AM_OBJECT_ID; +float _AM_MOTION_SCALE; +float _AM_MIN_VELOCITY; +float _AM_MAX_VELOCITY; +float _AM_RCP_TOTAL_VELOCITY; + +sampler2D _AM_PREV_VERTEX_TEX; +sampler2D _AM_CURR_VERTEX_TEX; + +float4 _AM_VERTEX_TEXEL_SIZE; +float4 _AM_VERTEX_TEXEL_HALFSIZE; + +inline bool DepthTest( float4 screen_pos ) +{ + const float epsilon = 0.001f; + float3 uv = screen_pos.xyz / screen_pos.w; + float behind = SAMPLE_DEPTH_TEXTURE_PROJ( _CameraDepthTexture, screen_pos ); +#if defined( SHADER_API_OPENGL ) || defined( SHADER_API_GLES ) || defined( SHADER_API_GLES3 ) + float front = uv.z * 0.5 + 0.5; +#else + float front = uv.z; +#endif + return ( behind >= front - epsilon ); +} + +inline half4 SolidMotionVector( half4 pos_prev, half4 pos_curr, half obj_id ) +{ + pos_prev = pos_prev / pos_prev.w; + pos_curr = pos_curr / pos_curr.w; + half4 motion = ( pos_curr - pos_prev ) * _AM_MOTION_SCALE; + + motion.z = length( motion.xy ); + motion.xy = ( motion.xy / motion.z ) * 0.5f + 0.5f; + motion.z = ( motion.z < _AM_MIN_VELOCITY ) ? 0 : motion.z; + motion.z = max( min( motion.z, _AM_MAX_VELOCITY ) - _AM_MIN_VELOCITY, 0 ) * _AM_RCP_TOTAL_VELOCITY; + return half4( motion.xyz, obj_id ); +} + +inline half4 DeformableMotionVector( half3 motion, half obj_id ) +{ + motion.z = length( motion.xy ); + motion.xy = ( motion.xy / motion.z ) * 0.5f + 0.5f; + motion.z = ( motion.z < _AM_MIN_VELOCITY ) ? 0 : motion.z; + motion.z = max( min( motion.z, _AM_MAX_VELOCITY ) - _AM_MIN_VELOCITY, 0 ) * _AM_RCP_TOTAL_VELOCITY; + return half4( motion.xyz, obj_id ); +} + +#endif diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc.meta b/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc.meta new file mode 100644 index 0000000..71cac07 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/Shared.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f73e8f36393c28544851bd0262522296 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader b/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader new file mode 100644 index 0000000..aee4a7a --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader @@ -0,0 +1,189 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/SkinnedVectors" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Cutoff ("Alpha cutoff", Range(0,1)) = 0.25 + } + CGINCLUDE + #include "Shared.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float3 prev_vertex : NORMAL; + float2 texcoord : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct v2f + { + float4 pos : SV_POSITION; + float4 motion : TEXCOORD0; + float4 screen_pos : TEXCOORD1; + float2 uv : TEXCOORD2; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + float _Cutoff; + + inline v2f vert_base( appdata_t v, const bool mobile, const bool gpu ) + { + v2f o; + UNITY_INITIALIZE_OUTPUT( v2f, o ); + + float4 prev_vertex = float4( v.prev_vertex.xyz, 1 ); + float4 curr_vertex = float4( v.vertex.xyz, 1 ); + + #if UNITY_VERSION >= 500 + if ( gpu ) + { + prev_vertex = 0; + curr_vertex *= 0.00000001; // trick compiler into behaving + + float2 indexCoords = v.texcoord1; + prev_vertex += tex2Dlod( _AM_PREV_VERTEX_TEX, float4( indexCoords, 0, 0 ) ); + curr_vertex += tex2Dlod( _AM_CURR_VERTEX_TEX, float4( indexCoords, 0, 0 ) ); + } + #endif + + float4 pos = o.pos = mul( UNITY_MATRIX_MVP, curr_vertex ); + float4 pos_prev = mul( _AM_MATRIX_PREV_MVP, prev_vertex ); + float4 pos_curr = o.pos; + + #if UNITY_UV_STARTS_AT_TOP + pos_curr.y = -pos_curr.y; + pos_prev.y = -pos_prev.y; + if ( _ProjectionParams.x > 0 ) + pos.y = -pos.y; + #endif + + pos_prev = pos_prev / pos_prev.w; + pos_curr = pos_curr / pos_curr.w; + + if ( mobile ) + o.motion = DeformableMotionVector( ( pos_curr.xyz - pos_prev.xyz ) * _AM_MOTION_SCALE, _AM_OBJECT_ID ); + else + o.motion.xyz = ( pos_curr - pos_prev ) * _AM_MOTION_SCALE; + + o.screen_pos = ComputeScreenPos( pos ); + o.uv = TRANSFORM_TEX( v.texcoord, _MainTex ); + return o; + } + + inline half4 frag_opaque( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) ) + discard; + + if ( mobile ) + return i.motion; + else + return DeformableMotionVector( i.motion, _AM_OBJECT_ID ); + } + + inline half4 frag_cutout( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) || tex2D( _MainTex, i.uv ).a < _Cutoff ) + discard; + + if ( mobile ) + return i.motion; + else + return DeformableMotionVector( i.motion, _AM_OBJECT_ID ); + } + ENDCG + SubShader { + Tags { "RenderType"="Opaque" } + Blend Off Cull Off Fog { Mode off } + ZTest LEqual ZWrite On + Offset -1, -1 + + // CPU path + Pass { + Name "MOB_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + v2f vert( appdata_t v ) { return vert_base( v, true, false ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, true ); } + ENDCG + } + Pass { + Name "MOB_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + v2f vert( appdata_t v ) { return vert_base( v, true, false ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, true ); } + ENDCG + } + Pass { + Name "STD_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + v2f vert( appdata_t v ) { return vert_base( v, false, false ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, false ); } + ENDCG + } + Pass { + Name "STD_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + v2f vert( appdata_t v ) { return vert_base( v, false, false ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, false ); } + ENDCG + } + + // GPU path + Pass { + Name "MOB_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + v2f vert( appdata_t v ) { return vert_base( v, true, true ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, true ); } + ENDCG + } + Pass { + Name "MOB_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + v2f vert( appdata_t v ) { return vert_base( v, true, true ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, true ); } + ENDCG + } + Pass { + Name "STD_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + v2f vert( appdata_t v ) { return vert_base( v, false, true ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, false ); } + ENDCG + } + Pass { + Name "STD_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + v2f vert( appdata_t v ) { return vert_base( v, false, true ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, false ); } + ENDCG + } + } + FallBack Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader.meta new file mode 100644 index 0000000..e786a23 --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/SkinnedVectors.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed3e87d88a83040418d4b34782b7b422 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader b/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader new file mode 100644 index 0000000..3c3177d --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader @@ -0,0 +1,127 @@ +// Amplify Motion - Full-scene Motion Blur for Unity Pro +// Copyright (c) Amplify Creations, Lda + +Shader "Hidden/Amplify Motion/SolidVectors" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Cutoff ("Alpha cutoff", Range(0,1)) = 0.25 + } + CGINCLUDE + #pragma fragmentoption ARB_precision_hint_fastest + #include "Shared.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 pos : SV_POSITION; + float4 pos_prev : TEXCOORD0; + float4 pos_curr : TEXCOORD1; + float4 motion : TEXCOORD2; + float4 screen_pos : TEXCOORD3; + float2 uv : TEXCOORD4; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + float _Cutoff; + + v2f vert_base( appdata_t v, bool mobile ) + { + v2f o; + UNITY_INITIALIZE_OUTPUT( v2f, o ); + + float4 pos = o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); + float4 pos_prev = mul( _AM_MATRIX_PREV_MVP, v.vertex ); + float4 pos_curr = o.pos; + + #if UNITY_UV_STARTS_AT_TOP + pos_curr.y = -pos_curr.y; + pos_prev.y = -pos_prev.y; + if ( _ProjectionParams.x > 0 ) + pos.y = -pos.y; + #endif + + if ( mobile ) + o.motion = SolidMotionVector( pos_prev, pos_curr, _AM_OBJECT_ID ); + else + { + o.pos_prev = pos_prev; + o.pos_curr = pos_curr; + } + + o.screen_pos = ComputeScreenPos( pos ); + o.uv = TRANSFORM_TEX( v.texcoord, _MainTex ); + return o; + } + + inline half4 frag_opaque( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) ) + discard; + + if ( mobile ) + return i.motion; + else + return SolidMotionVector( i.pos_prev, i.pos_curr, _AM_OBJECT_ID ); + } + + inline half4 frag_cutout( v2f i, const bool mobile ) + { + if ( !DepthTest( i.screen_pos ) || tex2D( _MainTex, i.uv ).a < _Cutoff ) + discard; + + if ( mobile ) + return i.motion; + else + return SolidMotionVector( i.pos_prev, i.pos_curr, _AM_OBJECT_ID ); + } + ENDCG + SubShader { + Tags { "RenderType"="Opaque" } + Blend Off Cull Off Fog { Mode off } + ZTest LEqual ZWrite On + Pass { + Name "MOB_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, true ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, true ); } + ENDCG + } + Pass { + Name "MOB_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, true ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, true ); } + ENDCG + } + Pass { + Name "STD_OPAQUE" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, false ); } + half4 frag( v2f v ) : SV_Target { return frag_opaque( v, false ); } + ENDCG + } + Pass { + Name "STD_CUTOUT" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + v2f vert( appdata_t v ) { return vert_base( v, false ); } + half4 frag( v2f v ) : SV_Target { return frag_cutout( v, false ); } + ENDCG + } + } + + FallBack Off +} diff --git a/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader.meta b/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader.meta new file mode 100644 index 0000000..63712bf --- /dev/null +++ b/Assets/Cinematic Effects/MotionBlur/Resources/SolidVectors.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a9c02c5d9708d884c87086d5f4f8765a +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection.meta b/Assets/Cinematic Effects/ScreenSpaceReflection.meta new file mode 100644 index 0000000..914d7cb --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0190f05cacbdca84c932a2f2e0035c51 +folderAsset: yes +timeCreated: 1448358989 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Editor.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor.meta new file mode 100644 index 0000000..6368712 --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4834a3e1213004b48b14703e6723c17c +folderAsset: yes +timeCreated: 1448359076 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs new file mode 100644 index 0000000..ccab011 --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + [CustomPropertyDrawer(typeof(ScreenSpaceReflection.SSRSettings.LayoutAttribute))] + public class LayoutDrawer : PropertyDrawer + { + private const float kHeadingSpace = 22.0f; + + static Styles m_Styles; + + private class Styles + { + public readonly GUIStyle header = "ShurikenModuleTitle"; + + internal Styles() + { + header.font = (new GUIStyle("Label")).font; + header.border = new RectOffset(15, 7, 4, 4); + header.fixedHeight = kHeadingSpace; + header.contentOffset = new Vector2(20f, -2f); + } + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + if (!property.isExpanded) + return kHeadingSpace; + + var count = property.CountInProperty(); + return EditorGUIUtility.singleLineHeight * count + 15; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + if (m_Styles == null) + m_Styles = new Styles(); + + position.height = EditorGUIUtility.singleLineHeight; + property.isExpanded = Header(position, property.displayName, property.isExpanded); + position.y += kHeadingSpace; + + if (!property.isExpanded) + return; + + foreach (SerializedProperty child in property) + { + EditorGUI.PropertyField(position, child); + position.y += EditorGUIUtility.singleLineHeight; + } + } + + private bool Header(Rect position, String title, bool display) + { + Rect rect = position; + position.height = EditorGUIUtility.singleLineHeight; + GUI.Box(rect, title, m_Styles.header); + + Rect toggleRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f); + if (Event.current.type == EventType.Repaint) + EditorStyles.foldout.Draw(toggleRect, false, false, display, false); + + Event e = Event.current; + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) + { + display = !display; + e.Use(); + } + return display; + } + } + + [CustomEditor(typeof(ScreenSpaceReflection))] + internal class ScreenSpaceReflectionEditor : Editor + { + private enum SettingsMode + { + HighQuality, + Default, + Performance, + Custom, + } + + [NonSerialized] + private List m_Properties = new List(); + + void OnEnable() + { + var settings = FieldFinder.GetField(x => x.settings); + foreach (var setting in settings.FieldType.GetFields()) + { + var prop = settings.Name + "." + setting.Name; + m_Properties.Add(serializedObject.FindProperty(prop)); + } + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.Space(); + + var currentState = ((ScreenSpaceReflection)target).settings; + + var settingsMode = SettingsMode.Custom; + if (currentState.Equals(ScreenSpaceReflection.SSRSettings.performanceSettings)) + settingsMode = SettingsMode.Performance; + else if (currentState.Equals(ScreenSpaceReflection.SSRSettings.defaultSettings)) + settingsMode = SettingsMode.Default; + else if (currentState.Equals(ScreenSpaceReflection.SSRSettings.highQualitySettings)) + settingsMode = SettingsMode.HighQuality; + + EditorGUI.BeginChangeCheck(); + settingsMode = (SettingsMode)EditorGUILayout.EnumPopup("Preset", settingsMode); + if (EditorGUI.EndChangeCheck()) + Apply(settingsMode); + + // move into the m_Settings fields... + foreach (var property in m_Properties) + EditorGUILayout.PropertyField(property); + + serializedObject.ApplyModifiedProperties(); + } + + private void Apply(SettingsMode settingsMode) + { + switch (settingsMode) + { + case SettingsMode.Default: + Apply(ScreenSpaceReflection.SSRSettings.defaultSettings); + break; + case SettingsMode.HighQuality: + Apply(ScreenSpaceReflection.SSRSettings.highQualitySettings); + break; + case SettingsMode.Performance: + Apply(ScreenSpaceReflection.SSRSettings.performanceSettings); + break; + } + } + + private void Apply(ScreenSpaceReflection.SSRSettings settings) + { + var validTargets = targets.Where(x => x is ScreenSpaceReflection).Cast().ToArray(); + + Undo.RecordObjects(validTargets, "Apply SSR Settings"); + foreach (var validTarget in validTargets) + validTarget.settings = settings; + } + } +} diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs.meta new file mode 100644 index 0000000..50e7bbc --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Editor/ScreenSpaceReflectionEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb0236f80884a1f4793c96b4d2da5c68 +timeCreated: 1446039760 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Resources.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources.meta new file mode 100644 index 0000000..c1d5872 --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a19e50b158b32e6458d43c13406863ff +folderAsset: yes +timeCreated: 1453972687 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc new file mode 100644 index 0000000..34b34ce --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc @@ -0,0 +1,265 @@ +/** +\author Michael Mara and Morgan McGuire, Casual Effects. 2015. +*/ + +#ifndef SCREEN_SPACE_RAYTRACE_INCLUDED +#define SCREEN_SPACE_RAYTRACE_INCLUDED + + +sampler2D_float _CameraDepthTexture; + + +float distanceSquared(float2 A, float2 B) { + A -= B; + return dot(A, A); +} + +float distanceSquared(float3 A, float3 B) { + A -= B; + return dot(A, A); +} + +void swap(inout float v0, inout float v1) { + float temp = v0; + v0 = v1; + v1 = temp; +} + + +bool isIntersecting(float rayZMin, float rayZMax, float sceneZ, float layerThickness) { + return (rayZMax >= sceneZ - layerThickness) && (rayZMin <= sceneZ); +} + +void rayIterations(in bool traceBehindObjects, inout float2 P, inout float stepDirection, inout float end, inout int stepCount, inout int maxSteps, inout bool intersecting, + inout float sceneZ, inout float2 dP, inout float3 Q, inout float3 dQ, inout float k, inout float dk, + inout float rayZMin, inout float rayZMax, inout float prevZMaxEstimate, inout bool permute, inout float2 hitPixel, + inout float2 invSize, inout float layerThickness) { + + bool stop = intersecting; + UNITY_LOOP + for (; + ( (P.x * stepDirection) <= end) && + (stepCount < maxSteps) && + (!stop); + P += dP, Q.z += dQ.z, k += dk, stepCount += 1) { + + // The depth range that the ray covers within this loop iteration. + // Assume that the ray is moving in increasing z and swap if backwards. + rayZMin = prevZMaxEstimate; + //rayZMin = (dQ.z * -0.5 + Q.z) / (dk * -0.5 + k); + // Compute the value at 1/2 pixel into the future + rayZMax = (dQ.z * 0.5 + Q.z) / (dk * 0.5 + k); + prevZMaxEstimate = rayZMax; + if (rayZMin > rayZMax) { swap(rayZMin, rayZMax); } + + // Undo the homogeneous operation to obtain the camera-space + // Q at each point + hitPixel = permute ? P.yx : P; + + sceneZ = tex2Dlod(_CameraDepthTexture, float4(hitPixel * invSize,0,0)).r; + sceneZ = -LinearEyeDepth(sceneZ); + + bool isBehind = (rayZMin <= sceneZ); + intersecting = isBehind && (rayZMax >= sceneZ - layerThickness); + stop = traceBehindObjects ? intersecting : isBehind; + + } // pixel on ray + P -= dP, Q.z -= dQ.z, k -= dk; +} + +/** + \param csOrigin must have z < -0.01, and project within the valid screen rectangle + \param stepRate Set to 1.0 by default, higher to step faster + */ +bool castDenseScreenSpaceRay + (float3 csOrigin, + float3 csDirection, + float4x4 projectToPixelMatrix, + float2 csZBufferSize, + float3 clipInfo, + float jitterFraction, + int maxSteps, + float layerThickness, + float maxRayTraceDistance, + out float2 hitPixel, + int stepRate, + bool refine, + bool traceBehindObjects, + out float3 csHitPoint, + out float stepCount) { + + float2 invSize = float2(1.0 / csZBufferSize.x, 1.0 / csZBufferSize.y); + + // Initialize to off screen + hitPixel = float2(-1, -1); + + float nearPlaneZ = -0.01; + // Clip ray to a near plane in 3D (doesn't have to be *the* near plane, although that would be a good idea) + float rayLength = ((csOrigin.z + csDirection.z * maxRayTraceDistance) > nearPlaneZ) ? + ((nearPlaneZ - csOrigin.z) / csDirection.z) : + maxRayTraceDistance; + + float3 csEndPoint = csDirection * rayLength + csOrigin; + + // Project into screen space + // This matrix has a lot of zeroes in it. We could expand + // out these multiplies to avoid multiplying by zero + // ...but 16 MADDs are not a big deal compared to what's ahead + float4 H0 = mul(projectToPixelMatrix, float4(csOrigin, 1.0)); + float4 H1 = mul(projectToPixelMatrix, float4(csEndPoint, 1.0)); + + // There are a lot of divisions by w that can be turned into multiplications + // at some minor precision loss...and we need to interpolate these 1/w values + // anyway. + // + // Because the caller was required to clip to the near plane, + // this homogeneous division (projecting from 4D to 2D) is guaranteed + // to succeed. + float k0 = 1.0 / H0.w; + float k1 = 1.0 / H1.w; + + // Screen-space endpoints + float2 P0 = H0.xy * k0; + float2 P1 = H1.xy * k1; + + // Switch the original points to values that interpolate linearly in 2D: + float3 Q0 = csOrigin * k0; + float3 Q1 = csEndPoint * k1; + +#if 1 // Clipping to the screen coordinates. We could simply modify maxSteps instead + float yMax = csZBufferSize.y - 0.5; + float yMin = 0.5; + float xMax = csZBufferSize.x - 0.5; + float xMin = 0.5; + + // 2D interpolation parameter + float alpha = 0.0; + // P0 must be in bounds + if (P1.y > yMax || P1.y < yMin) { + float yClip = (P1.y > yMax) ? yMax : yMin; + float yAlpha = (P1.y - yClip) / (P1.y - P0.y); // Denominator is not zero, since P0 != P1 (or P0 would have been clipped!) + alpha = yAlpha; + } + + // P0 must be in bounds + if (P1.x > xMax || P1.x < xMin) { + float xClip = (P1.x > xMax) ? xMax : xMin; + float xAlpha = (P1.x - xClip) / (P1.x - P0.x); // Denominator is not zero, since P0 != P1 (or P0 would have been clipped!) + alpha = max(alpha, xAlpha); + } + + // These are all in homogeneous space, so they interpolate linearly + P1 = lerp(P1, P0, alpha); + k1 = lerp(k1, k0, alpha); + Q1 = lerp(Q1, Q0, alpha); +#endif + + // We're doing this to avoid divide by zero (rays exactly parallel to an eye ray) + P1 = (distanceSquared(P0, P1) < 0.0001) ? P0 + float2(0.01, 0.01) : P1; + + float2 delta = P1 - P0; + + // Assume horizontal + bool permute = false; + if (abs(delta.x) < abs(delta.y)) { + // More-vertical line. Create a permutation that swaps x and y in the output + permute = true; + + // Directly swizzle the inputs + delta = delta.yx; + P1 = P1.yx; + P0 = P0.yx; + } + + // From now on, "x" is the primary iteration direction and "y" is the secondary one + + float stepDirection = sign(delta.x); + float invdx = stepDirection / delta.x; + float2 dP = float2(stepDirection, invdx * delta.y); + + // Track the derivatives of Q and k + float3 dQ = (Q1 - Q0) * invdx; + float dk = (k1 - k0) * invdx; + + dP *= stepRate; + dQ *= stepRate; + dk *= stepRate; + + P0 += dP * jitterFraction; + Q0 += dQ * jitterFraction; + k0 += dk * jitterFraction; + + // Slide P from P0 to P1, (now-homogeneous) Q from Q0 to Q1, and k from k0 to k1 + float3 Q = Q0; + float k = k0; + + // We track the ray depth at +/- 1/2 pixel to treat pixels as clip-space solid + // voxels. Because the depth at -1/2 for a given pixel will be the same as at + // +1/2 for the previous iteration, we actually only have to compute one value + // per iteration. + float prevZMaxEstimate = csOrigin.z; + stepCount = 0.0; + float rayZMax = prevZMaxEstimate, rayZMin = prevZMaxEstimate; + float sceneZ = 100000; + + // P1.x is never modified after this point, so pre-scale it by + // the step direction for a signed comparison + float end = P1.x * stepDirection; + + bool intersecting = isIntersecting(rayZMin, rayZMax, sceneZ, layerThickness); + // We only advance the z field of Q in the inner loop, since + // Q.xy is never used until after the loop terminates + + //int rayIterations = min(maxSteps, stepsToGetOffscreen); + + + float2 P = P0; + + int originalStepCount = 0; + rayIterations(traceBehindObjects, P, stepDirection, end, originalStepCount, maxSteps, intersecting, + sceneZ, dP, Q, dQ, k, dk, + rayZMin, rayZMax, prevZMaxEstimate, permute, hitPixel, + invSize, layerThickness); + + + stepCount = originalStepCount; + if (refine && intersecting && stepRate > 1) { + + + // We're going back a step. + P -= dP, Q.z -= dQ.z, k -= dk; + prevZMaxEstimate = Q.z / k; + rayZMin = prevZMaxEstimate; + rayZMax = prevZMaxEstimate; + + intersecting = false; + int refinementStepCount = 0; + int refinementMaxSteps = stepRate; + + float refinementConstant = 1.0 / stepRate; + dQ.z *= refinementConstant; + dP *= refinementConstant; + dk *= refinementConstant; + + // Refinement + rayIterations(traceBehindObjects, P, stepDirection, end, refinementStepCount, refinementMaxSteps, intersecting, + sceneZ, dP, Q, dQ, k, dk, + rayZMin, rayZMax, prevZMaxEstimate, permute, hitPixel, + invSize, layerThickness); + stepCount += refinementStepCount * refinementConstant - 1.0; + //stepCount = refinementStepCount; + intersecting = true; + } + + + // Loop only advanced the Z component. Now that we know where we are going + // update xy + Q.xy += dQ.xy * stepCount; + // Q is a vector, so we are trying to get by with 1 division instead of 3. + csHitPoint = Q * (1.0 / k); + + return intersecting; +} + + +#endif // SCREEN_SPACE_RAYTRACE_INCLUDED diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc.meta new file mode 100644 index 0000000..9b2d477 --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceRaytrace.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6f70a4658ebf5f947abc302c6b49a6ba +timeCreated: 1449750676 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader new file mode 100644 index 0000000..7cbe318 --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader @@ -0,0 +1,1161 @@ +/** +\author Michael Mara and Morgan McGuire, Casual Effects. 2015. +*/ +Shader "Hidden/ScreenSpaceReflection" +{ + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + + CGINCLUDE + + #include "UnityCG.cginc" + #include "UnityPBSLighting.cginc" + #include "UnityStandardBRDF.cginc" + #include "UnityStandardUtils.cginc" + #include "ScreenSpaceRaytrace.cginc" + + float4 _ProjInfo; + float4x4 _WorldToCameraMatrix; + float4x4 _CameraToWorldMatrix; + float4x4 _ProjectToPixelMatrix; + float2 _ScreenSize; + float2 _ReflectionBufferSize; + float2 _InvScreenSize; + float3 _CameraClipInfo; + + sampler2D _CameraGBufferTexture0; + sampler2D _CameraGBufferTexture1; + sampler2D _CameraGBufferTexture2; + sampler2D _CameraGBufferTexture3; + sampler2D _CameraReflectionsTexture; + + float _CurrentMipLevel; + float _RayStepSize; + float _MaxRayTraceDistance; + float _LayerThickness; + float _FresnelFade; + float _FresnelFadePower; + + + sampler2D _MainTex; + + int _VisualizeWhereBilateral; + int _EnableSSR; + int _DebugMode; + int _HalfResolution; + int _TreatBackfaceHitAsMiss; + int _AllowBackwardsRays; + int _TraceEverywhere; + + + // RG: SS Hitpoint of ray + // B: distance ray travelled, used for mip-selection in the final resolve + // A: confidence value + sampler2D _HitPointTexture; + sampler2D _FinalReflectionTexture; + + // RGB: camera-space normal (encoded in [0-1]) + // A: Roughness + sampler2D _NormalAndRoughnessTexture; + + float4 _MainTex_TexelSize; + float4 _SourceToTempUV; + + int _EnableRefine; + int _AdditiveReflection; + int _ImproveCorners; + + float _ScreenEdgeFading; + + float _MipBias; + + int _UseOcclusion; + + int _MaxSteps; + + int _FullResolutionFiltering; + + int _BilateralUpsampling; + + float _MaxRoughness; + float _RoughnessFalloffRange; + float _SSRMultiplier; + + float _FadeDistance; + + float _DistanceBlur; + + int _TraceBehindObjects; + int _FallbackToSky; + int _UseEdgeDetector; + int _HighlightSuppression; + + /** The height in pixels of a 1m object if viewed from 1m away. */ + float _PixelsPerMeterAtOneMeter; + + int _UseAverageRayDistance; + sampler2D _AverageRayDistanceBuffer; + + // For temporal filtering: + float4x4 _CurrentCameraToPreviousCamera; + sampler2D _PreviousReflectionTexture; + sampler2D _PreviousCSZBuffer; + float _TemporalAlpha; + int _UseTemporalConfidence; + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv2 : TEXCOORD1; + }; + + v2f vert( appdata_img v ) + { + v2f o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord.xy; + o.uv2 = v.texcoord.xy; + #if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0) + o.uv2.y = 1-o.uv2.y; + #endif + return o; + } + + float2 mipToSize(int mip) { + return floor(_ReflectionBufferSize * exp2(-mip)); + } + + float3 ReconstructCSPosition(float2 S, float z) + { + float linEyeZ = -LinearEyeDepth(z); + return float3(( (( S.xy * _MainTex_TexelSize.zw) ) * _ProjInfo.xy + _ProjInfo.zw) * linEyeZ, linEyeZ); + } + + /** Read the camera-space position of the point at screen-space pixel ssP */ + float3 GetPosition(float2 ssP) { + float3 P; + + P.z = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, ssP.xy); + + // Offset to pixel center + P = ReconstructCSPosition(float2(ssP) /*+ float2(0.5, 0.5)*/, P.z); + return P; + } + + float square(float x) + { + return x*x; + } + + float applyEdgeFade(float2 tsP, float fadeStrength) { + float maxFade = 0.1; + + float2 itsP = float2(1.0, 1.0) - tsP; + float dist = min(min(itsP.x, itsP.y), min(tsP.x, tsP.x)); + float fade = dist / (maxFade*fadeStrength + 0.001); + fade = max(min(fade, 1.0), 0.0); + fade = pow(fade, 0.2); + return fade; + } + + float3 csMirrorVector(float3 csPosition, float3 csN) { + float3 csE = -normalize(csPosition.xyz); + float cos_o = dot(csN, csE); + float3 c_mi = normalize((csN * (2.0 * cos_o)) - csE); + return c_mi; + } + + + float4 fragRaytrace(v2f i, int stepRate) + { + float2 ssP = i.uv2.xy * _SourceToTempUV.zw; + float3 csPosition = GetPosition(ssP); + float smoothness = tex2D(_CameraGBufferTexture1, ssP).a; + if (csPosition.z < -100.0 || smoothness == 0.0) { + return float4(0.0,0.0,0.0,0.0); + } + + if ((!_TraceEverywhere) && (smoothness < (1.0 - _MaxRoughness)) ) { + return float4(0.0, 0.0, 0.0, 0.0); + } + + float3 wsNormal = tex2D(_CameraGBufferTexture2, ssP).rgb * 2.0 - 1.0; + + int2 ssC = int2(ssP * _ScreenSize); + + float3 csN = mul((float3x3)(_WorldToCameraMatrix), wsNormal); + float3 csRayDirection = csMirrorVector(csPosition, csN); + + if (_AllowBackwardsRays == 0 && csRayDirection.z > 0.0) { + return float4(0.0, 0.0, 0.0, 0.0); + } + + float maxRayTraceDistance = _MaxRayTraceDistance; + float jitterFraction = 0.0f; + float layerThickness = _LayerThickness; + + int maxSteps = _MaxSteps; + // Bump the ray more in world space as it gets farther away (and so each pixel covers more WS distance) + float rayBump = max(-0.01*csPosition.z, 0.001); + float2 hitPixel; + float3 csHitPoint; + float stepCount; + + bool wasHit = castDenseScreenSpaceRay + (csPosition + (csN) * rayBump, + csRayDirection, + _ProjectToPixelMatrix, + _ScreenSize, + _CameraClipInfo, + jitterFraction, + maxSteps, + layerThickness, + maxRayTraceDistance, + hitPixel, + stepRate, + _EnableRefine == 1, + _TraceBehindObjects == 1, + csHitPoint, + stepCount); + + float2 tsPResult = hitPixel / _ScreenSize; + float rayDist = dot(csHitPoint - csPosition, csRayDirection); + float confidence = 0.0; + if (wasHit) { + confidence = square(1.0 - max(2.0*float(stepCount) / float(maxSteps) - 1.0, 0.0)); + confidence *= clamp(((_MaxRayTraceDistance - rayDist) / _FadeDistance), 0.0, 1.0); + // Fake fresnel fade + float3 csE = -normalize(csPosition.xyz); + confidence *= max(0.0, lerp(pow(abs(dot(csRayDirection, -csE)), _FresnelFadePower), 1, 1.0 - _FresnelFade)); + if (_TreatBackfaceHitAsMiss > 0) { + float3 wsHitNormal = tex2Dlod(_CameraGBufferTexture2, float4(tsPResult, 0, 0)).rgb * 2.0 - 1.0; + float3 wsRayDirection = mul(_CameraToWorldMatrix, float4(csRayDirection, 0)).xyz; + if (dot(wsHitNormal, wsRayDirection) > 0) { + confidence = 0.0; + } + } + } else if (_FallbackToSky > 0) { + float sceneZ = tex2Dlod(_CameraDepthTexture, float4(tsPResult, 0, 0)).r; + sceneZ = -LinearEyeDepth(sceneZ); + if (sceneZ < -1000) { // 1km ~= infinity + confidence = 1.0; + } + } + + // Fade out reflections that hit near edge of screen, to prevent abrupt appearance/disappearance when object go off screen + // Fade out reflections that hit near edge of screen, + // to prevent abrupt appearance/disappearance when object go off screen + float vignette = applyEdgeFade(tsPResult, _ScreenEdgeFading); + confidence *= vignette; + confidence *= vignette; + + + return float4(tsPResult, rayDist, confidence); + } + + float4 fragComposite(v2f i) : SV_Target + { + // Pixel being shaded + float2 tsP = i.uv2.xy; + + // View space point being shaded + float3 C = GetPosition(tsP); + + // Final image before this pass + float4 gbuffer3 = tex2D(_MainTex, i.uv); + + float4 specEmission = float4(0.0,0.0,0.0,0.0); + float3 specColor = tex2D(_CameraGBufferTexture1, tsP).rgb; + + float roughness = 1.0-tex2D(_CameraGBufferTexture1, tsP).a; + + float4 reflectionTexel = tex2D(_FinalReflectionTexture, tsP * _SourceToTempUV.xy); + + float4 gbuffer0 = tex2D(_CameraGBufferTexture0, tsP); + // Let core Unity functions do the dirty work of applying the BRDF + float3 baseColor = gbuffer0.rgb; + float occlusion = gbuffer0.a; + float oneMinusReflectivity; + baseColor = EnergyConservationBetweenDiffuseAndSpecular(baseColor, specColor, oneMinusReflectivity); + + float3 wsNormal = tex2D(_CameraGBufferTexture2, tsP).rgb * 2.0 - 1.0; + + float3 csEyeVec = normalize(C); + float3 eyeVec = mul(_CameraToWorldMatrix, float4(csEyeVec, 0)).xyz; + + float3 worldPos = mul(_CameraToWorldMatrix, float4(C, 1)).xyz; + + float cos_o = dot(wsNormal, eyeVec); + float3 w_mi = -normalize((wsNormal * (2.0 * cos_o)) - eyeVec); + + + float3 incomingRadiance = reflectionTexel.rgb; + + UnityLight light; + light.color = 0; + light.dir = 0; + light.ndotl = 0; + + UnityIndirect ind; + ind.diffuse = 0; + ind.specular = incomingRadiance; + + float3 ssrResult = UNITY_BRDF_PBS (0, specColor, oneMinusReflectivity, 1-roughness, wsNormal, -eyeVec, light, ind).rgb * _SSRMultiplier; + float confidence = reflectionTexel.a; + + if(_EnableSSR == 0) { + confidence = 0.0; + } + + specEmission.rgb = tex2D(_CameraReflectionsTexture, tsP).rgb; + float3 finalGlossyTerm; + // Subtract out Unity's glossy result: (we're just applying the delta) + if (_AdditiveReflection == 0) { + gbuffer3 -= specEmission; + // We may have blown out our dynamic range by adding then subtracting the reflection probes. + // As a half-measure to fix this, simply clamp to zero + gbuffer3 = max(gbuffer3, 0); + finalGlossyTerm = lerp(specEmission.rgb, ssrResult, saturate(confidence)); + } else { + finalGlossyTerm = ssrResult*saturate(confidence); + } + if (_UseOcclusion) { + finalGlossyTerm *= occlusion; + } + + if (_DebugMode == 1) + return float4(incomingRadiance,0); + if (_DebugMode == 2) + return float4(ssrResult,0); + if (_DebugMode == 3) + return float4(finalGlossyTerm,0); + if (_DebugMode == 4) + return confidence; + if (_DebugMode == 5) + return roughness; + if (_DebugMode == 6) + return float4(baseColor,0); + if (_DebugMode == 7) + return float4(specColor,0); + if (_DebugMode == 8) + return 1.0-oneMinusReflectivity; + if (_DebugMode == 9) + return float4(specEmission.rgb,0); + if (_DebugMode == 10) + return float4(specEmission.rgb-ssrResult,0); + if (_DebugMode == 11) + return float4(ssrResult-specEmission.rgb,0); + if (_DebugMode == 12) + return gbuffer3; + if (_DebugMode == 13) + return -float4(gbuffer3.rgb, 0.0); + if (_DebugMode == 14) // Mip level, stored directly in ssrResult + return float4(incomingRadiance, 0); + + // Additively blend the glossy GI result with the output buffer + return gbuffer3 + float4(finalGlossyTerm, 0); + } + + float roughnessWeight(float midpointRoughness, float tapRoughness) { + return (1.0 - sqrt(sqrt(abs(midpointRoughness-tapRoughness)))); + } + + float normalWeight(float3 midpointNormal, float3 tapNormal) { + return clamp(dot(midpointNormal, tapNormal), 0, 1); + } + + float highlightDecompression(float x) { + return x / (1.0 - x); + } + + float3 highlightDecompression(float3 x) { + return float3( + highlightDecompression(x.x), + highlightDecompression(x.y), + highlightDecompression(x.z)); + } + + float highlightCompression(float x) { + return x / (1.0 + x); + } + + float3 highlightCompression(float3 x) { + return float3( + highlightCompression(x.x), + highlightCompression(x.y), + highlightCompression(x.z)); + } + + float4 _Axis; + float4 fragGBlur(v2f i) : SV_Target + { + int radius = 4; + // Pixel being shaded + float2 tsP = i.uv2.xy; + float weightSum = 0.0; + float gaussWeights[5] = {0.225, 0.150, 0.110, 0.075, 0.0525};//{0.225, 0.150, 0.110, 0.075, 0.0525}; + float4 resultSum = float4(0.0, 0.0, 0.0, 0.0); + float4 unweightedResultSum = float4(0.0, 0.0, 0.0, 0.0); + float4 nAndRough = tex2D(_NormalAndRoughnessTexture, tsP); + float midpointRoughness = nAndRough.a; + float3 midpointNormal = nAndRough.rgb * 2 - 1; + if (_FullResolutionFiltering) { + for (int i = -2*radius; i <= 2*radius; ++i) { + float4 temp; + float tapRoughness = midpointRoughness; + float3 tapNormal = midpointNormal; + float2 tsTap = tsP + (_Axis.xy * _MainTex_TexelSize.xy * float2(i,i)); + + temp = tex2D(_MainTex, tsTap); + + int gaussWeightIndex; + #if defined(UNITY_COMPILER_HLSL) && !defined(SHADER_API_D3D9) + gaussWeightIndex = abs(i) >> 1; // We purposefully do integer division, but that does not compile on hlsl2glsl + #else + gaussWeightIndex = frac(abs(i) / 2); + #endif + + float weight = temp.a * gaussWeights[gaussWeightIndex]*0.5; + // Bilateral filtering + if (_ImproveCorners) { + nAndRough = tex2D(_NormalAndRoughnessTexture, tsTap); + tapRoughness = nAndRough.a; + tapNormal = nAndRough.rgb * 2 - 1; + weight *= normalWeight(midpointNormal, tapNormal); + } + weightSum += weight; + resultSum += temp*weight; + unweightedResultSum += temp; + } + } else { + for (int i = -radius; i <= radius; ++i) { + float4 temp; + float tapRoughness; + float3 tapNormal; + float2 tsTap = tsP + (_Axis.xy * _MainTex_TexelSize.xy * float2(i,i)*2.0); + + temp = tex2D(_MainTex, tsTap); + + float weight = temp.a * gaussWeights[abs(i)]; + // Bilateral filtering + if (_ImproveCorners) { + nAndRough = tex2D(_NormalAndRoughnessTexture, tsTap); + tapRoughness = nAndRough.a; + tapNormal = nAndRough.rgb * 2 - 1; + weight *= normalWeight(midpointNormal, tapNormal); + } + weightSum += weight; + if (_HighlightSuppression) { + temp.rgb = highlightCompression(temp.rgb); + } + unweightedResultSum += temp; + resultSum += temp*weight; + } + } + + if (weightSum > 0.01) { + float invWeightSum = (1.0/weightSum); + // Adding the sqrt seems to decrease temporal flickering at the expense + // of having larger "halos" of fallback on rough surfaces + // Subject to change with testing. Sqrt around only half the expression is *intentional*. + float confidence = min(resultSum.a * sqrt(max(invWeightSum, 2.0)), 1.0); + float3 finalColor = resultSum.rgb * invWeightSum; + if (_HighlightSuppression) { + finalColor = highlightDecompression(finalColor); + } + return float4(finalColor, confidence); + } else { + float3 finalColor = unweightedResultSum.rgb / (2 * radius + 1); + if (_HighlightSuppression) { + finalColor = highlightDecompression(finalColor); + } + return float4(finalColor, 0.0); + } + } + + sampler2D _ReflectionTexture0; + sampler2D _ReflectionTexture1; + sampler2D _ReflectionTexture2; + sampler2D _ReflectionTexture3; + sampler2D _ReflectionTexture4; + // Simulate mip maps, since we don't have NPOT mip-chains + float4 getReflectionValue(float2 tsP, int mip) { + float4 coord = float4(tsP,0,0); + if (mip == 0) { + return tex2Dlod(_ReflectionTexture0, coord); + } else if (mip == 1) { + return tex2Dlod(_ReflectionTexture1, coord); + } else if (mip == 2) { + return tex2Dlod(_ReflectionTexture2, coord); + } else if (mip == 3) { + return tex2Dlod(_ReflectionTexture3, coord); + } else { + return tex2Dlod(_ReflectionTexture4, coord); + } + } + + sampler2D _EdgeTexture0; + sampler2D _EdgeTexture1; + sampler2D _EdgeTexture2; + sampler2D _EdgeTexture3; + sampler2D _EdgeTexture4; + // Simulate mip maps, since we don't have NPOT mip-chains + float4 getEdgeValue(float2 tsP, int mip) { + float4 coord = float4(tsP + float2(1.0/(2 * mipToSize(mip))),0,0); + if (mip == 0) { + return tex2Dlod(_EdgeTexture0, coord); + } else if (mip == 1) { + return tex2Dlod(_EdgeTexture1, coord); + } else if (mip == 2) { + return tex2Dlod(_EdgeTexture2, coord); + } else if (mip == 3) { + return tex2Dlod(_EdgeTexture3, coord); + } else { + return tex2Dlod(_EdgeTexture4, coord); + } + } + + float2 centerPixel(float2 inputP) { + return floor(inputP - float2(0.5,0.5)) + float2(0.5,0.5); + } + + float2 snapToTexelCenter(float2 inputP, float2 texSize, float2 texSizeInv) { + return centerPixel(inputP * texSize) * texSizeInv; + } + + float4 bilateralUpsampleReflection(float2 tsP, int mip) { + + float2 smallTexSize = mipToSize(mip); + float2 smallPixelPos = tsP * smallTexSize; + float2 smallPixelPosi = centerPixel(smallPixelPos); + float2 smallTexSizeInv = 1.0 / smallTexSize; + + + float2 p0 = smallPixelPosi * smallTexSizeInv; + float2 p3 = (smallPixelPosi + float2(1.0, 1.0)) * smallTexSizeInv; + float2 p1 = float2(p3.x, p0.y); + float2 p2 = float2(p0.x, p3.y); + + float4 V0 = getReflectionValue(p0.xy, mip); + float4 V1 = getReflectionValue(p1.xy, mip); + float4 V2 = getReflectionValue(p2.xy, mip); + float4 V3 = getReflectionValue(p3.xy, mip); + + float a0 = 1.0; + float a1 = 1.0; + float a2 = 1.0; + float a3 = 1.0; + + // Bilateral weights: + // Bilinear interpolation (filter distance) + float2 smallPixelPosf = smallPixelPos - smallPixelPosi; + a0 = (1.0 - smallPixelPosf.x) * (1.0 - smallPixelPosf.y); + a1 = smallPixelPosf.x * (1.0 - smallPixelPosf.y); + a2 = (1.0 - smallPixelPosf.x) * smallPixelPosf.y; + a3 = smallPixelPosf.x * smallPixelPosf.y; + + float2 fullTexSize = _ReflectionBufferSize; + float2 fullTexSizeInv = 1.0 / fullTexSize; + + float4 hiP0 = float4(snapToTexelCenter(p0, fullTexSize, fullTexSizeInv), 0,0); + float4 hiP3 = float4(snapToTexelCenter(p3, fullTexSize, fullTexSizeInv), 0,0); + float4 hiP1 = float4(snapToTexelCenter(p1, fullTexSize, fullTexSizeInv), 0,0); + float4 hiP2 = float4(snapToTexelCenter(p2, fullTexSize, fullTexSizeInv), 0,0); + + float4 tempCenter = tex2Dlod(_NormalAndRoughnessTexture, float4(tsP, 0, 0)); + float3 n = tempCenter.xyz * 2 - 1; + + float4 temp0 = tex2Dlod(_NormalAndRoughnessTexture, hiP0); + float4 temp1 = tex2Dlod(_NormalAndRoughnessTexture, hiP1); + float4 temp2 = tex2Dlod(_NormalAndRoughnessTexture, hiP2); + float4 temp3 = tex2Dlod(_NormalAndRoughnessTexture, hiP3); + + float3 n0 = temp0.xyz * 2 - 1; + float3 n1 = temp1.xyz * 2 - 1; + float3 n2 = temp2.xyz * 2 - 1; + float3 n3 = temp3.xyz * 2 - 1; + + a0 *= normalWeight(n, n0); + a1 *= normalWeight(n, n1); + a2 *= normalWeight(n, n2); + a3 *= normalWeight(n, n3); + + float r = tempCenter.a; + float r0 = temp0.a; + float r1 = temp1.a; + float r2 = temp2.a; + float r3 = temp3.a; + + + a0 *= roughnessWeight(r, r0); + a1 *= roughnessWeight(r, r1); + a2 *= roughnessWeight(r, r2); + a3 *= roughnessWeight(r, r3); + + // Slightly offset from zero + a0 = max(a0, 0.001); + a1 = max(a1, 0.001); + a2 = max(a2, 0.001); + a3 = max(a3, 0.001); + + // Nearest neighbor + // a0 = a1 = a2 = a3 = 1.0; + + // Normalize the blending weights (weights were chosen so that + // the denominator can never be zero) + float norm = 1.0 / (a0 + a1 + a2 + a3); + + // Blend + float4 value = (V0 * a0 + V1 * a1 + V2 * a2 + V3 * a3) * norm; + //return V0; + return value; + } + + /** Explicit bilinear fetches; must be used if the reflection buffer is bound using point sampling */ + float4 bilinearUpsampleReflection(float2 tsP, int mip) { + + float2 smallTexSize = mipToSize(mip); + float2 smallPixelPos = tsP * smallTexSize; + float2 smallPixelPosi = centerPixel(smallPixelPos); + float2 smallTexSizeInv = 1.0 / smallTexSize; + + + float2 p0 = smallPixelPosi * smallTexSizeInv; + float2 p3 = (smallPixelPosi + float2(1.0, 1.0)) * smallTexSizeInv; + float2 p1 = float2(p3.x, p0.y); + float2 p2 = float2(p0.x, p3.y); + + float4 V0 = getReflectionValue(p0.xy, mip); + float4 V1 = getReflectionValue(p1.xy, mip); + float4 V2 = getReflectionValue(p2.xy, mip); + float4 V3 = getReflectionValue(p3.xy, mip); + + float a0 = 1.0; + float a1 = 1.0; + float a2 = 1.0; + float a3 = 1.0; + + // Bilateral weights: + // Bilinear interpolation (filter distance) + float2 smallPixelPosf = smallPixelPos - smallPixelPosi; + a0 = (1.0 - smallPixelPosf.x) * (1.0 - smallPixelPosf.y); + a1 = smallPixelPosf.x * (1.0 - smallPixelPosf.y); + a2 = (1.0 - smallPixelPosf.x) * smallPixelPosf.y; + a3 = smallPixelPosf.x * smallPixelPosf.y; + + // Blend + float4 value = (V0 * a0 + V1 * a1 + V2 * a2 + V3 * a3); + return value; + } + + // Unity's roughness is GGX roughness squared + float roughnessToBlinnPhongExponent(float roughness) { + float r2 = roughness*roughness; + return 2.0f / r2*r2 - 2.0f; + } + + float glossyLobeSlope(float roughness) { + return pow(roughness, 4.0/3.0); + } + + + // Empirically based on our filter: + // Mip | Pixels + // -------------- + // 0 | 1 no filter, so single pixel + // 1 | 17 2r + 1 filter applied once, grabbing from pixels r away in either direction (r=8, four samples times stride of 2) + // 2 | 50 2r + 1 filter applied on double size pixels, and each of those pixels had reached another r out to the side 2(2r + 1) + m_1 + // 3 | 118 4(2r + 1) + m_2 + // 4 | 254 8(2r + 1) + m_3 + // + // Approximated by pixels = 16*2^mip-15 + // rearranging we get mip = log_2((pixels + 15) / 16) + // + float filterFootprintInPixelsToMip(float footprint) { + return log2((footprint + 15) / 16); + } + + float3 ansiGradient(float t) { + //return float3(t, t, t); + return fmod(floor(t * float3(8.0, 4.0, 2.0)), 2.0); + } + + float4 fragCompositeSSR(v2f i) : SV_Target + { + // Pixel being shaded + float2 tsP = i.uv2.xy; + + float roughness = 1.0-tex2D(_CameraGBufferTexture1, tsP * _SourceToTempUV.zw).a; + + float rayDistance = 0.0; + if (_UseAverageRayDistance) { + rayDistance = tex2D(_AverageRayDistanceBuffer, tsP).r; + } else { + rayDistance = tex2D(_HitPointTexture, tsP).z; + } + + // Get the camera space position of the reflection hit + float3 csPosition = GetPosition(tsP); + float3 wsNormal = tex2D(_CameraGBufferTexture2, tsP).rgb * 2.0 - 1.0; + float3 csN = mul((float3x3)(_WorldToCameraMatrix), wsNormal); + float3 c_mi = csMirrorVector(csPosition, csN); + float3 csHitpoint = c_mi * rayDistance + csPosition; + + + float gatherFootprintInMeters = glossyLobeSlope(roughness) * rayDistance; + // We could add a term that incorporates the normal + // This approximation assumes reflections happen at a glancing angle + float filterFootprintInPixels = gatherFootprintInMeters * _PixelsPerMeterAtOneMeter / csHitpoint.z; + if (_HalfResolution == 1) { + filterFootprintInPixels *= 0.5; + } + + float mip = filterFootprintInPixelsToMip(filterFootprintInPixels); + + float nonPhysicalMip = pow(roughness, 3.0 / 4.0) * UNITY_SPECCUBE_LOD_STEPS; + + if (_HalfResolution == 1) { + nonPhysicalMip = nonPhysicalMip * 0.7; + } + mip = lerp(nonPhysicalMip, mip, _DistanceBlur); + mip = max(0, min(4, mip + _MipBias)); + + if (_DebugMode == 14) { + return float4(ansiGradient(mip*0.25), 1.0); + } + + float4 result; + { + int mipMin = int(mip); + int mipMax = min(mipMin + 1, 4); + float mipLerp = mip-mipMin; + + if (_BilateralUpsampling == 1) { + if (_UseEdgeDetector == 1) { + float nonEdginess = lerp(getEdgeValue(tsP, mipMin), + getEdgeValue(tsP, mipMax), mipLerp); + if (nonEdginess < 0.9) { + result = lerp(bilateralUpsampleReflection(tsP, mipMin), bilateralUpsampleReflection(tsP, mipMax), mipLerp); + if (_VisualizeWhereBilateral == 1) { + result = float4(1, 0, 0, 0); + } + } else { + result = lerp(bilinearUpsampleReflection(tsP, mipMin), bilinearUpsampleReflection(tsP, mipMax), mipLerp); + } + } else { + result = lerp(bilateralUpsampleReflection(tsP, mipMin), bilateralUpsampleReflection(tsP, mipMax), mipLerp); + } + } else { + float4 minResult = getReflectionValue(tsP, mipMin); + float4 maxResult = getReflectionValue(tsP, mipMax); + result = lerp(minResult, maxResult, mipLerp); + result.a = min(minResult.a, maxResult.a); + } + } + + result.a = min(result.a, 1.0); + float vignette = applyEdgeFade(tsP, _ScreenEdgeFading); + result.a *= vignette; + + + float alphaModifier = 1.0 - clamp((roughness - (_MaxRoughness - _RoughnessFalloffRange)) / _RoughnessFalloffRange, 0.0, 1.0); + result.a *= alphaModifier; + return result; + } + + float4 fragBlit(v2f i) : SV_Target + { + // Pixel being shaded + float2 ssP = i.uv2.xy; + return tex2D(_MainTex, ssP); + + } + + float edgeDetector(float2 tsP, float2 axis, float2 texelSize) { + float4 temp = tex2D(_NormalAndRoughnessTexture, tsP); + float midpointRoughness = temp.a; + float3 midpointNormal = temp.rgb * 2 - 1; + + float tapRoughness; + float3 tapNormal; + float2 tsTap = tsP + (axis * _MainTex_TexelSize.xy); + + temp = tex2D(_NormalAndRoughnessTexture, tsTap); + tapRoughness = temp.a; + tapNormal = temp.rgb * 2 - 1; + + float weight = 1.0; + weight *= roughnessWeight(midpointRoughness, tapRoughness); + weight *= normalWeight(midpointNormal, tapNormal); + + return weight; + } + + + float4 fragEdge(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + return edgeDetector(tsP, float2(1,0), _MainTex_TexelSize.xy) * edgeDetector(tsP, float2(0,1), _MainTex_TexelSize.xy); + } + + int _LastMip; + float4 fragMin(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + float2 lastTexSize = mipToSize(_LastMip); + float2 lastTexSizeInv = 1.0 / lastTexSize;//_SourceToTempUV.xy * exp2(mip); + float2 p00 = snapToTexelCenter(tsP, lastTexSize, lastTexSizeInv); + float2 p11 = p00 + lastTexSizeInv; + return min( + min(tex2D(_MainTex, p00), tex2D(_MainTex, p11)), + min(tex2D(_MainTex, float2(p00.x, p11.y)), tex2D(_MainTex, float2(p11.x, p00.y))) + ); + } + + float4 fragResolveHitPoints(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + float4 temp = tex2D(_HitPointTexture, tsP); + float2 hitPoint = temp.xy; + float confidence = temp.w; + float3 colorResult = confidence > 0.0 ? + tex2D(_MainTex, hitPoint).rgb : + tex2D(_CameraReflectionsTexture, tsP).rgb; + +#ifdef UNITY_COMPILER_HLSL + if (any(isnan(colorResult))) + colorResult = float3(0.0, 0.0, 0.0); + // As of 11/29/2015, on Unity 5.3 on a Windows 8.1 computer with a NVIDIA GeForce 980, + // with driver 347.62, the above check does not actually work to get rid of NaNs! + // So we add this "redundant" check. + if (!all(isfinite(colorResult))) + colorResult = float3(0.0, 0.0, 0.0); +#endif + + return float4(colorResult, confidence); + } + + float4 fragBilatKeyPack(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + float3 csN = tex2D(_CameraGBufferTexture2, tsP).xyz; + float roughness = tex2D(_CameraGBufferTexture1, tsP).a; + return float4(csN, roughness); + } + + float4 fragDepthToCSZ(v2f i) : SV_Target + { + float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv2.xy); + return float4(-LinearEyeDepth(depth), 0.0, 0.0, 0.0); + } + + + float3 csPositionToOldNormalizedScreenCoordinate(float3 csPosition) + { + // We could multiply these matrices together on the CPU + float4 oldCSPosition = mul(_CurrentCameraToPreviousCamera, float4(csPosition, 1.0)); + float4 oldSSCoordinate = mul(_ProjectToPixelMatrix, oldCSPosition); + return float3((oldSSCoordinate.xy / oldSSCoordinate.w) * _InvScreenSize, oldCSPosition.z); + } + + float4 fragTemporalFilter(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, tsP); + float3 csPosition = GetPosition(tsP); + + float rayDistance = 0.0; + if (_UseAverageRayDistance) { + rayDistance = tex2D(_AverageRayDistanceBuffer, tsP).r; + } else { + rayDistance = tex2D(_HitPointTexture, tsP).b; + } + + // Virtual is the physics sense, not the other 20+ interpretations in CG + float3 virtualReflectionCSPosition = normalize(csPosition) * rayDistance + csPosition; + + float3 oldTSP = csPositionToOldNormalizedScreenCoordinate(csPosition); + float3 oldVirtualReflectionTSP = csPositionToOldNormalizedScreenCoordinate(virtualReflectionCSPosition); + + float oldCSZ = tex2D(_PreviousCSZBuffer, oldTSP.xy); + float4 currentResult = tex2D(_FinalReflectionTexture, tsP); + float4 oldResult = tex2D(_PreviousReflectionTexture, oldVirtualReflectionTSP.xy); + + float zError = abs(oldCSZ - oldTSP.z); + // Start knocking down contribution at 5cm error, go to 0 at 5 more cm later + float fallbackStart = 0.05; + float fallbackEnd = 0.05; + float zAlphaModifier = 1.0 - clamp((zError - fallbackStart) * (1.0 / fallbackEnd), 0.0, 1.0); + + float alpha = _TemporalAlpha; + alpha *= zAlphaModifier; + + if (_UseTemporalConfidence) { + alpha *= oldResult.w; + } + + // Always compress + currentResult.rgb = highlightCompression(currentResult.rgb); + oldResult.rgb = highlightCompression(oldResult.rgb); + + float4 resultValue = lerp(currentResult, oldResult, alpha); + + resultValue.rgb = highlightDecompression(resultValue.rgb); + + + return resultValue; + + } + + + float4 fragAverageRayDistance(v2f i) : SV_Target + { + float2 tsP = i.uv2.xy; + + float sumRayDistance = tex2D(_HitPointTexture, tsP).b; + float sumWeight = 1.0; + + float roughness = 1.0 - tex2D(_CameraGBufferTexture1, tsP).a; + float step = roughness * 3.0; + /* + for (float x = -step; x < step; x += 2 * step) { + for (float y = -step; y < step; y += 2 * step) { + float weight = 0.5; + sumRayDistance += weight * tex2D(_HitPointTexture, (float2(x,y) * _InvScreenSize) + tsP).b; + sumWeight += weight; + } + } + */ + return float4(sumRayDistance / sumWeight, 0.0, 0.0, 0.0); + } + + static const int NUM_POISSON_TAPS = 12; + // Same as used in CameraMotionBlur.shader + static const float2 poissonSamples[NUM_POISSON_TAPS] = + { + float2(-0.326212,-0.40581), + float2(-0.840144,-0.07358), + float2(-0.695914,0.457137), + float2(-0.203345,0.620716), + float2(0.96234,-0.194983), + float2(0.473434,-0.480026), + float2(0.519456,0.767022), + float2(0.185461,-0.893124), + float2(0.507431,0.064425), + float2(0.89642,0.412458), + float2(-0.32194,-0.932615), + float2(-0.791559,-0.59771) + }; + + float4 fragFilterSharpReflections(v2f i) : SV_Target + { + // Could improve perf by not computing blur when we won't be sampling the highest level anyways + float2 tsP = i.uv2.xy; + float4 sum = 0.0; + float sampleRadius = _MainTex_TexelSize.xy * 2.0; + for (int i = 0; i < NUM_POISSON_TAPS; i++) { + float2 p = tsP + poissonSamples[i] * sampleRadius; + float4 tap = tex2Dlod(_MainTex, float4(p, 0, 0)); + if (_HighlightSuppression) { + tap.rgb = highlightCompression(tap.rgb); + } + sum += tap; + } + float4 result = sum / float(NUM_POISSON_TAPS); + if (_HighlightSuppression) { + result.rgb = highlightDecompression(result.rgb); + } + return result; + + } + + ENDCG + +SubShader { + + ZTest Always Cull Off ZWrite Off + + // 0: Raytrace, step size 1 + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragRaytrace1 + #pragma target 3.0 + float4 fragRaytrace1(v2f i) : SV_Target { return fragRaytrace(i, 1); } + ENDCG + } + + // 1: Raytrace, step size 2 + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragRaytrace2 + #pragma target 3.0 + float4 fragRaytrace2(v2f i) : SV_Target { return fragRaytrace(i, 2); } + ENDCG + } + + // 2: Raytrace, step size 4 + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragRaytrace4 + #pragma target 3.0 + float4 fragRaytrace4(v2f i) : SV_Target { return fragRaytrace(i, 4); } + ENDCG + } + + // 3: Raytrace, step size 8 + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragRaytrace8 + #pragma target 3.0 + float4 fragRaytrace8(v2f i) : SV_Target { return fragRaytrace(i, 8); } + ENDCG + } + + // 4: Raytrace, step size 16 + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragRaytrace16 + #pragma target 3.0 + float4 fragRaytrace16(v2f i) : SV_Target { return fragRaytrace(i, 16); } + ENDCG + } + + // 5: Composite + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragComposite + #pragma target 3.0 + ENDCG + } + + // 6: GBlur + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragGBlur + #pragma target 3.0 + ENDCG + } + + // 7: CompositeSSR + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragCompositeSSR + #pragma target 3.0 + ENDCG + } + + // 8: Simple Blit + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragBlit + #pragma target 3.0 + ENDCG + } + + // 9: Generate Edge Texture + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragEdge + #pragma target 3.0 + ENDCG + } + + // 10: Min mip generation + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragMin + #pragma target 3.0 + ENDCG + } + + // 11: Hit point texture to reflection buffer + Pass { + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragResolveHitPoints + #pragma target 3.0 + ENDCG + } + + // 12: Pack Bilateral Filter Keys in single buffer + Pass{ + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragBilatKeyPack + #pragma target 3.0 + ENDCG + } + + // 13: Blit depth information as camera space Z + Pass{ + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragDepthToCSZ + #pragma target 3.0 + ENDCG + } + + // 14: Temporally filter buffer + Pass{ + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragTemporalFilter + #pragma target 3.0 + ENDCG + } + + // 15: Generate average ray distance + Pass{ + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragAverageRayDistance + #pragma target 3.0 + ENDCG + } + + // 16: Filter the highest quality reflection buffer + Pass{ + CGPROGRAM + #pragma exclude_renderers gles xbox360 ps3 + #pragma vertex vert + #pragma fragment fragFilterSharpReflections + #pragma target 3.0 + ENDCG + } + +} + +Fallback off + +} diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader.meta new file mode 100644 index 0000000..f6718fe --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7e2fcc83af19e744787647ec0ac5d42c +timeCreated: 1449750821 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs b/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs new file mode 100644 index 0000000..7cecf5e --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs @@ -0,0 +1,716 @@ +using System; +using UnityEngine; + +namespace UnityStandardAssets.CinematicEffects +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Rendering/Screen Space Reflection")] +#if UNITY_5_4_OR_NEWER + [ImageEffectAllowedInSceneView] +#endif + public class ScreenSpaceReflection : MonoBehaviour + { + public enum SSRDebugMode + { + None = 0, + IncomingRadiance = 1, + SSRResult = 2, + FinalGlossyTerm = 3, + SSRMask = 4, + Roughness = 5, + BaseColor = 6, + SpecColor = 7, + Reflectivity = 8, + ReflectionProbeOnly = 9, + ReflectionProbeMinusSSR = 10, + SSRMinusReflectionProbe = 11, + NoGlossy = 12, + NegativeNoGlossy = 13, + MipLevel = 14, + } + + public enum SSRResolution + { + FullResolution = 0, + HalfTraceFullResolve = 1, + HalfResolution = 2, + } + + [Serializable] + public struct SSRSettings + { + [AttributeUsage(AttributeTargets.Field)] + public class LayoutAttribute : PropertyAttribute + {} + + [Layout] + public BasicSettings basicSettings; + + [Layout] + public ReflectionSettings reflectionSettings; + + [Layout] + public AdvancedSettings advancedSettings; + + [Layout] + public DebugSettings debugSettings; + + private static readonly SSRSettings s_Performance = new SSRSettings + { + basicSettings = new BasicSettings + { + screenEdgeFading = 0, + maxDistance = 10.0f, + fadeDistance = 10.0f, + reflectionMultiplier = 1.0f, + enableHDR = false, + additiveReflection = false + }, + reflectionSettings = new ReflectionSettings + { + maxSteps = 64, + rayStepSize = 4, + widthModifier = 0.5f, + smoothFallbackThreshold = 0.4f, + distanceBlur = 1.0f, + fresnelFade = 0.2f, + fresnelFadePower = 2.0f, + smoothFallbackDistance = 0.05f, + }, + advancedSettings = new AdvancedSettings + { + useTemporalConfidence = false, + temporalFilterStrength = 0.0f, + treatBackfaceHitAsMiss = false, + allowBackwardsRays = false, + traceBehindObjects = true, + highQualitySharpReflections = false, + traceEverywhere = false, + resolution = SSRResolution.HalfResolution, + bilateralUpsample = false, + improveCorners = false, + reduceBanding = false, + highlightSuppression = false + }, + debugSettings = new DebugSettings + { + debugMode = SSRDebugMode.None + } + }; + + private static readonly SSRSettings s_Default = new SSRSettings + { + basicSettings = new BasicSettings + { + screenEdgeFading = 0.03f, + maxDistance = 100.0f, + fadeDistance = 100.0f, + reflectionMultiplier = 1.0f, + enableHDR = true, + additiveReflection = false, + }, + reflectionSettings = new ReflectionSettings + { + maxSteps = 128, + rayStepSize = 3, + widthModifier = 0.5f, + smoothFallbackThreshold = 0.2f, + distanceBlur = 1.0f, + fresnelFade = 0.2f, + fresnelFadePower = 2.0f, + smoothFallbackDistance = 0.05f, + }, + advancedSettings = new AdvancedSettings + { + useTemporalConfidence = true, + temporalFilterStrength = 0.7f, + treatBackfaceHitAsMiss = false, + allowBackwardsRays = false, + traceBehindObjects = true, + highQualitySharpReflections = true, + traceEverywhere = true, + resolution = SSRResolution.HalfTraceFullResolve, + bilateralUpsample = true, + improveCorners = true, + reduceBanding = true, + highlightSuppression = false + }, + debugSettings = new DebugSettings + { + debugMode = SSRDebugMode.None + } + }; + + private static readonly SSRSettings s_HighQuality = new SSRSettings + { + basicSettings = new BasicSettings + { + screenEdgeFading = 0.03f, + maxDistance = 100.0f, + fadeDistance = 100.0f, + reflectionMultiplier = 1.0f, + enableHDR = true, + additiveReflection = false, + }, + reflectionSettings = new ReflectionSettings + { + maxSteps = 512, + rayStepSize = 1, + widthModifier = 0.5f, + smoothFallbackThreshold = 0.2f, + distanceBlur = 1.0f, + fresnelFade = 0.2f, + fresnelFadePower = 2.0f, + smoothFallbackDistance = 0.05f, + }, + advancedSettings = new AdvancedSettings + { + useTemporalConfidence = true, + temporalFilterStrength = 0.7f, + treatBackfaceHitAsMiss = false, + allowBackwardsRays = false, + traceBehindObjects = true, + highQualitySharpReflections = true, + traceEverywhere = true, + resolution = SSRResolution.HalfTraceFullResolve, + bilateralUpsample = true, + improveCorners = true, + reduceBanding = true, + highlightSuppression = false + }, + debugSettings = new DebugSettings + { + debugMode = SSRDebugMode.None + } + }; + + + public static SSRSettings performanceSettings + { + get { return s_Performance; } + } + + public static SSRSettings defaultSettings + { + get { return s_Default; } + } + + public static SSRSettings highQualitySettings + { + get { return s_HighQuality; } + } + } + + [Serializable] + public struct BasicSettings + { + /// BASIC SETTINGS + [Tooltip("Nonphysical multiplier for the SSR reflections. 1.0 is physically based.")] + [Range(0.0f, 2.0f)] + public float reflectionMultiplier; + + [Tooltip("Maximum reflection distance in world units.")] + [Range(0.5f, 1000.0f)] + public float maxDistance; + + [Tooltip("How far away from the maxDistance to begin fading SSR.")] + [Range(0.0f, 1000.0f)] + public float fadeDistance; + + [Tooltip("Higher = fade out SSRR near the edge of the screen so that reflections don't pop under camera motion.")] + [Range(0.0f, 1.0f)] + public float screenEdgeFading; + + [Tooltip("Enable for better reflections of very bright objects at a performance cost")] + public bool enableHDR; + + // When enabled, we just add our reflections on top of the existing ones. This is physically incorrect, but several + // popular demos and games have taken this approach, and it does hide some artifacts. + [Tooltip("Add reflections on top of existing ones. Not physically correct.")] + public bool additiveReflection; + } + + [Serializable] + public struct ReflectionSettings + { + /// REFLECTIONS + [Tooltip("Max raytracing length.")] + [Range(16, 2048)] + public int maxSteps; + + [Tooltip("Log base 2 of ray tracing coarse step size. Higher traces farther, lower gives better quality silhouettes.")] + [Range(0, 4)] + public int rayStepSize; + + [Tooltip("Typical thickness of columns, walls, furniture, and other objects that reflection rays might pass behind.")] + [Range(0.01f, 10.0f)] + public float widthModifier; + + [Tooltip("Increase if reflections flicker on very rough surfaces.")] + [Range(0.0f, 1.0f)] + public float smoothFallbackThreshold; + + [Tooltip("Start falling back to non-SSR value solution at smoothFallbackThreshold - smoothFallbackDistance, with full fallback occuring at smoothFallbackThreshold.")] + [Range(0.0f, 0.2f)] + public float smoothFallbackDistance; + + [Tooltip("Amplify Fresnel fade out. Increase if floor reflections look good close to the surface and bad farther 'under' the floor.")] + [Range(0.0f, 1.0f)] + public float fresnelFade; + + [Tooltip("Higher values correspond to a faster Fresnel fade as the reflection changes from the grazing angle.")] + [Range(0.1f, 10.0f)] + public float fresnelFadePower; + + [Tooltip("Controls how blurry reflections get as objects are further from the camera. 0 is constant blur no matter trace distance or distance from camera. 1 fully takes into account both factors.")] + [Range(0.0f, 1.0f)] + public float distanceBlur; + } + + [Serializable] + public struct AdvancedSettings + { + /// ADVANCED + [Range(0.0f, 0.99f)] + [Tooltip("Increase to decrease flicker in scenes; decrease to prevent ghosting (especially in dynamic scenes). 0 gives maximum performance.")] + public float temporalFilterStrength; + + [Tooltip("Enable to limit ghosting from applying the temporal filter.")] + public bool useTemporalConfidence; + + [Tooltip("Enable to allow rays to pass behind objects. This can lead to more screen-space reflections, but the reflections are more likely to be wrong.")] + public bool traceBehindObjects; + + [Tooltip("Enable to increase quality of the sharpest reflections (through filtering), at a performance cost.")] + public bool highQualitySharpReflections; + + [Tooltip("Improves quality in scenes with varying smoothness, at a potential performance cost.")] + public bool traceEverywhere; + + [Tooltip("Enable to force more surfaces to use reflection probes if you see streaks on the sides of objects or bad reflections of their backs.")] + public bool treatBackfaceHitAsMiss; + + [Tooltip("Enable for a performance gain in scenes where most glossy objects are horizontal, like floors, water, and tables. Leave on for scenes with glossy vertical objects.")] + public bool allowBackwardsRays; + + [Tooltip("Improve visual fidelity of reflections on rough surfaces near corners in the scene, at the cost of a small amount of performance.")] + public bool improveCorners; + + [Tooltip("Half resolution SSRR is much faster, but less accurate. Quality can be reclaimed for some performance by doing the resolve at full resolution.")] + public SSRResolution resolution; + + [Tooltip("Drastically improves reflection reconstruction quality at the expense of some performance.")] + public bool bilateralUpsample; + + [Tooltip("Improve visual fidelity of mirror reflections at the cost of a small amount of performance.")] + public bool reduceBanding; + + [Tooltip("Enable to limit the effect a few bright pixels can have on rougher surfaces")] + public bool highlightSuppression; + } + + [Serializable] + public struct DebugSettings + { + /// DEBUG + [Tooltip("Various Debug Visualizations")] + public SSRDebugMode debugMode; + } + + + [SerializeField] + public SSRSettings settings = SSRSettings.defaultSettings; + + ///////////// Unexposed Variables ////////////////// + + // Perf optimization we still need to test across platforms + [Tooltip("Enable to try and bypass expensive bilateral upsampling away from edges. There is a slight performance hit for generating the edge buffers, but a potentially high performance savings from bypassing bilateral upsampling where it is unneeded. Test on your target platforms to see if performance improves.")] + private bool useEdgeDetector = false; + + // Debug variable, useful for forcing all surfaces in a scene to reflection with arbitrary sharpness/roughness + [Range(-4.0f, 4.0f)] + private float mipBias = 0.0f; + + // Flag for whether to knock down the reflection term by occlusion stored in the gbuffer. Currently consistently gives + // better results when true, so this flag is private for now. + private bool useOcclusion = true; + + // When enabled, all filtering is performed at the highest resolution. This is extraordinarily slow, and should only be used during development. + private bool fullResolutionFiltering = false; + + // Crude sky fallback, feature-gated until next revision + private bool fallbackToSky = false; + + // For next release; will improve quality at the expense of performance + private bool computeAverageRayDistance = false; + + // Internal values for temporal filtering + private bool m_HasInformationFromPreviousFrame; + private Matrix4x4 m_PreviousWorldToCameraMatrix; + private RenderTexture m_PreviousDepthBuffer; + private RenderTexture m_PreviousHitBuffer; + private RenderTexture m_PreviousReflectionBuffer; + + [NonSerialized] + private RenderTextureUtility m_RTU = new RenderTextureUtility(); + + [SerializeField] + private Shader m_Shader; + public Shader shader + { + get + { + if (m_Shader == null) + m_Shader = Shader.Find("Hidden/ScreenSpaceReflection"); + + return m_Shader; + } + } + + private Material m_Material; + public Material material + { + get + { + if (m_Material == null) + m_Material = ImageEffectHelper.CheckShaderAndCreateMaterial(shader); + + return m_Material; + } + } + + // Shader pass indices used by the effect + private enum PassIndex + { + RayTraceStep1 = 0, + RayTraceStep2 = 1, + RayTraceStep4 = 2, + RayTraceStep8 = 3, + RayTraceStep16 = 4, + CompositeFinal = 5, + Blur = 6, + CompositeSSR = 7, + Blit = 8, + EdgeGeneration = 9, + MinMipGeneration = 10, + HitPointToReflections = 11, + BilateralKeyPack = 12, + BlitDepthAsCSZ = 13, + TemporalFilter = 14, + AverageRayDistanceGeneration = 15, + PoissonBlur = 16, + } + + + private void OnEnable() + { + if (!ImageEffectHelper.IsSupported(shader, false, true, this)) + { + enabled = false; + return; + } + + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + } + + void OnDisable() + { + if (m_Material) + DestroyImmediate(m_Material); + if (m_PreviousDepthBuffer) + DestroyImmediate(m_PreviousDepthBuffer); + if (m_PreviousHitBuffer) + DestroyImmediate(m_PreviousHitBuffer); + if (m_PreviousReflectionBuffer) + DestroyImmediate(m_PreviousReflectionBuffer); + + m_Material = null; + m_PreviousDepthBuffer = null; + m_PreviousHitBuffer = null; + m_PreviousReflectionBuffer = null; + } + + private void PreparePreviousBuffers(int w, int h) + { + if (m_PreviousDepthBuffer != null) + { + if ((m_PreviousDepthBuffer.width != w) || (m_PreviousDepthBuffer.height != h)) + { + DestroyImmediate(m_PreviousDepthBuffer); + DestroyImmediate(m_PreviousHitBuffer); + DestroyImmediate(m_PreviousReflectionBuffer); + m_PreviousDepthBuffer = null; + m_PreviousHitBuffer = null; + m_PreviousReflectionBuffer = null; + } + } + if (m_PreviousDepthBuffer == null) + { + m_PreviousDepthBuffer = new RenderTexture(w, h, 0, RenderTextureFormat.RFloat); + m_PreviousHitBuffer = new RenderTexture(w, h, 0, RenderTextureFormat.ARGBHalf); + m_PreviousReflectionBuffer = new RenderTexture(w, h, 0, RenderTextureFormat.ARGBHalf); + } + } + + [ImageEffectOpaque] + public void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (material == null) + { + Graphics.Blit(source, destination); + return; + } + if (m_HasInformationFromPreviousFrame) + { + m_HasInformationFromPreviousFrame = (m_PreviousDepthBuffer != null) && + (source.width == m_PreviousDepthBuffer.width) && + (source.height == m_PreviousDepthBuffer.height); + } + bool doTemporalFilterThisFrame = m_HasInformationFromPreviousFrame && settings.advancedSettings.temporalFilterStrength > 0.0; + m_HasInformationFromPreviousFrame = false; + + // Not using deferred shading? Just blit source to destination. + if (Camera.current.actualRenderingPath != RenderingPath.DeferredShading) + { + Graphics.Blit(source, destination); + return; + } + + var rtW = source.width; + var rtH = source.height; + + // RGB: Normals, A: Roughness. + // Has the nice benefit of allowing us to control the filtering mode as well. + RenderTexture bilateralKeyTexture = m_RTU.GetTemporaryRenderTexture(rtW, rtH, 0, RenderTextureFormat.ARGB32); + bilateralKeyTexture.filterMode = FilterMode.Point; + Graphics.Blit(source, bilateralKeyTexture, material, (int)PassIndex.BilateralKeyPack); + material.SetTexture("_NormalAndRoughnessTexture", bilateralKeyTexture); + + float sWidth = source.width; + float sHeight = source.height; + + Vector2 sourceToTempUV = new Vector2(sWidth / rtW, sHeight / rtH); + + int downsampleAmount = (settings.advancedSettings.resolution == SSRResolution.FullResolution) ? 1 : 2; + + rtW = rtW / downsampleAmount; + rtH = rtH / downsampleAmount; + + material.SetVector("_SourceToTempUV", new Vector4(sourceToTempUV.x, sourceToTempUV.y, 1.0f / sourceToTempUV.x, 1.0f / sourceToTempUV.y)); + + + Matrix4x4 P = GetComponent().projectionMatrix; + Vector4 projInfo = new Vector4 + ((-2.0f / (sWidth * P[0])), + (-2.0f / (sHeight * P[5])), + ((1.0f - P[2]) / P[0]), + ((1.0f + P[6]) / P[5])); + + /** The height in pixels of a 1m object if viewed from 1m away. */ + float pixelsPerMeterAtOneMeter = sWidth / (-2.0f * (float)(Math.Tan(GetComponent().fieldOfView / 180.0 * Math.PI * 0.5))); + material.SetFloat("_PixelsPerMeterAtOneMeter", pixelsPerMeterAtOneMeter); + + + float sx = sWidth / 2.0f; + float sy = sHeight / 2.0f; + + Matrix4x4 warpToScreenSpaceMatrix = new Matrix4x4(); + warpToScreenSpaceMatrix.SetRow(0, new Vector4(sx, 0.0f, 0.0f, sx)); + warpToScreenSpaceMatrix.SetRow(1, new Vector4(0.0f, sy, 0.0f, sy)); + warpToScreenSpaceMatrix.SetRow(2, new Vector4(0.0f, 0.0f, 1.0f, 0.0f)); + warpToScreenSpaceMatrix.SetRow(3, new Vector4(0.0f, 0.0f, 0.0f, 1.0f)); + + Matrix4x4 projectToPixelMatrix = warpToScreenSpaceMatrix * P; + + material.SetVector("_ScreenSize", new Vector2(sWidth, sHeight)); + material.SetVector("_ReflectionBufferSize", new Vector2(rtW, rtH)); + Vector2 invScreenSize = new Vector2((float)(1.0 / sWidth), (float)(1.0 / sHeight)); + + Matrix4x4 worldToCameraMatrix = GetComponent().worldToCameraMatrix; + Matrix4x4 cameraToWorldMatrix = GetComponent().worldToCameraMatrix.inverse; + material.SetVector("_InvScreenSize", invScreenSize); + material.SetVector("_ProjInfo", projInfo); // used for unprojection + material.SetMatrix("_ProjectToPixelMatrix", projectToPixelMatrix); + material.SetMatrix("_WorldToCameraMatrix", worldToCameraMatrix); + material.SetMatrix("_CameraToWorldMatrix", cameraToWorldMatrix); + material.SetInt("_EnableRefine", settings.advancedSettings.reduceBanding ? 1 : 0); + material.SetInt("_AdditiveReflection", settings.basicSettings.additiveReflection ? 1 : 0); + material.SetInt("_ImproveCorners", settings.advancedSettings.improveCorners ? 1 : 0); + material.SetFloat("_ScreenEdgeFading", settings.basicSettings.screenEdgeFading); + material.SetFloat("_MipBias", mipBias); + material.SetInt("_UseOcclusion", useOcclusion ? 1 : 0); + material.SetInt("_BilateralUpsampling", settings.advancedSettings.bilateralUpsample ? 1 : 0); + material.SetInt("_FallbackToSky", fallbackToSky ? 1 : 0); + material.SetInt("_TreatBackfaceHitAsMiss", settings.advancedSettings.treatBackfaceHitAsMiss ? 1 : 0); + material.SetInt("_AllowBackwardsRays", settings.advancedSettings.allowBackwardsRays ? 1 : 0); + material.SetInt("_TraceEverywhere", settings.advancedSettings.traceEverywhere ? 1 : 0); + + float z_f = GetComponent().farClipPlane; + float z_n = GetComponent().nearClipPlane; + + Vector3 cameraClipInfo = (float.IsPositiveInfinity(z_f)) ? + new Vector3(z_n, -1.0f, 1.0f) : + new Vector3(z_n * z_f, z_n - z_f, z_f); + + material.SetVector("_CameraClipInfo", cameraClipInfo); + material.SetFloat("_MaxRayTraceDistance", settings.basicSettings.maxDistance); + material.SetFloat("_FadeDistance", settings.basicSettings.fadeDistance); + material.SetFloat("_LayerThickness", settings.reflectionSettings.widthModifier); + + const int maxMip = 5; + RenderTexture[] reflectionBuffers; + RenderTextureFormat intermediateFormat = settings.basicSettings.enableHDR ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.ARGB32; + + reflectionBuffers = new RenderTexture[maxMip]; + for (int i = 0; i < maxMip; ++i) + { + if (fullResolutionFiltering) + reflectionBuffers[i] = m_RTU.GetTemporaryRenderTexture(rtW, rtH, 0, intermediateFormat); + else + reflectionBuffers[i] = m_RTU.GetTemporaryRenderTexture(rtW >> i, rtH >> i, 0, intermediateFormat); + // We explicitly interpolate during bilateral upsampling. + reflectionBuffers[i].filterMode = settings.advancedSettings.bilateralUpsample ? FilterMode.Point : FilterMode.Bilinear; + } + + material.SetInt("_EnableSSR", 1); + material.SetInt("_DebugMode", (int)settings.debugSettings.debugMode); + + material.SetInt("_TraceBehindObjects", settings.advancedSettings.traceBehindObjects ? 1 : 0); + + material.SetInt("_MaxSteps", settings.reflectionSettings.maxSteps); + + RenderTexture rayHitTexture = m_RTU.GetTemporaryRenderTexture(rtW, rtH); + + // We have 5 passes for different step sizes + int tracePass = Mathf.Clamp(settings.reflectionSettings.rayStepSize, 0, 4); + Graphics.Blit(source, rayHitTexture, material, tracePass); + + material.SetTexture("_HitPointTexture", rayHitTexture); + // Resolve the hitpoints into the mirror reflection buffer + Graphics.Blit(source, reflectionBuffers[0], material, (int)PassIndex.HitPointToReflections); + + material.SetTexture("_ReflectionTexture0", reflectionBuffers[0]); + material.SetInt("_FullResolutionFiltering", fullResolutionFiltering ? 1 : 0); + + material.SetFloat("_MaxRoughness", 1.0f - settings.reflectionSettings.smoothFallbackThreshold); + material.SetFloat("_RoughnessFalloffRange", settings.reflectionSettings.smoothFallbackDistance); + + material.SetFloat("_SSRMultiplier", settings.basicSettings.reflectionMultiplier); + + RenderTexture[] edgeTextures = new RenderTexture[maxMip]; + if (settings.advancedSettings.bilateralUpsample && useEdgeDetector) + { + edgeTextures[0] = m_RTU.GetTemporaryRenderTexture(rtW, rtH); + Graphics.Blit(source, edgeTextures[0], material, (int)PassIndex.EdgeGeneration); + for (int i = 1; i < maxMip; ++i) + { + edgeTextures[i] = m_RTU.GetTemporaryRenderTexture(rtW >> i, rtH >> i); + material.SetInt("_LastMip", i - 1); + Graphics.Blit(edgeTextures[i - 1], edgeTextures[i], material, (int)PassIndex.MinMipGeneration); + } + } + + if (settings.advancedSettings.highQualitySharpReflections) + { + RenderTexture filteredReflections = m_RTU.GetTemporaryRenderTexture(reflectionBuffers[0].width, reflectionBuffers[0].height, 0, reflectionBuffers[0].format); + filteredReflections.filterMode = reflectionBuffers[0].filterMode; + reflectionBuffers[0].filterMode = FilterMode.Bilinear; + Graphics.Blit(reflectionBuffers[0], filteredReflections, material, (int)PassIndex.PoissonBlur); + + // Replace the unfiltered buffer with the newly filtered one. + m_RTU.ReleaseTemporaryRenderTexture(reflectionBuffers[0]); + reflectionBuffers[0] = filteredReflections; + material.SetTexture("_ReflectionTexture0", reflectionBuffers[0]); + } + + // Generate the blurred low-resolution buffers + for (int i = 1; i < maxMip; ++i) + { + RenderTexture inputTex = reflectionBuffers[i - 1]; + + RenderTexture hBlur; + if (fullResolutionFiltering) + hBlur = m_RTU.GetTemporaryRenderTexture(rtW, rtH, 0, intermediateFormat); + else + { + int lowMip = i; + hBlur = m_RTU.GetTemporaryRenderTexture(rtW >> lowMip, rtH >> (i - 1), 0, intermediateFormat); + } + for (int j = 0; j < (fullResolutionFiltering ? (i * i) : 1); ++j) + { + // Currently we blur at the resolution of the previous mip level, we could save bandwidth by blurring directly to the lower resolution. + material.SetVector("_Axis", new Vector4(1.0f, 0.0f, 0.0f, 0.0f)); + material.SetFloat("_CurrentMipLevel", i - 1.0f); + + Graphics.Blit(inputTex, hBlur, material, (int)PassIndex.Blur); + + material.SetVector("_Axis", new Vector4(0.0f, 1.0f, 0.0f, 0.0f)); + + inputTex = reflectionBuffers[i]; + Graphics.Blit(hBlur, inputTex, material, (int)PassIndex.Blur); + } + + material.SetTexture("_ReflectionTexture" + i, reflectionBuffers[i]); + + m_RTU.ReleaseTemporaryRenderTexture(hBlur); + } + + + if (settings.advancedSettings.bilateralUpsample && useEdgeDetector) + { + for (int i = 0; i < maxMip; ++i) + material.SetTexture("_EdgeTexture" + i, edgeTextures[i]); + } + material.SetInt("_UseEdgeDetector", useEdgeDetector ? 1 : 0); + + RenderTexture averageRayDistanceBuffer = m_RTU.GetTemporaryRenderTexture(source.width, source.height, 0, RenderTextureFormat.RHalf); + if (computeAverageRayDistance) + { + Graphics.Blit(source, averageRayDistanceBuffer, material, (int)PassIndex.AverageRayDistanceGeneration); + } + material.SetInt("_UseAverageRayDistance", computeAverageRayDistance ? 1 : 0); + material.SetTexture("_AverageRayDistanceBuffer", averageRayDistanceBuffer); + bool resolveDiffersFromTraceRes = (settings.advancedSettings.resolution == SSRResolution.HalfTraceFullResolve); + RenderTexture finalReflectionBuffer = m_RTU.GetTemporaryRenderTexture(resolveDiffersFromTraceRes ? source.width : rtW, resolveDiffersFromTraceRes ? source.height : rtH, 0, intermediateFormat); + + material.SetFloat("_FresnelFade", settings.reflectionSettings.fresnelFade); + material.SetFloat("_FresnelFadePower", settings.reflectionSettings.fresnelFadePower); + material.SetFloat("_DistanceBlur", settings.reflectionSettings.distanceBlur); + material.SetInt("_HalfResolution", (settings.advancedSettings.resolution != SSRResolution.FullResolution) ? 1 : 0); + material.SetInt("_HighlightSuppression", settings.advancedSettings.highlightSuppression ? 1 : 0); + Graphics.Blit(reflectionBuffers[0], finalReflectionBuffer, material, (int)PassIndex.CompositeSSR); + material.SetTexture("_FinalReflectionTexture", finalReflectionBuffer); + + + RenderTexture temporallyFilteredBuffer = m_RTU.GetTemporaryRenderTexture(resolveDiffersFromTraceRes ? source.width : rtW, resolveDiffersFromTraceRes ? source.height : rtH, 0, intermediateFormat); + if (doTemporalFilterThisFrame) + { + material.SetInt("_UseTemporalConfidence", settings.advancedSettings.useTemporalConfidence ? 1 : 0); + material.SetFloat("_TemporalAlpha", settings.advancedSettings.temporalFilterStrength); + material.SetMatrix("_CurrentCameraToPreviousCamera", m_PreviousWorldToCameraMatrix * cameraToWorldMatrix); + material.SetTexture("_PreviousReflectionTexture", m_PreviousReflectionBuffer); + material.SetTexture("_PreviousCSZBuffer", m_PreviousDepthBuffer); + Graphics.Blit(source, temporallyFilteredBuffer, material, (int)PassIndex.TemporalFilter); + + material.SetTexture("_FinalReflectionTexture", temporallyFilteredBuffer); + } + + if (settings.advancedSettings.temporalFilterStrength > 0.0) + { + m_PreviousWorldToCameraMatrix = worldToCameraMatrix; + PreparePreviousBuffers(source.width, source.height); + Graphics.Blit(source, m_PreviousDepthBuffer, material, (int)PassIndex.BlitDepthAsCSZ); + Graphics.Blit(rayHitTexture, m_PreviousHitBuffer); + Graphics.Blit(doTemporalFilterThisFrame ? temporallyFilteredBuffer : finalReflectionBuffer, m_PreviousReflectionBuffer); + + m_HasInformationFromPreviousFrame = true; + } + + + Graphics.Blit(source, destination, material, (int)PassIndex.CompositeFinal); + + m_RTU.ReleaseAllTemporaryRenderTextures(); + } + } +} diff --git a/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs.meta b/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs.meta new file mode 100644 index 0000000..ae1741a --- /dev/null +++ b/Assets/Cinematic Effects/ScreenSpaceReflection/ScreenSpaceReflection.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: da3ff4a1bef2e8d47a1dfb734aa54de1 +timeCreated: 1433488439 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - ssrShader: {fileID: 4800000, guid: 7e2fcc83af19e744787647ec0ac5d42c, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading.meta b/Assets/Cinematic Effects/TonemappingColorGrading.meta new file mode 100644 index 0000000..d912b32 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 33083b2f3c4953846890c256af8cc606 +folderAsset: yes +timeCreated: 1435676891 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Editor.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Editor.meta new file mode 100644 index 0000000..4307c22 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a232fdc401b30b549b2ac3a54d76f6cc +folderAsset: yes +timeCreated: 1448359112 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs b/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs new file mode 100644 index 0000000..1e4dfec --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs @@ -0,0 +1,736 @@ +namespace UnityStandardAssets.CinematicEffects +{ + using UnityEngine; + using UnityEditor; + using UnityEditorInternal; + using System.Reflection; + using System.Collections.Generic; + using System.Linq; + + [CanEditMultipleObjects, CustomEditor(typeof(TonemappingColorGrading))] + public class TonemappingColorGradingEditor : Editor + { + #region Property drawers + [CustomPropertyDrawer(typeof(TonemappingColorGrading.ColorWheelGroup))] + private class ColorWheelGroupDrawer : PropertyDrawer + { + int m_RenderSizePerWheel; + int m_NumberOfWheels; + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + var wheelAttribute = (TonemappingColorGrading.ColorWheelGroup)attribute; + property.isExpanded = true; + + m_NumberOfWheels = property.CountInProperty() - 1; + if (m_NumberOfWheels == 0) + return 0f; + + m_RenderSizePerWheel = Mathf.FloorToInt((EditorGUIUtility.currentViewWidth) / m_NumberOfWheels) - 30; + m_RenderSizePerWheel = Mathf.Clamp(m_RenderSizePerWheel, wheelAttribute.minSizePerWheel, wheelAttribute.maxSizePerWheel); + m_RenderSizePerWheel = Mathf.FloorToInt(pixelRatio * m_RenderSizePerWheel); + return ColorWheel.GetColorWheelHeight(m_RenderSizePerWheel); + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + if (m_NumberOfWheels == 0) + return; + + var width = position.width; + Rect newPosition = new Rect(position.x, position.y, width / m_NumberOfWheels, position.height); + + foreach (SerializedProperty prop in property) + { + if (prop.propertyType == SerializedPropertyType.Color) + prop.colorValue = ColorWheel.DoGUI(newPosition, prop.displayName, prop.colorValue, m_RenderSizePerWheel); + + newPosition.x += width / m_NumberOfWheels; + } + } + } + + [CustomPropertyDrawer(typeof(TonemappingColorGrading.IndentedGroup))] + private class IndentedGroupDrawer : PropertyDrawer + { + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return 0f; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUILayout.LabelField(label, EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + + foreach (SerializedProperty prop in property) + EditorGUILayout.PropertyField(prop); + + EditorGUI.indentLevel--; + } + } + + [CustomPropertyDrawer(typeof(TonemappingColorGrading.ChannelMixer))] + private class ChannelMixerDrawer : PropertyDrawer + { + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return 0f; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + // TODO: Hardcoded variable names, rewrite this function + if (property.type != "ChannelMixerSettings") + return; + + SerializedProperty currentChannel = property.FindPropertyRelative("currentChannel"); + int intCurrentChannel = currentChannel.intValue; + + EditorGUILayout.LabelField(label, EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel("Channel"); + if (GUILayout.Toggle(intCurrentChannel == 0, "Red", EditorStyles.miniButtonLeft)) intCurrentChannel = 0; + if (GUILayout.Toggle(intCurrentChannel == 1, "Green", EditorStyles.miniButtonMid)) intCurrentChannel = 1; + if (GUILayout.Toggle(intCurrentChannel == 2, "Blue", EditorStyles.miniButtonRight)) intCurrentChannel = 2; + } + EditorGUILayout.EndHorizontal(); + + SerializedProperty serializedChannel = property.FindPropertyRelative("channels").GetArrayElementAtIndex(intCurrentChannel); + currentChannel.intValue = intCurrentChannel; + + Vector3 v = serializedChannel.vector3Value; + v.x = EditorGUILayout.Slider("Red", v.x, -2f, 2f); + v.y = EditorGUILayout.Slider("Green", v.y, -2f, 2f); + v.z = EditorGUILayout.Slider("Blue", v.z, -2f, 2f); + serializedChannel.vector3Value = v; + + EditorGUI.indentLevel--; + } + } + + [CustomPropertyDrawer(typeof(TonemappingColorGrading.Curve))] + private class CurveDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + TonemappingColorGrading.Curve attribute = (TonemappingColorGrading.Curve)base.attribute; + + if (property.propertyType != SerializedPropertyType.AnimationCurve) + { + EditorGUI.LabelField(position, label.text, "Use ClampCurve with an AnimationCurve."); + return; + } + + property.animationCurveValue = EditorGUI.CurveField(position, label, property.animationCurveValue, attribute.color, new Rect(0f, 0f, 1f, 1f)); + } + } + #endregion + + #region Styling + private static Styles s_Styles; + private class Styles + { + public GUIStyle thumb2D = "ColorPicker2DThumb"; + public Vector2 thumb2DSize; + + internal Styles() + { + thumb2DSize = new Vector2( + !Mathf.Approximately(thumb2D.fixedWidth, 0f) ? thumb2D.fixedWidth : thumb2D.padding.horizontal, + !Mathf.Approximately(thumb2D.fixedHeight, 0f) ? thumb2D.fixedHeight : thumb2D.padding.vertical + ); + } + } + + public static readonly Color masterCurveColor = new Color(1f, 1f, 1f, 2f); + public static readonly Color redCurveColor = new Color(1f, 0f, 0f, 2f); + public static readonly Color greenCurveColor = new Color(0f, 1f, 0f, 2f); + public static readonly Color blueCurveColor = new Color(0f, 1f, 1f, 2f); + #endregion + + private TonemappingColorGrading concreteTarget + { + get { return target as TonemappingColorGrading; } + } + + private static float pixelRatio + { + get + { + #if !(UNITY_3 || UNITY_4 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 || UNITY_5_3) + return EditorGUIUtility.pixelsPerPoint; + #else + return 1f; + #endif + } + } + + private bool isHistogramSupported + { + get + { + return concreteTarget.histogramComputeShader != null + && ImageEffectHelper.supportsDX11 + && concreteTarget.histogramShader != null + && concreteTarget.histogramShader.isSupported; + } + } + + private enum HistogramMode + { + Red = 0, + Green = 1, + Blue = 2, + Luminance = 3, + RGB, + } + + private HistogramMode m_HistogramMode = HistogramMode.RGB; + private Rect m_HistogramRect; + private Material m_HistogramMaterial; + private ComputeBuffer m_HistogramBuffer; + private RenderTexture m_HistogramTexture; + + // settings group + private Dictionary> m_GroupFields = new Dictionary>(); + + private void PopulateMap(FieldInfo group) + { + var searchPath = group.Name + "."; + foreach (var setting in group.FieldType.GetFields(BindingFlags.Instance | BindingFlags.Public)) + { + List settingsGroup; + if (!m_GroupFields.TryGetValue(group, out settingsGroup)) + { + settingsGroup = new List(); + m_GroupFields[group] = settingsGroup; + } + + var property = serializedObject.FindProperty(searchPath + setting.Name); + if (property != null) + settingsGroup.Add(property); + } + } + + private void OnEnable() + { + var settingsGroups = typeof(TonemappingColorGrading).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Where(x => x.GetCustomAttributes(typeof(TonemappingColorGrading.SettingsGroup), false).Any()); + + foreach (var settingGroup in settingsGroups) + PopulateMap(settingGroup); + + concreteTarget.onFrameEndEditorOnly = OnFrameEnd; + } + + private void OnDisable() + { + concreteTarget.onFrameEndEditorOnly = null; + + if (m_HistogramMaterial != null) + DestroyImmediate(m_HistogramMaterial); + + if (m_HistogramTexture != null) + DestroyImmediate(m_HistogramTexture); + + if (m_HistogramBuffer != null) + m_HistogramBuffer.Release(); + } + + private void SetLUTImportSettings(TextureImporter importer) + { + importer.textureType = TextureImporterType.Advanced; + importer.anisoLevel = 0; + importer.mipmapEnabled = false; + importer.linearTexture = true; + importer.textureFormat = TextureImporterFormat.RGB24; + importer.SaveAndReimport(); + } + + private void DrawFields() + { + foreach (var group in m_GroupFields) + { + var enabledField = group.Value.FirstOrDefault(x => x.propertyPath == group.Key.Name + ".enabled"); + var groupProperty = serializedObject.FindProperty(group.Key.Name); + + GUILayout.Space(5); + bool display = EditorGUIHelper.Header(groupProperty, enabledField); + if (!display) + continue; + + GUILayout.BeginHorizontal(); + { + GUILayout.Space(10); + GUILayout.BeginVertical(); + { + GUILayout.Space(3); + foreach (var field in group.Value.Where(x => x.propertyPath != group.Key.Name + ".enabled")) + { + // Special case for the tonemapping curve field + if (group.Key.FieldType == typeof(TonemappingColorGrading.TonemappingSettings) && + field.propertyType == SerializedPropertyType.AnimationCurve && + concreteTarget.tonemapping.tonemapper != TonemappingColorGrading.Tonemapper.Curve) + continue; + + // Special case for the neutral tonemapper + bool neutralParam = field.name.StartsWith("neutral"); + + if (group.Key.FieldType == typeof(TonemappingColorGrading.TonemappingSettings) && + concreteTarget.tonemapping.tonemapper != TonemappingColorGrading.Tonemapper.Neutral && + neutralParam) + continue; + + if (neutralParam) + EditorGUILayout.PropertyField(field, new GUIContent(ObjectNames.NicifyVariableName(field.name.Substring(7)))); + else + EditorGUILayout.PropertyField(field); + } + + // Bake button + if (group.Key.FieldType == typeof(TonemappingColorGrading.ColorGradingSettings)) + { + EditorGUI.BeginDisabledGroup(!enabledField.boolValue); + + if (GUILayout.Button("Export LUT as PNG", EditorStyles.miniButton)) + { + string path = EditorUtility.SaveFilePanelInProject("Export LUT as PNG", "LUT.png", "png", "Please enter a file name to save the LUT texture to"); + + if (!string.IsNullOrEmpty(path)) + { + Texture2D lut = concreteTarget.BakeLUT(); + + if (!concreteTarget.isGammaColorSpace) + { + var pixels = lut.GetPixels(); + + for (int i = 0; i < pixels.Length; i++) + pixels[i] = pixels[i].linear; + + lut.SetPixels(pixels); + lut.Apply(); + } + + byte[] bytes = lut.EncodeToPNG(); + System.IO.File.WriteAllBytes(path, bytes); + DestroyImmediate(lut); + + AssetDatabase.Refresh(); + TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath(path); + SetLUTImportSettings(importer); + } + } + + EditorGUI.EndDisabledGroup(); + } + } + GUILayout.EndVertical(); + } + GUILayout.EndHorizontal(); + } + } + + public override void OnInspectorGUI() + { + if (s_Styles == null) + s_Styles = new Styles(); + + serializedObject.Update(); + + GUILayout.Label("All following effects will use LDR color buffers.", EditorStyles.miniBoldLabel); + + if (concreteTarget.tonemapping.enabled) + { + Camera camera = concreteTarget.GetComponent(); + + if (camera != null && !camera.hdr) + EditorGUILayout.HelpBox("The camera is not HDR enabled. This will likely break the tonemapper.", MessageType.Warning); + else if (!concreteTarget.validRenderTextureFormat) + EditorGUILayout.HelpBox("The input to tonemapper is not in HDR. Make sure that all effects prior to this are executed in HDR.", MessageType.Warning); + } + + if (concreteTarget.lut.enabled && concreteTarget.lut.texture != null) + { + if (!concreteTarget.validUserLutSize) + { + EditorGUILayout.HelpBox("Invalid LUT size. Should be \"height = sqrt(width)\" (e.g. 256x16).", MessageType.Error); + } + else + { + // Checks import settings on the lut, offers to fix them if invalid + TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(concreteTarget.lut.texture)); + bool valid = importer.anisoLevel == 0 + && importer.mipmapEnabled == false + && importer.linearTexture == true + && (importer.textureFormat == TextureImporterFormat.RGB24 || importer.textureFormat == TextureImporterFormat.AutomaticTruecolor); + + if (!valid) + { + EditorGUILayout.HelpBox("Invalid LUT import settings.", MessageType.Warning); + + GUILayout.Space(-32); + EditorGUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Fix", GUILayout.Width(60))) + { + SetLUTImportSettings(importer); + AssetDatabase.Refresh(); + } + GUILayout.Space(8); + } + EditorGUILayout.EndHorizontal(); + GUILayout.Space(11); + } + } + } + + DrawFields(); + + serializedObject.ApplyModifiedProperties(); + } + + private static readonly GUIContent k_HistogramTitle = new GUIContent("Histogram"); + public override GUIContent GetPreviewTitle() + { + return k_HistogramTitle; + } + + public override bool HasPreviewGUI() + { + return isHistogramSupported && targets.Length == 1 && concreteTarget != null && concreteTarget.enabled; + } + + public override void OnPreviewGUI(Rect r, GUIStyle background) + { + serializedObject.Update(); + + if (Event.current.type == EventType.Repaint) + { + // If m_HistogramRect isn't set the preview was just opened so refresh the render to get the histogram data + if (m_HistogramRect.width == 0 && m_HistogramRect.height == 0) + InternalEditorUtility.RepaintAllViews(); + + // Sizing + float width = Mathf.Min(512f, r.width); + float height = Mathf.Min(128f, r.height); + m_HistogramRect = new Rect( + Mathf.Floor(r.x + r.width / 2f - width / 2f), + Mathf.Floor(r.y + r.height / 2f - height / 2f), + width, height + ); + + if (m_HistogramTexture != null) + GUI.DrawTexture(m_HistogramRect, m_HistogramTexture); + } + + // Toolbar + GUILayout.BeginHorizontal(); + EditorGUI.BeginChangeCheck(); + { + concreteTarget.histogramRefreshOnPlay = GUILayout.Toggle(concreteTarget.histogramRefreshOnPlay, new GUIContent("Refresh on Play", "Keep refreshing the histogram in play mode; this may impact performances."), EditorStyles.miniButton); + GUILayout.FlexibleSpace(); + m_HistogramMode = (HistogramMode)EditorGUILayout.EnumPopup(m_HistogramMode); + } + GUILayout.EndHorizontal(); + + serializedObject.ApplyModifiedProperties(); + + if (EditorGUI.EndChangeCheck()) + InternalEditorUtility.RepaintAllViews(); + } + + private void OnFrameEnd(RenderTexture source) + { + if (Application.isPlaying && !concreteTarget.histogramRefreshOnPlay) + return; + + if (Mathf.Approximately(m_HistogramRect.width, 0) || Mathf.Approximately(m_HistogramRect.height, 0) || !isHistogramSupported) + return; + + // No need to process the full frame to get an histogram, resize the input to a max-size of 512 + int rw = Mathf.Min(Mathf.Max(source.width, source.height), 512); + RenderTexture rt = RenderTexture.GetTemporary(rw, rw, 0); + Graphics.Blit(source, rt); + UpdateHistogram(rt, m_HistogramRect, m_HistogramMode); + Repaint(); + RenderTexture.ReleaseTemporary(rt); + RenderTexture.active = null; + } + + private static readonly int[] k_EmptyBuffer = new int[256 << 2]; + void UpdateHistogram(RenderTexture source, Rect rect, HistogramMode mode) + { + if (m_HistogramMaterial == null) + m_HistogramMaterial = ImageEffectHelper.CheckShaderAndCreateMaterial(concreteTarget.histogramShader); + + if (m_HistogramBuffer == null) + m_HistogramBuffer = new ComputeBuffer(256, sizeof(uint) << 2); + + m_HistogramBuffer.SetData(k_EmptyBuffer); + + ComputeShader cs = concreteTarget.histogramComputeShader; + + int kernel = cs.FindKernel("KHistogramGather"); + cs.SetBuffer(kernel, "_Histogram", m_HistogramBuffer); + cs.SetTexture(kernel, "_Source", source); + + int[] channels = null; + switch (mode) + { + case HistogramMode.Luminance: + channels = new[] { 0, 0, 0, 1 }; + break; + case HistogramMode.RGB: + channels = new[] { 1, 1, 1, 0 }; + break; + case HistogramMode.Red: + channels = new[] { 1, 0, 0, 0 }; + break; + case HistogramMode.Green: + channels = new[] { 0, 1, 0, 0 }; + break; + case HistogramMode.Blue: + channels = new[] { 0, 0, 1, 0 }; + break; + } + + cs.SetInts("_Channels", channels); + cs.SetInt("_IsLinear", concreteTarget.isGammaColorSpace ? 0 : 1); + cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 32f), Mathf.CeilToInt(source.height / 32f), 1); + + kernel = cs.FindKernel("KHistogramScale"); + cs.SetBuffer(kernel, "_Histogram", m_HistogramBuffer); + cs.SetFloat("_Height", rect.height); + cs.Dispatch(kernel, 1, 1, 1); + + if (m_HistogramTexture == null) + { + DestroyImmediate(m_HistogramTexture); + m_HistogramTexture = new RenderTexture((int)rect.width, (int)rect.height, 0, RenderTextureFormat.ARGB32); + m_HistogramTexture.hideFlags = HideFlags.HideAndDontSave; + } + + m_HistogramMaterial.SetBuffer("_Histogram", m_HistogramBuffer); + m_HistogramMaterial.SetVector("_Size", new Vector2(m_HistogramTexture.width, m_HistogramTexture.height)); + m_HistogramMaterial.SetColor("_ColorR", redCurveColor); + m_HistogramMaterial.SetColor("_ColorG", greenCurveColor); + m_HistogramMaterial.SetColor("_ColorB", blueCurveColor); + m_HistogramMaterial.SetColor("_ColorL", masterCurveColor); + m_HistogramMaterial.SetInt("_Channel", (int)mode); + Graphics.Blit(m_HistogramTexture, m_HistogramTexture, m_HistogramMaterial, (mode == HistogramMode.RGB) ? 1 : 0); + } + + public static class ColorWheel + { + // Constants + private const float PI_2 = Mathf.PI / 2f; + private const float PI2 = Mathf.PI * 2f; + + // hue Wheel + private static Texture2D s_WheelTexture; + private static float s_LastDiameter; + private static GUIStyle s_CenteredStyle; + + public static Color DoGUI(Rect area, string title, Color color, float diameter) + { + var labelrect = area; + labelrect.height = EditorGUIUtility.singleLineHeight; + + if (s_CenteredStyle == null) + { + s_CenteredStyle = new GUIStyle(GUI.skin.GetStyle("Label")) + { + alignment = TextAnchor.UpperCenter + }; + } + + GUI.Label(labelrect, title, s_CenteredStyle); + + // Figure out the wheel draw area + var wheelDrawArea = area; + wheelDrawArea.y += EditorGUIUtility.singleLineHeight; + wheelDrawArea.height = diameter; + + if (wheelDrawArea.width > wheelDrawArea.height) + { + wheelDrawArea.x += (wheelDrawArea.width - wheelDrawArea.height) / 2.0f; + wheelDrawArea.width = area.height; + } + + wheelDrawArea.width = wheelDrawArea.height; + + var radius = diameter / 2.0f; + Vector3 hsv; + Color.RGBToHSV(color, out hsv.x, out hsv.y, out hsv.z); + + // Retina/HDPI screens handling + wheelDrawArea.width /= pixelRatio; + wheelDrawArea.height /= pixelRatio; + float scaledRadius = radius / pixelRatio; + + if (Event.current.type == EventType.Repaint) + { + if (!Mathf.Approximately(diameter, s_LastDiameter)) + { + s_LastDiameter = diameter; + UpdateHueWheel((int)diameter); + } + + // Wheel + GUI.DrawTexture(wheelDrawArea, s_WheelTexture); + + // Thumb + Vector2 thumbPos = Vector2.zero; + float theta = hsv.x * PI2; + float len = hsv.y * scaledRadius; + thumbPos.x = Mathf.Cos(theta + PI_2); + thumbPos.y = Mathf.Sin(theta - PI_2); + thumbPos *= len; + Vector2 thumbSize = s_Styles.thumb2DSize; + Color oldColor = GUI.color; + GUI.color = Color.black; + Vector2 thumbSizeH = thumbSize / 2f; + Handles.color = Color.white; + Handles.DrawAAPolyLine(new Vector2(wheelDrawArea.x + scaledRadius + thumbSizeH.x, wheelDrawArea.y + scaledRadius + thumbSizeH.y), new Vector2(wheelDrawArea.x + scaledRadius + thumbPos.x, wheelDrawArea.y + scaledRadius + thumbPos.y)); + s_Styles.thumb2D.Draw(new Rect(wheelDrawArea.x + scaledRadius + thumbPos.x - thumbSizeH.x, wheelDrawArea.y + scaledRadius + thumbPos.y - thumbSizeH.y, thumbSize.x, thumbSize.y), false, false, false, false); + GUI.color = oldColor; + } + hsv = GetInput(wheelDrawArea, hsv, scaledRadius); + + var sliderDrawArea = wheelDrawArea; + sliderDrawArea.y = sliderDrawArea.yMax; + sliderDrawArea.height = EditorGUIUtility.singleLineHeight; + + hsv.y = GUI.HorizontalSlider(sliderDrawArea, hsv.y, 1e-04f, 1f); + color = Color.HSVToRGB(hsv.x, hsv.y, hsv.z); + return color; + } + + private static readonly int k_ThumbHash = "colorWheelThumb".GetHashCode(); + + private static Vector3 GetInput(Rect bounds, Vector3 hsv, float radius) + { + Event e = Event.current; + var id = GUIUtility.GetControlID(k_ThumbHash, FocusType.Passive, bounds); + + Vector2 mousePos = e.mousePosition; + Vector2 relativePos = mousePos - new Vector2(bounds.x, bounds.y); + + if (e.type == EventType.MouseDown && e.button == 0 && GUIUtility.hotControl == 0) + { + if (bounds.Contains(mousePos)) + { + Vector2 center = new Vector2(bounds.x + radius, bounds.y + radius); + float dist = Vector2.Distance(center, mousePos); + + if (dist <= radius) + { + e.Use(); + GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y); + GUIUtility.hotControl = id; + } + } + } + else if (e.type == EventType.MouseDrag && e.button == 0 && GUIUtility.hotControl == id) + { + Vector2 center = new Vector2(bounds.x + radius, bounds.y + radius); + float dist = Vector2.Distance(center, mousePos); + + if (dist <= radius) + { + e.Use(); + GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y); + } + } + else if (e.type == EventType.MouseUp && e.button == 0 && GUIUtility.hotControl == id) + { + e.Use(); + GUIUtility.hotControl = 0; + } + + return hsv; + } + + private static void GetWheelHueSaturation(float x, float y, float radius, out float hue, out float saturation) + { + float dx = (x - radius) / radius; + float dy = (y - radius) / radius; + float d = Mathf.Sqrt(dx * dx + dy * dy); + hue = Mathf.Atan2(dx, -dy); + hue = 1f - ((hue > 0) ? hue : PI2 + hue) / PI2; + saturation = Mathf.Clamp01(d); + } + + private static void UpdateHueWheel(int diameter) + { + CleanTexture(s_WheelTexture); + s_WheelTexture = MakeTexture(diameter); + + var radius = diameter / 2.0f; + + Color[] pixels = s_WheelTexture.GetPixels(); + + for (int y = 0; y < diameter; y++) + { + for (int x = 0; x < diameter; x++) + { + int index = y * diameter + x; + float dx = (x - radius) / radius; + float dy = (y - radius) / radius; + float d = Mathf.Sqrt(dx * dx + dy * dy); + + // Out of the wheel, early exit + if (d >= 1f) + { + pixels[index] = new Color(0f, 0f, 0f, 0f); + continue; + } + + // red (0) on top, counter-clockwise (industry standard) + float saturation = d; + float hue = Mathf.Atan2(dx, dy); + hue = 1f - ((hue > 0) ? hue : PI2 + hue) / PI2; + Color color = Color.HSVToRGB(hue, saturation, 1f); + + // Quick & dirty antialiasing + color.a = (saturation > 0.99) ? (1f - saturation) * 100f : 1f; + + pixels[index] = color; + } + } + + s_WheelTexture.SetPixels(pixels); + s_WheelTexture.Apply(); + } + + private static Texture2D MakeTexture(int dimension) + { + return new Texture2D(dimension, dimension, TextureFormat.ARGB32, false, true) + { + filterMode = FilterMode.Point, + wrapMode = TextureWrapMode.Clamp, + hideFlags = HideFlags.HideAndDontSave, + alphaIsTransparency = true + }; + } + + private static void CleanTexture(Texture2D texture) + { + if (texture != null) + DestroyImmediate(texture); + } + + public static float GetColorWheelHeight(int renderSizePerWheel) + { + // wheel height + title label + alpha slider + return renderSizePerWheel + 2 * EditorGUIUtility.singleLineHeight; + } + } + } +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs.meta new file mode 100644 index 0000000..20e2686 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Editor/TonemappingColorGradingEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 64bb64b30a05a0d4b8afe58a356fc8fb +timeCreated: 1441354689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Helpers.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers.meta new file mode 100644 index 0000000..ca560cb --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 54915b6fdd14fd042add2d153a8b892d +folderAsset: yes +timeCreated: 1454073138 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png new file mode 100644 index 0000000..0e4bda4 Binary files /dev/null and b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png differ diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png.meta new file mode 100644 index 0000000..45ff902 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT16.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 36c322ded1667bc4a867aea5e662c51b +timeCreated: 1454073156 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png new file mode 100644 index 0000000..b8724d4 Binary files /dev/null and b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png differ diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png.meta new file mode 100644 index 0000000..af95d9b --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Helpers/NeutralLUT32.png.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 6ac6980bae76ac241971e97191b6c30c +timeCreated: 1454073159 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: 3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Resources.meta new file mode 100644 index 0000000..8d2bef2 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 710c12a933657234f859808d82c5dd8b +folderAsset: yes +timeCreated: 1453901184 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute new file mode 100644 index 0000000..0e45d61 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute @@ -0,0 +1,85 @@ +#include "UnityCG.cginc" + +RWStructuredBuffer _Histogram; +Texture2D _Source; + +CBUFFER_START (Params) + uint4 _Channels; + uint _IsLinear; + float _Height; +CBUFFER_END + +// Gathering pass +groupshared uint4 gs_histogram[256]; + +#pragma kernel KHistogramGather +[numthreads(32,32,1)] // Needs at least 256 threads per group +void KHistogramGather(uint3 id : SV_DispatchThreadID, uint3 _group_thread_id : SV_GroupThreadID) +{ + const uint thread_id = _group_thread_id.y * 32 + _group_thread_id.x; + + if (thread_id < 256) + gs_histogram[thread_id] = uint4(0, 0, 0, 0); + + uint sw, sh; + _Source.GetDimensions(sw, sh); + + GroupMemoryBarrierWithGroupSync(); + + if (id.x < sw && id.y < sh) + { + // We want a gamma histogram (like Photoshop & all) + float3 color = saturate(_Source[id.xy].xyz); + if (_IsLinear > 0) + color = LinearToGammaSpace(color); + + // Convert color & luminance to histogram bin + uint3 idx_c = (uint3)(round(color * 255.0)); + uint idx_l = (uint)(round(dot(color.rgb, float3(0.2126, 0.7152, 0.0722)) * 255.0)); + + // Fill the group shared histogram + if (_Channels.r > 0) InterlockedAdd(gs_histogram[idx_c.x].x, 1); // Red + if (_Channels.g > 0) InterlockedAdd(gs_histogram[idx_c.y].y, 1); // Green + if (_Channels.b > 0) InterlockedAdd(gs_histogram[idx_c.z].z, 1); // Blue + if (_Channels.a > 0) InterlockedAdd(gs_histogram[idx_l].w, 1); // Luminance + } + + GroupMemoryBarrierWithGroupSync(); + + // Merge + if (thread_id < 256) + { + uint4 h = gs_histogram[thread_id]; + InterlockedAdd(_Histogram[thread_id].x, h.x); // Red + InterlockedAdd(_Histogram[thread_id].y, h.y); // Green + InterlockedAdd(_Histogram[thread_id].z, h.z); // Blue + InterlockedAdd(_Histogram[thread_id].w, h.w); // Luminance + } +} + +// Scaling pass +groupshared uint4 gs_pyramid[256]; + +#pragma kernel KHistogramScale +[numthreads(16,16,1)] +void KHistogramScale(uint3 _group_thread_id : SV_GroupThreadID) +{ + const uint thread_id = _group_thread_id.y * 16 + _group_thread_id.x; + gs_pyramid[thread_id] = _Histogram[thread_id]; + + GroupMemoryBarrierWithGroupSync(); + + // Parallel reduction to find the max value + [unroll] + for(uint i = 256 >> 1; i > 0; i >>= 1) + { + if(thread_id < i) + gs_pyramid[thread_id] = max(gs_pyramid[thread_id], gs_pyramid[thread_id + i]); + + GroupMemoryBarrierWithGroupSync(); + } + + // Actual scaling + float4 factor = _Height / (float4)gs_pyramid[0]; + _Histogram[thread_id] = (uint4)round(_Histogram[thread_id] * factor); +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute.meta new file mode 100644 index 0000000..e276c48 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramCompute.compute.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5ee4b74fa28a3e74e89423dd49705fc5 +timeCreated: 1436170077 +licenseType: Free +ComputeShaderImporter: + currentBuildTarget: 5 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader new file mode 100644 index 0000000..c78673c --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader @@ -0,0 +1,104 @@ +Shader "Hidden/TonemappingColorGradingHistogram" +{ + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGINCLUDE + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 5.0 + #include "UnityCG.cginc" + + struct v_data + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + StructuredBuffer _Histogram; + float2 _Size; + uint _Channel; + float4 _ColorR; + float4 _ColorG; + float4 _ColorB; + float4 _ColorL; + + v_data vert(appdata_img v) + { + v_data o; + o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.uv = v.texcoord; + return o; + } + + float4 frag_channel(v_data i) : SV_Target + { + const float4 COLORS[4] = { _ColorR, _ColorG, _ColorB, _ColorL }; + + float remapI = i.uv.x * 255.0; + uint index = floor(remapI); + float delta = frac(remapI); + float v1 = _Histogram[index][_Channel]; + float v2 = _Histogram[min(index + 1, 255)][_Channel]; + float h = v1 * (1.0 - delta) + v2 * delta; + uint y = (uint)round(i.uv.y * _Size.y); + + float4 color = float4(0.0, 0.0, 0.0, 0.0); + float fill = step(y, h); + color = lerp(color, COLORS[_Channel], fill); + return color; + } + + float4 frag_rgb(v_data i) : SV_Target + { + const float4 COLORS[3] = { _ColorR, _ColorG, _ColorB }; + + float4 targetColor = float4(0.0, 0.0, 0.0, 0.0); + float4 emptyColor = float4(0.0, 0.0, 0.0, 0.0); + float fill = 0; + + for (int j = 0; j < 3; j++) + { + float remapI = i.uv.x * 255.0; + uint index = floor(remapI); + float delta = frac(remapI); + float v1 = _Histogram[index][j]; + float v2 = _Histogram[min(index + 1, 255)][j]; + float h = v1 * (1.0 - delta) + v2 * delta; + uint y = (uint)round(i.uv.y * _Size.y); + float fill = step(y, h); + float4 color = lerp(emptyColor, COLORS[j], fill); + targetColor += color; + } + + return saturate(targetColor); + } + + ENDCG + + // (0) Channel + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag_channel + + ENDCG + } + + // (1) RGB + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag_rgb + + ENDCG + } + } + FallBack off +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader.meta new file mode 100644 index 0000000..5d62a23 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/HistogramRender.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9a8e838691462194482a43a02e424876 +timeCreated: 1436173774 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc new file mode 100644 index 0000000..15d952c --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc @@ -0,0 +1,246 @@ +#include "UnityCG.cginc" + +sampler2D _MainTex; +half4 _MainTex_TexelSize; + +half _Exposure; +half _ToneCurveRange; +sampler2D _ToneCurve; +half4 _NeutralTonemapperParams1; +half4 _NeutralTonemapperParams2; + +sampler2D _LutTex; +half4 _LutParams; + +sampler2D _LumTex; +half _AdaptationSpeed; +half _MiddleGrey; +half _AdaptationMin; +half _AdaptationMax; + +inline half LinToPerceptual(half3 color) +{ + half lum = Luminance(color); + return log(max(lum, 0.001)); +} + +inline half PerceptualToLin(half f) +{ + return exp(f); +} + +half4 frag_log(v2f_img i) : SV_Target +{ + half sum = 0.0; + sum += LinToPerceptual(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1,-1)).rgb); + sum += LinToPerceptual(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2( 1, 1)).rgb); + sum += LinToPerceptual(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1, 1)).rgb); + sum += LinToPerceptual(tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2( 1,-1)).rgb); + half avg = sum / 4.0; + return half4(avg, avg, avg, avg); +} + +half4 frag_exp(v2f_img i) : SV_Target +{ + half sum = 0.0; + sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1,-1)).x; + sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2( 1, 1)).x; + sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2( 1,-1)).x; + sum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * half2(-1, 1)).x; + half avg = PerceptualToLin(sum / 4.0); + return half4(avg, avg, avg, saturate(0.0125 * _AdaptationSpeed)); +} + +half3 apply_lut(sampler2D tex, half3 uv, half3 scaleOffset) +{ + uv.z *= scaleOffset.z; + half shift = floor(uv.z); + uv.xy = uv.xy * scaleOffset.z * scaleOffset.xy + 0.5 * scaleOffset.xy; + uv.x += shift * scaleOffset.y; + uv.xyz = lerp(tex2D(tex, uv.xy).rgb, tex2D(tex, uv.xy + half2(scaleOffset.y, 0)).rgb, uv.z - shift); + return uv; +} + +half3 ToCIE(half3 color) +{ + // RGB -> XYZ conversion + // http://www.w3.org/Graphics/Color/sRGB + // The official sRGB to XYZ conversion matrix is (following ITU-R BT.709) + // 0.4125 0.3576 0.1805 + // 0.2126 0.7152 0.0722 + // 0.0193 0.1192 0.9505 + half3x3 RGB2XYZ = { 0.5141364, 0.3238786, 0.16036376, 0.265068, 0.67023428, 0.06409157, 0.0241188, 0.1228178, 0.84442666 }; + half3 XYZ = mul(RGB2XYZ, color.rgb); + + // XYZ -> Yxy conversion + half3 Yxy; + Yxy.r = XYZ.g; + half temp = dot(half3(1.0, 1.0, 1.0), XYZ.rgb); + Yxy.gb = XYZ.rg / temp; + return Yxy; +} + +half3 FromCIE(half3 Yxy) +{ + // Yxy -> XYZ conversion + half3 XYZ; + XYZ.r = Yxy.r * Yxy.g / Yxy.b; + XYZ.g = Yxy.r; + + // Copy luminance Y + XYZ.b = Yxy.r * (1 - Yxy.g - Yxy.b) / Yxy.b; + + // XYZ -> RGB conversion + // The official XYZ to sRGB conversion matrix is (following ITU-R BT.709) + // 3.2410 -1.5374 -0.4986 + // -0.9692 1.8760 0.0416 + // 0.0556 -0.2040 1.0570 + half3x3 XYZ2RGB = { 2.5651, -1.1665, -0.3986, -1.0217, 1.9777, 0.0439, 0.0753, -0.2543, 1.1892 }; + return mul(XYZ2RGB, XYZ); +} + +half3 tonemapACES(half3 color) +{ + color *= _Exposure; + + // See https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + const half a = 2.51; + const half b = 0.03; + const half c = 2.43; + const half d = 0.59; + const half e = 0.14; + return saturate((color * (a * color + b)) / (color * (c * color + d) + e)); +} + +half3 tonemapPhotographic(half3 color) +{ + color *= _Exposure; + return 1.0 - exp2(-color); +} + +half3 tonemapHable(half3 color) +{ + const half a = 0.15; + const half b = 0.50; + const half c = 0.10; + const half d = 0.20; + const half e = 0.02; + const half f = 0.30; + const half w = 11.2; + + color *= _Exposure * 2.0; + half3 curr = ((color * (a * color + c * b) + d * e) / (color * (a * color + b) + d * f)) - e / f; + color = w; + half3 whiteScale = 1.0 / (((color * (a * color + c * b) + d * e) / (color * (a * color + b) + d * f)) - e / f); + return curr * whiteScale; +} + +half3 tonemapHejlDawson(half3 color) +{ + const half a = 6.2; + const half b = 0.5; + const half c = 1.7; + const half d = 0.06; + + color *= _Exposure; + color = max((0.0).xxx, color - (0.004).xxx); + color = (color * (a * color + b)) / (color * (a * color + c) + d); + return color * color; +} + +half3 tonemapReinhard(half3 color) +{ + half lum = Luminance(color); + half lumTm = lum * _Exposure; + half scale = lumTm / (1.0 + lumTm); + return color * scale / lum; +} + +half3 tonemapCurve(half3 color) +{ + color *= _Exposure; + half3 cie = ToCIE(color); + half newLum = tex2D(_ToneCurve, half2(cie.r * _ToneCurveRange, 0.5)).r; + cie.r = newLum; + return FromCIE(cie); +} + +half3 neutralCurve(half3 x, half a, half b, half c, half d, half e, half f) +{ + return ((x * (a * x + c * b) + d * e) / (x * (a * x + b) + d * f)) - e / f; +} + +half3 tonemapNeutral(half3 color) +{ + color *= _Exposure; + + // Tonemap + half a = _NeutralTonemapperParams1.x; + half b = _NeutralTonemapperParams1.y; + half c = _NeutralTonemapperParams1.z; + half d = _NeutralTonemapperParams1.w; + half e = _NeutralTonemapperParams2.x; + half f = _NeutralTonemapperParams2.y; + half whiteLevel = _NeutralTonemapperParams2.z; + half whiteClip = _NeutralTonemapperParams2.w; + + half3 whiteScale = (1.0).xxx / neutralCurve(whiteLevel, a, b, c, d, e, f); + color = neutralCurve(color * whiteScale, a, b, c, d, e, f); + color *= whiteScale; + + // Post-curve white point adjustment + color = color / whiteClip.xxx; + + return color; +} + +half4 frag_tcg(v2f_img i) : SV_Target +{ + half4 color = tex2D(_MainTex, i.uv); + +#if GAMMA_COLORSPACE + color.rgb = GammaToLinearSpace(color.rgb); +#endif + +#if ENABLE_EYE_ADAPTATION + // Fast eye adaptation + half avg_luminance = tex2D(_LumTex, i.uv).x; + half linear_exposure = _MiddleGrey / avg_luminance; + color.rgb *= max(_AdaptationMin, min(_AdaptationMax, linear_exposure)); +#endif + +#if defined(TONEMAPPING_ACES) + color.rgb = tonemapACES(color.rgb); +#elif defined(TONEMAPPING_CURVE) + color.rgb = tonemapCurve(color.rgb); +#elif defined(TONEMAPPING_HABLE) + color.rgb = tonemapHable(color.rgb); +#elif defined(TONEMAPPING_HEJL_DAWSON) + color.rgb = tonemapHejlDawson(color.rgb); +#elif defined(TONEMAPPING_PHOTOGRAPHIC) + color.rgb = tonemapPhotographic(color.rgb); +#elif defined(TONEMAPPING_REINHARD) + color.rgb = tonemapReinhard(color.rgb); +#elif defined(TONEMAPPING_NEUTRAL) + color.rgb = tonemapNeutral(color.rgb); +#endif + +#if ENABLE_COLOR_GRADING + // LUT color grading + half3 color_corrected = apply_lut(_LutTex, saturate(color.rgb), _LutParams.xyz); + color.rgb = lerp(color.rgb, color_corrected, _LutParams.w); +#endif + +#if ENABLE_DITHERING + // Interleaved Gradient Noise from http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare (slide 122) + half3 magic = float3(0.06711056, 0.00583715, 52.9829189); + half gradient = frac(magic.z * frac(dot(i.uv / _MainTex_TexelSize, magic.xy))) / 255.0; + color.rgb -= gradient.xxx; +#endif + +#if GAMMA_COLORSPACE + color.rgb = LinearToGammaSpace(color.rgb); +#endif + + return color; +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc.meta new file mode 100644 index 0000000..30c5736 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a7e68b07525bc7f459ff03bf6cba782a +timeCreated: 1453723607 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader new file mode 100644 index 0000000..e25240c --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader @@ -0,0 +1,304 @@ +Shader "Hidden/TonemappingColorGrading" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + + CGINCLUDE + + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // Lut generator + Pass + { + CGPROGRAM + + #pragma fragment frag_lut_gen + #include "TonemappingColorGrading.cginc" + + sampler2D _UserLutTex; + half4 _UserLutParams; + + half3 _WhiteBalance; + half3 _Lift; + half3 _Gamma; + half3 _Gain; + half3 _ContrastGainGamma; + half _Vibrance; + half3 _HSV; + half3 _ChannelMixerRed; + half3 _ChannelMixerGreen; + half3 _ChannelMixerBlue; + sampler2D _CurveTex; + half _Contribution; + + static const half3x3 LIN_2_LMS_MAT = { + 3.90405e-1, 5.49941e-1, 8.92632e-3, + 7.08416e-2, 9.63172e-1, 1.35775e-3, + 2.31082e-2, 1.28021e-1, 9.36245e-1 + }; + + static const half3x3 LMS_2_LIN_MAT = { + 2.85847e+0, -1.62879e+0, -2.48910e-2, + -2.10182e-1, 1.15820e+0, 3.24281e-4, + -4.18120e-2, -1.18169e-1, 1.06867e+0 + }; + + half3 rgb_to_hsv(half3 c) + { + half4 K = half4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + half4 p = lerp(half4(c.bg, K.wz), half4(c.gb, K.xy), step(c.b, c.g)); + half4 q = lerp(half4(p.xyw, c.r), half4(c.r, p.yzx), step(p.x, c.r)); + half d = q.x - min(q.w, q.y); + half e = 1.0e-4; + return half3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); + } + + half3 hsv_to_rgb(half3 c) + { + half4 K = half4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + half3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * lerp(K.xxx, saturate(p - K.xxx), c.y); + } + + // CG's fmod() is not the same as GLSL's mod() with negative values, we'll use our own + inline half gmod(half x, half y) + { + return x - y * floor(x / y); + } + + half4 frag_lut_gen(v2f_img i) : SV_Target + { + half3 neutral_lut = tex2D(_MainTex, i.uv).rgb; + half3 final_lut = neutral_lut; + + // User lut + contrib + half3 user_luted = apply_lut(_UserLutTex, final_lut, _UserLutParams.xyz); + final_lut = lerp(final_lut, user_luted, _UserLutParams.w); + + // White balance + half3 lms = mul(LIN_2_LMS_MAT, final_lut); + lms *= _WhiteBalance; + final_lut = mul(LMS_2_LIN_MAT, lms); + + // Lift/gamma/gain + final_lut = _Gain * (_Lift * (1.0 - final_lut) + pow(final_lut, _Gamma)); + final_lut = max(final_lut, 0.0); + + // Hue/saturation/value + half3 hsv = rgb_to_hsv(final_lut); + hsv.x = gmod(hsv.x + _HSV.x, 1.0); + hsv.yz *= _HSV.yz; + final_lut = saturate(hsv_to_rgb(hsv)); + + // Vibrance + half sat = max(final_lut.r, max(final_lut.g, final_lut.b)) - min(final_lut.r, min(final_lut.g, final_lut.b)); + final_lut = lerp(Luminance(final_lut).xxx, final_lut, (1.0 + (_Vibrance * (1.0 - (sign(_Vibrance) * sat))))); + + // Contrast + final_lut = saturate((final_lut - 0.5) * _ContrastGainGamma.x + 0.5); + + // Gain + half f = pow(2.0, _ContrastGainGamma.y) * 0.5; + final_lut = (final_lut < 0.5) ? pow(final_lut, _ContrastGainGamma.y) * f : 1.0 - pow(1.0 - final_lut, _ContrastGainGamma.y) * f; + + // Gamma + final_lut = pow(final_lut, _ContrastGainGamma.z); + + // Color mixer + final_lut = half3( + dot(final_lut, _ChannelMixerRed), + dot(final_lut, _ChannelMixerGreen), + dot(final_lut, _ChannelMixerBlue) + ); + + // Curves + half mr = tex2D(_CurveTex, half2(final_lut.r, 0.5)).a; + half mg = tex2D(_CurveTex, half2(final_lut.g, 0.5)).a; + half mb = tex2D(_CurveTex, half2(final_lut.b, 0.5)).a; + final_lut = half3(mr, mg, mb); + half r = tex2D(_CurveTex, half2(final_lut.r, 0.5)).r; + half g = tex2D(_CurveTex, half2(final_lut.g, 0.5)).g; + half b = tex2D(_CurveTex, half2(final_lut.b, 0.5)).b; + final_lut = half3(r, g, b); + + return half4(final_lut, 1.0); + } + + ENDCG + } + + // The three following passes are used to get an average log luminance using a downsample pyramid + Pass + { + CGPROGRAM + #pragma fragment frag_log + #include "TonemappingColorGrading.cginc" + ENDCG + } + + Pass + { + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma fragment frag_exp + #include "TonemappingColorGrading.cginc" + ENDCG + } + + Pass + { + Blend Off + + CGPROGRAM + #pragma fragment frag_exp + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping off + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (ACES) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_ACES + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Curve) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_CURVE + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Hable) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_HABLE + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Hejl-Dawson) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_HEJL_DAWSON + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Photographic) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_PHOTOGRAPHIC + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Reinhard) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_REINHARD + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Tonemapping (Neutral Hejl/Habble) + Pass + { + CGPROGRAM + #pragma multi_compile __ GAMMA_COLORSPACE + #pragma multi_compile __ ENABLE_COLOR_GRADING + #pragma multi_compile __ ENABLE_EYE_ADAPTATION + #pragma multi_compile __ ENABLE_DITHERING + #pragma fragment frag_tcg + #define TONEMAPPING_NEUTRAL + #include "TonemappingColorGrading.cginc" + ENDCG + } + + // Eye adaptation debug slider + Pass + { + CGPROGRAM + #pragma fragment frag_debug + #include "TonemappingColorGrading.cginc" + + half4 frag_debug(v2f_img i) : SV_Target + { + half lum = tex2D(_MainTex, i.uv).r; + half grey = i.uv.x; + + int lum_px = floor(256.0 * lum); + int g_px = floor(256.0 * grey); + + half3 color = half3(grey, grey, grey); + color = lerp(color, half3(1.0, 0.0, 0.0), lum_px == g_px); + + return half4(color, 1.0); + } + ENDCG + } + } +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader.meta b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader.meta new file mode 100644 index 0000000..02d46ec --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/Resources/TonemappingColorGrading.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 964b34bbab7f5e64fa40f37eaccac1ad +timeCreated: 1435513939 +licenseType: Free +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs b/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs new file mode 100644 index 0000000..ff50805 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs @@ -0,0 +1,1078 @@ +namespace UnityStandardAssets.CinematicEffects +{ + using UnityEngine; + using UnityEngine.Events; + using System; + + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Image Effects/Cinematic/Tonemapping and Color Grading")] +#if UNITY_5_4_OR_NEWER + [ImageEffectAllowedInSceneView] +#endif + public class TonemappingColorGrading : MonoBehaviour + { + + // EDITOR ONLY call for allowing the editor to update the histogram + public UnityAction onFrameEndEditorOnly; + + [SerializeField] + private ComputeShader m_HistogramComputeShader; + public ComputeShader histogramComputeShader + { + get + { + if (m_HistogramComputeShader == null) + m_HistogramComputeShader = Resources.Load("HistogramCompute"); + + return m_HistogramComputeShader; + } + } + + [SerializeField] + private Shader m_HistogramShader; + public Shader histogramShader + { + get + { + if (m_HistogramShader == null) + m_HistogramShader = Shader.Find("Hidden/TonemappingColorGradingHistogram"); + + return m_HistogramShader; + } + } + + [SerializeField] + public bool histogramRefreshOnPlay = true; + + #region Attributes + [AttributeUsage(AttributeTargets.Field)] + public class SettingsGroup : Attribute + {} + + public class IndentedGroup : PropertyAttribute + {} + + public class ChannelMixer : PropertyAttribute + {} + + public class ColorWheelGroup : PropertyAttribute + { + public int minSizePerWheel = 60; + public int maxSizePerWheel = 150; + + public ColorWheelGroup() + {} + + public ColorWheelGroup(int minSizePerWheel, int maxSizePerWheel) + { + this.minSizePerWheel = minSizePerWheel; + this.maxSizePerWheel = maxSizePerWheel; + } + } + + public class Curve : PropertyAttribute + { + public Color color = Color.white; + + public Curve() + {} + + public Curve(float r, float g, float b, float a) // Can't pass a struct in an attribute + { + color = new Color(r, g, b, a); + } + } + #endregion + + #region Settings + [Serializable] + public struct EyeAdaptationSettings + { + public bool enabled; + + [Min(0f), Tooltip("Midpoint Adjustment.")] + public float middleGrey; + + [Tooltip("The lowest possible exposure value; adjust this value to modify the brightest areas of your level.")] + public float min; + + [Tooltip("The highest possible exposure value; adjust this value to modify the darkest areas of your level.")] + public float max; + + [Min(0f), Tooltip("Speed of linear adaptation. Higher is faster.")] + public float speed; + + [Tooltip("Displays a luminosity helper in the GameView.")] + public bool showDebug; + + public static EyeAdaptationSettings defaultSettings + { + get + { + return new EyeAdaptationSettings + { + enabled = false, + showDebug = false, + middleGrey = 0.5f, + min = -3f, + max = 3f, + speed = 1.5f + }; + } + } + } + + public enum Tonemapper + { + ACES, + Curve, + Hable, + HejlDawson, + Photographic, + Reinhard, + Neutral + } + + [Serializable] + public struct TonemappingSettings + { + public bool enabled; + + [Tooltip("Tonemapping technique to use. ACES is the recommended one.")] + public Tonemapper tonemapper; + + [Min(0f), Tooltip("Adjusts the overall exposure of the scene.")] + public float exposure; + + [Tooltip("Custom tonemapping curve.")] + public AnimationCurve curve; + + // Neutral settings + [Range(-0.1f, 0.1f)] + public float neutralBlackIn; + + [Range(1f, 20f)] + public float neutralWhiteIn; + + [Range(-0.09f, 0.1f)] + public float neutralBlackOut; + + [Range(1f, 19f)] + public float neutralWhiteOut; + + [Range(0.1f, 20f)] + public float neutralWhiteLevel; + + [Range(1f, 10f)] + public float neutralWhiteClip; + + public static TonemappingSettings defaultSettings + { + get + { + return new TonemappingSettings + { + enabled = false, + tonemapper = Tonemapper.Neutral, + exposure = 1f, + curve = CurvesSettings.defaultCurve, + neutralBlackIn = 0.02f, + neutralWhiteIn = 10f, + neutralBlackOut = 0f, + neutralWhiteOut = 10f, + neutralWhiteLevel = 5.3f, + neutralWhiteClip = 10f + }; + } + } + } + + [Serializable] + public struct LUTSettings + { + public bool enabled; + + [Tooltip("Custom lookup texture (strip format, e.g. 256x16).")] + public Texture texture; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float contribution; + + public static LUTSettings defaultSettings + { + get + { + return new LUTSettings + { + enabled = false, + texture = null, + contribution = 1f + }; + } + } + } + + [Serializable] + public struct ColorWheelsSettings + { + [ColorUsage(false)] + public Color shadows; + + [ColorUsage(false)] + public Color midtones; + + [ColorUsage(false)] + public Color highlights; + + public static ColorWheelsSettings defaultSettings + { + get + { + return new ColorWheelsSettings + { + shadows = Color.white, + midtones = Color.white, + highlights = Color.white + }; + } + } + } + + [Serializable] + public struct BasicsSettings + { + [Range(-2f, 2f), Tooltip("Sets the white balance to a custom color temperature.")] + public float temperatureShift; + + [Range(-2f, 2f), Tooltip("Sets the white balance to compensate for a green or magenta tint.")] + public float tint; + + [Space, Range(-0.5f, 0.5f), Tooltip("Shift the hue of all colors.")] + public float hue; + + [Range(0f, 2f), Tooltip("Pushes the intensity of all colors.")] + public float saturation; + + [Range(-1f, 1f), Tooltip("Adjusts the saturation so that clipping is minimized as colors approach full saturation.")] + public float vibrance; + + [Range(0f, 10f), Tooltip("Brightens or darkens all colors.")] + public float value; + + [Space, Range(0f, 2f), Tooltip("Expands or shrinks the overall range of tonal values.")] + public float contrast; + + [Range(0.01f, 5f), Tooltip("Contrast gain curve. Controls the steepness of the curve.")] + public float gain; + + [Range(0.01f, 5f), Tooltip("Applies a pow function to the source.")] + public float gamma; + + public static BasicsSettings defaultSettings + { + get + { + return new BasicsSettings + { + temperatureShift = 0f, + tint = 0f, + contrast = 1f, + hue = 0f, + saturation = 1f, + value = 1f, + vibrance = 0f, + gain = 1f, + gamma = 1f + }; + } + } + } + + [Serializable] + public struct ChannelMixerSettings + { + public int currentChannel; + public Vector3[] channels; + + public static ChannelMixerSettings defaultSettings + { + get + { + return new ChannelMixerSettings + { + currentChannel = 0, + channels = new[] + { + new Vector3(1f, 0f, 0f), + new Vector3(0f, 1f, 0f), + new Vector3(0f, 0f, 1f) + } + }; + } + } + } + + [Serializable] + public struct CurvesSettings + { + [Curve] + public AnimationCurve master; + + [Curve(1f, 0f, 0f, 1f)] + public AnimationCurve red; + + [Curve(0f, 1f, 0f, 1f)] + public AnimationCurve green; + + [Curve(0f, 1f, 1f, 1f)] + public AnimationCurve blue; + + public static CurvesSettings defaultSettings + { + get + { + return new CurvesSettings + { + master = defaultCurve, + red = defaultCurve, + green = defaultCurve, + blue = defaultCurve + }; + } + } + + public static AnimationCurve defaultCurve + { + get { return new AnimationCurve(new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f)); } + } + } + + public enum ColorGradingPrecision + { + Normal = 16, + High = 32 + } + + [Serializable] + public struct ColorGradingSettings + { + public bool enabled; + + [Tooltip("Internal LUT precision. \"Normal\" is 256x16, \"High\" is 1024x32. Prefer \"Normal\" on mobile devices.")] + public ColorGradingPrecision precision; + + [Space, ColorWheelGroup] + public ColorWheelsSettings colorWheels; + + [Space, IndentedGroup] + public BasicsSettings basics; + + [Space, ChannelMixer] + public ChannelMixerSettings channelMixer; + + [Space, IndentedGroup] + public CurvesSettings curves; + + [Space, Tooltip("Use dithering to try and minimize color banding in dark areas.")] + public bool useDithering; + + [Tooltip("Displays the generated LUT in the top left corner of the GameView.")] + public bool showDebug; + + public static ColorGradingSettings defaultSettings + { + get + { + return new ColorGradingSettings + { + enabled = false, + useDithering = false, + showDebug = false, + precision = ColorGradingPrecision.Normal, + colorWheels = ColorWheelsSettings.defaultSettings, + basics = BasicsSettings.defaultSettings, + channelMixer = ChannelMixerSettings.defaultSettings, + curves = CurvesSettings.defaultSettings + }; + } + } + + internal void Reset() + { + curves = CurvesSettings.defaultSettings; + } + } + + [SerializeField, SettingsGroup] + private EyeAdaptationSettings m_EyeAdaptation = EyeAdaptationSettings.defaultSettings; + public EyeAdaptationSettings eyeAdaptation + { + get { return m_EyeAdaptation; } + set { m_EyeAdaptation = value; } + } + + [SerializeField, SettingsGroup] + private TonemappingSettings m_Tonemapping = TonemappingSettings.defaultSettings; + public TonemappingSettings tonemapping + { + get { return m_Tonemapping; } + set + { + m_Tonemapping = value; + SetTonemapperDirty(); + } + } + + [SerializeField, SettingsGroup] + private LUTSettings m_Lut = LUTSettings.defaultSettings; + public LUTSettings lut + { + get { return m_Lut; } + set + { + m_Lut = value; + SetDirty(); + } + } + + [SerializeField, SettingsGroup] + private ColorGradingSettings m_ColorGrading = ColorGradingSettings.defaultSettings; + public ColorGradingSettings colorGrading + { + get { return m_ColorGrading; } + set + { + m_ColorGrading = value; + SetDirty(); + } + } + #endregion + + private Texture2D m_IdentityLut; + private RenderTexture m_InternalLut; + private Texture2D m_CurveTexture; + private Texture2D m_TonemapperCurve; + private float m_TonemapperCurveRange; + + private Texture2D identityLut + { + get + { + if (m_IdentityLut == null || m_IdentityLut.height != lutSize) + { + DestroyImmediate(m_IdentityLut); + m_IdentityLut = GenerateIdentityLut(lutSize); + } + + return m_IdentityLut; + } + } + + private RenderTexture internalLutRt + { + get + { + if (m_InternalLut == null || !m_InternalLut.IsCreated() || m_InternalLut.height != lutSize) + { + DestroyImmediate(m_InternalLut); + m_InternalLut = new RenderTexture(lutSize * lutSize, lutSize, 0, RenderTextureFormat.ARGB32) + { + name = "Internal LUT", + filterMode = FilterMode.Bilinear, + anisoLevel = 0, + hideFlags = HideFlags.DontSave + }; + } + + return m_InternalLut; + } + } + + private Texture2D curveTexture + { + get + { + if (m_CurveTexture == null) + { + m_CurveTexture = new Texture2D(256, 1, TextureFormat.ARGB32, false, true) + { + name = "Curve texture", + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear, + anisoLevel = 0, + hideFlags = HideFlags.DontSave + }; + } + + return m_CurveTexture; + } + } + + private Texture2D tonemapperCurve + { + get + { + if (m_TonemapperCurve == null) + { + TextureFormat format = TextureFormat.RGB24; + if (SystemInfo.SupportsTextureFormat(TextureFormat.RFloat)) + format = TextureFormat.RFloat; + else if (SystemInfo.SupportsTextureFormat(TextureFormat.RHalf)) + format = TextureFormat.RHalf; + + m_TonemapperCurve = new Texture2D(256, 1, format, false, true) + { + name = "Tonemapper curve texture", + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear, + anisoLevel = 0, + hideFlags = HideFlags.DontSave + }; + } + + return m_TonemapperCurve; + } + } + + [SerializeField] + private Shader m_Shader; + public Shader shader + { + get + { + if (m_Shader == null) + m_Shader = Shader.Find("Hidden/TonemappingColorGrading"); + + return m_Shader; + } + } + + private Material m_Material; + public Material material + { + get + { + if (m_Material == null) + m_Material = ImageEffectHelper.CheckShaderAndCreateMaterial(shader); + + return m_Material; + } + } + + public bool isGammaColorSpace + { + get { return QualitySettings.activeColorSpace == ColorSpace.Gamma; } + } + + public int lutSize + { + get { return (int)colorGrading.precision; } + } + + private enum Pass + { + LutGen, + AdaptationLog, + AdaptationExpBlend, + AdaptationExp, + TonemappingOff, + TonemappingACES, + TonemappingCurve, + TonemappingHable, + TonemappingHejlDawson, + TonemappingPhotographic, + TonemappingReinhard, + TonemappingNeutral, + AdaptationDebug + } + + public bool validRenderTextureFormat { get; private set; } + public bool validUserLutSize { get; private set; } + + private bool m_Dirty = true; + private bool m_TonemapperDirty = true; + + private RenderTexture m_SmallAdaptiveRt; + private RenderTextureFormat m_AdaptiveRtFormat; + + public void SetDirty() + { + m_Dirty = true; + } + + public void SetTonemapperDirty() + { + m_TonemapperDirty = true; + } + + private void OnEnable() + { + if (!ImageEffectHelper.IsSupported(shader, false, true, this)) + { + enabled = false; + return; + } + + SetDirty(); + SetTonemapperDirty(); + } + + private void OnDisable() + { + if (m_Material != null) + DestroyImmediate(m_Material); + + if (m_IdentityLut != null) + DestroyImmediate(m_IdentityLut); + + if (m_InternalLut != null) + DestroyImmediate(internalLutRt); + + if (m_SmallAdaptiveRt != null) + DestroyImmediate(m_SmallAdaptiveRt); + + if (m_CurveTexture != null) + DestroyImmediate(m_CurveTexture); + + if (m_TonemapperCurve != null) + DestroyImmediate(m_TonemapperCurve); + + m_Material = null; + m_IdentityLut = null; + m_InternalLut = null; + m_SmallAdaptiveRt = null; + m_CurveTexture = null; + m_TonemapperCurve = null; + } + + private void OnValidate() + { + SetDirty(); + SetTonemapperDirty(); + } + + private static Texture2D GenerateIdentityLut(int dim) + { + Color[] newC = new Color[dim * dim * dim]; + float oneOverDim = 1f / ((float)dim - 1f); + + for (int i = 0; i < dim; i++) + for (int j = 0; j < dim; j++) + for (int k = 0; k < dim; k++) + newC[i + (j * dim) + (k * dim * dim)] = new Color((float)i * oneOverDim, Mathf.Abs((float)k * oneOverDim), (float)j * oneOverDim, 1f); + + Texture2D tex2D = new Texture2D(dim * dim, dim, TextureFormat.RGB24, false, true) + { + name = "Identity LUT", + filterMode = FilterMode.Bilinear, + anisoLevel = 0, + hideFlags = HideFlags.DontSave + }; + tex2D.SetPixels(newC); + tex2D.Apply(); + + return tex2D; + } + + // An analytical model of chromaticity of the standard illuminant, by Judd et al. + // http://en.wikipedia.org/wiki/Standard_illuminant#Illuminant_series_D + // Slightly modifed to adjust it with the D65 white point (x=0.31271, y=0.32902). + private float StandardIlluminantY(float x) + { + return 2.87f * x - 3f * x * x - 0.27509507f; + } + + // CIE xy chromaticity to CAT02 LMS. + // http://en.wikipedia.org/wiki/LMS_color_space#CAT02 + private Vector3 CIExyToLMS(float x, float y) + { + float Y = 1f; + float X = Y * x / y; + float Z = Y * (1f - x - y) / y; + + float L = 0.7328f * X + 0.4296f * Y - 0.1624f * Z; + float M = -0.7036f * X + 1.6975f * Y + 0.0061f * Z; + float S = 0.0030f * X + 0.0136f * Y + 0.9834f * Z; + + return new Vector3(L, M, S); + } + + private Vector3 GetWhiteBalance() + { + float t1 = colorGrading.basics.temperatureShift; + float t2 = colorGrading.basics.tint; + + // Get the CIE xy chromaticity of the reference white point. + // Note: 0.31271 = x value on the D65 white point + float x = 0.31271f - t1 * (t1 < 0f ? 0.1f : 0.05f); + float y = StandardIlluminantY(x) + t2 * 0.05f; + + // Calculate the coefficients in the LMS space. + Vector3 w1 = new Vector3(0.949237f, 1.03542f, 1.08728f); // D65 white point + Vector3 w2 = CIExyToLMS(x, y); + return new Vector3(w1.x / w2.x, w1.y / w2.y, w1.z / w2.z); + } + + private static Color NormalizeColor(Color c) + { + float sum = (c.r + c.g + c.b) / 3f; + + if (Mathf.Approximately(sum, 0f)) + return new Color(1f, 1f, 1f, 1f); + + return new Color + { + r = c.r / sum, + g = c.g / sum, + b = c.b / sum, + a = 1f + }; + } + + private void GenerateLiftGammaGain(out Color lift, out Color gamma, out Color gain) + { + Color nLift = NormalizeColor(colorGrading.colorWheels.shadows); + Color nGamma = NormalizeColor(colorGrading.colorWheels.midtones); + Color nGain = NormalizeColor(colorGrading.colorWheels.highlights); + + float avgLift = (nLift.r + nLift.g + nLift.b) / 3f; + float avgGamma = (nGamma.r + nGamma.g + nGamma.b) / 3f; + float avgGain = (nGain.r + nGain.g + nGain.b) / 3f; + + // Magic numbers + const float liftScale = 0.1f; + const float gammaScale = 0.5f; + const float gainScale = 0.5f; + + float liftR = (nLift.r - avgLift) * liftScale; + float liftG = (nLift.g - avgLift) * liftScale; + float liftB = (nLift.b - avgLift) * liftScale; + + float gammaR = Mathf.Pow(2f, (nGamma.r - avgGamma) * gammaScale); + float gammaG = Mathf.Pow(2f, (nGamma.g - avgGamma) * gammaScale); + float gammaB = Mathf.Pow(2f, (nGamma.b - avgGamma) * gammaScale); + + float gainR = Mathf.Pow(2f, (nGain.r - avgGain) * gainScale); + float gainG = Mathf.Pow(2f, (nGain.g - avgGain) * gainScale); + float gainB = Mathf.Pow(2f, (nGain.b - avgGain) * gainScale); + + const float minGamma = 0.01f; + float invGammaR = 1f / Mathf.Max(minGamma, gammaR); + float invGammaG = 1f / Mathf.Max(minGamma, gammaG); + float invGammaB = 1f / Mathf.Max(minGamma, gammaB); + + lift = new Color(liftR, liftG, liftB); + gamma = new Color(invGammaR, invGammaG, invGammaB); + gain = new Color(gainR, gainG, gainB); + } + + private void GenCurveTexture() + { + AnimationCurve master = colorGrading.curves.master; + AnimationCurve red = colorGrading.curves.red; + AnimationCurve green = colorGrading.curves.green; + AnimationCurve blue = colorGrading.curves.blue; + + Color[] pixels = new Color[256]; + + for (float i = 0f; i <= 1f; i += 1f / 255f) + { + float m = Mathf.Clamp(master.Evaluate(i), 0f, 1f); + float r = Mathf.Clamp(red.Evaluate(i), 0f, 1f); + float g = Mathf.Clamp(green.Evaluate(i), 0f, 1f); + float b = Mathf.Clamp(blue.Evaluate(i), 0f, 1f); + pixels[(int)Mathf.Floor(i * 255f)] = new Color(r, g, b, m); + } + + curveTexture.SetPixels(pixels); + curveTexture.Apply(); + } + + private bool CheckUserLut() + { + validUserLutSize = (lut.texture.height == (int)Mathf.Sqrt(lut.texture.width)); + return validUserLutSize; + } + + private bool CheckSmallAdaptiveRt() + { + if (m_SmallAdaptiveRt != null) + return false; + + m_AdaptiveRtFormat = RenderTextureFormat.ARGBHalf; + + if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf)) + m_AdaptiveRtFormat = RenderTextureFormat.RGHalf; + + m_SmallAdaptiveRt = new RenderTexture(1, 1, 0, m_AdaptiveRtFormat); + m_SmallAdaptiveRt.hideFlags = HideFlags.DontSave; + + return true; + } + + private void OnGUI() + { + if (Event.current.type != EventType.Repaint) + return; + + int yoffset = 0; + + // Color grading debug + if (m_InternalLut != null && colorGrading.enabled && colorGrading.showDebug) + { + Graphics.DrawTexture(new Rect(0f, yoffset, lutSize * lutSize, lutSize), internalLutRt); + yoffset += lutSize; + } + + // Eye Adaptation debug + if (m_SmallAdaptiveRt != null && eyeAdaptation.enabled && eyeAdaptation.showDebug) + { + m_Material.SetPass((int)Pass.AdaptationDebug); + Graphics.DrawTexture(new Rect(0f, yoffset, 256, 16), m_SmallAdaptiveRt, m_Material); + } + } + + [ImageEffectTransformsToLDR] + private void OnRenderImage(RenderTexture source, RenderTexture destination) + { +#if UNITY_EDITOR + validRenderTextureFormat = true; + + if (source.format != RenderTextureFormat.ARGBHalf && source.format != RenderTextureFormat.ARGBFloat) + validRenderTextureFormat = false; +#endif + + if (isGammaColorSpace) + material.EnableKeyword("GAMMA_COLORSPACE"); + else + material.DisableKeyword("GAMMA_COLORSPACE"); + + material.DisableKeyword("ENABLE_EYE_ADAPTATION"); + material.DisableKeyword("ENABLE_COLOR_GRADING"); + material.DisableKeyword("ENABLE_DITHERING"); + + Texture lutUsed = null; + float lutContrib = 1f; + + RenderTexture rtSquared = null; + RenderTexture[] rts = null; + + if (eyeAdaptation.enabled) + { + bool freshlyBrewedSmallRt = CheckSmallAdaptiveRt(); + int srcSize = source.width < source.height ? source.width : source.height; + + // Fast lower or equal power of 2 + int adaptiveSize = srcSize; + adaptiveSize |= (adaptiveSize >> 1); + adaptiveSize |= (adaptiveSize >> 2); + adaptiveSize |= (adaptiveSize >> 4); + adaptiveSize |= (adaptiveSize >> 8); + adaptiveSize |= (adaptiveSize >> 16); + adaptiveSize -= (adaptiveSize >> 1); + + rtSquared = RenderTexture.GetTemporary(adaptiveSize, adaptiveSize, 0, m_AdaptiveRtFormat); + Graphics.Blit(source, rtSquared); + + int downsample = (int)Mathf.Log(rtSquared.width, 2f); + + int div = 2; + rts = new RenderTexture[downsample]; + for (int i = 0; i < downsample; i++) + { + rts[i] = RenderTexture.GetTemporary(rtSquared.width / div, rtSquared.width / div, 0, m_AdaptiveRtFormat); + div <<= 1; + } + + // Downsample pyramid + var lumRt = rts[downsample - 1]; + Graphics.Blit(rtSquared, rts[0], material, (int)Pass.AdaptationLog); + for (int i = 0; i < downsample - 1; i++) + { + Graphics.Blit(rts[i], rts[i + 1]); + lumRt = rts[i + 1]; + } + + // Keeping luminance values between frames, RT restore expected + m_SmallAdaptiveRt.MarkRestoreExpected(); + + material.SetFloat("_AdaptationSpeed", Mathf.Max(eyeAdaptation.speed, 0.001f)); + +#if UNITY_EDITOR + if (Application.isPlaying && !freshlyBrewedSmallRt) + Graphics.Blit(lumRt, m_SmallAdaptiveRt, material, (int)Pass.AdaptationExpBlend); + else + Graphics.Blit(lumRt, m_SmallAdaptiveRt, material, (int)Pass.AdaptationExp); +#else + Graphics.Blit(lumRt, m_SmallAdaptiveRt, material, freshlyBrewedSmallRt ? (int)Pass.AdaptationExp : (int)Pass.AdaptationExpBlend); +#endif + + material.SetFloat("_MiddleGrey", eyeAdaptation.middleGrey); + material.SetFloat("_AdaptationMin", Mathf.Pow(2f, eyeAdaptation.min)); + material.SetFloat("_AdaptationMax", Mathf.Pow(2f, eyeAdaptation.max)); + material.SetTexture("_LumTex", m_SmallAdaptiveRt); + material.EnableKeyword("ENABLE_EYE_ADAPTATION"); + } + + int renderPass = (int)Pass.TonemappingOff; + + if (tonemapping.enabled) + { + if (tonemapping.tonemapper == Tonemapper.Curve) + { + if (m_TonemapperDirty) + { + float range = 1f; + + if (tonemapping.curve.length > 0) + { + range = tonemapping.curve[tonemapping.curve.length - 1].time; + + for (float i = 0f; i <= 1f; i += 1f / 255f) + { + float c = tonemapping.curve.Evaluate(i * range); + tonemapperCurve.SetPixel(Mathf.FloorToInt(i * 255f), 0, new Color(c, c, c)); + } + + tonemapperCurve.Apply(); + } + + m_TonemapperCurveRange = 1f / range; + m_TonemapperDirty = false; + } + + material.SetFloat("_ToneCurveRange", m_TonemapperCurveRange); + material.SetTexture("_ToneCurve", tonemapperCurve); + } + else if (tonemapping.tonemapper == Tonemapper.Neutral) + { + const float scaleFactor = 20f; + const float scaleFactorHalf = scaleFactor * 0.5f; + + float inBlack = tonemapping.neutralBlackIn * scaleFactor + 1f; + float outBlack = tonemapping.neutralBlackOut * scaleFactorHalf + 1f; + float inWhite = tonemapping.neutralWhiteIn / scaleFactor; + float outWhite = 1f - tonemapping.neutralWhiteOut / scaleFactor; + float blackRatio = inBlack / outBlack; + float whiteRatio = inWhite / outWhite; + + const float a = 0.2f; + float b = Mathf.Max(0f, Mathf.LerpUnclamped(0.57f, 0.37f, blackRatio)); + float c = Mathf.LerpUnclamped(0.01f, 0.24f, whiteRatio); + float d = Mathf.Max(0f, Mathf.LerpUnclamped(0.02f, 0.20f, blackRatio)); + const float e = 0.02f; + const float f = 0.30f; + + material.SetVector("_NeutralTonemapperParams1", new Vector4(a, b, c, d)); + material.SetVector("_NeutralTonemapperParams2", new Vector4(e, f, tonemapping.neutralWhiteLevel, tonemapping.neutralWhiteClip / scaleFactorHalf)); + } + + material.SetFloat("_Exposure", tonemapping.exposure); + renderPass += (int)tonemapping.tonemapper + 1; + } + + if (lut.enabled) + { + Texture tex = lut.texture; + + if (lut.texture == null || !CheckUserLut()) + tex = identityLut; + + lutUsed = tex; + lutContrib = lut.contribution; + material.EnableKeyword("ENABLE_COLOR_GRADING"); + } + + if (colorGrading.enabled) + { + if (m_Dirty || !m_InternalLut.IsCreated()) + { + if (lutUsed == null) + { + material.SetVector("_UserLutParams", new Vector4(1f / identityLut.width, 1f / identityLut.height, identityLut.height - 1f, 1f)); + material.SetTexture("_UserLutTex", identityLut); + } + else + { + material.SetVector("_UserLutParams", new Vector4(1f / lutUsed.width, 1f / lutUsed.height, lutUsed.height - 1f, lut.contribution)); + material.SetTexture("_UserLutTex", lutUsed); + } + + Color lift, gamma, gain; + GenerateLiftGammaGain(out lift, out gamma, out gain); + GenCurveTexture(); + + material.SetVector("_WhiteBalance", GetWhiteBalance()); + material.SetVector("_Lift", lift); + material.SetVector("_Gamma", gamma); + material.SetVector("_Gain", gain); + material.SetVector("_ContrastGainGamma", new Vector3(colorGrading.basics.contrast, colorGrading.basics.gain, 1f / colorGrading.basics.gamma)); + material.SetFloat("_Vibrance", colorGrading.basics.vibrance); + material.SetVector("_HSV", new Vector4(colorGrading.basics.hue, colorGrading.basics.saturation, colorGrading.basics.value)); + material.SetVector("_ChannelMixerRed", colorGrading.channelMixer.channels[0]); + material.SetVector("_ChannelMixerGreen", colorGrading.channelMixer.channels[1]); + material.SetVector("_ChannelMixerBlue", colorGrading.channelMixer.channels[2]); + material.SetTexture("_CurveTex", curveTexture); + internalLutRt.MarkRestoreExpected(); + Graphics.Blit(identityLut, internalLutRt, material, (int)Pass.LutGen); + m_Dirty = false; + } + + lutUsed = internalLutRt; + lutContrib = 1f; + material.EnableKeyword("ENABLE_COLOR_GRADING"); + + if (colorGrading.useDithering) + material.EnableKeyword("ENABLE_DITHERING"); + } + + if (lutUsed != null) + { + material.SetTexture("_LutTex", lutUsed); + material.SetVector("_LutParams", new Vector4(1f / lutUsed.width, 1f / lutUsed.height, lutUsed.height - 1f, lutContrib)); + } + + Graphics.Blit(source, destination, material, renderPass); + + // Cleanup for eye adaptation + if (eyeAdaptation.enabled) + { + for (int i = 0; i < rts.Length; i++) + RenderTexture.ReleaseTemporary(rts[i]); + + RenderTexture.ReleaseTemporary(rtSquared); + } + +#if UNITY_EDITOR + // If we have an on frame end callabck we need to pass a valid result texture + // if destination is null we wrote to the backbuffer so we need to copy that out. + // It's slow and not amazing, but editor only + if (onFrameEndEditorOnly != null) + { + if (destination == null) + { + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height, 0); + Graphics.Blit(source, rt, material, renderPass); + onFrameEndEditorOnly(rt); + RenderTexture.ReleaseTemporary(rt); + RenderTexture.active = null; + } + else + { + onFrameEndEditorOnly(destination); + } + } +#endif + } + + public Texture2D BakeLUT() + { + Texture2D lut = new Texture2D(internalLutRt.width, internalLutRt.height, TextureFormat.RGB24, false, true); + RenderTexture.active = internalLutRt; + lut.ReadPixels(new Rect(0f, 0f, lut.width, lut.height), 0, 0); + RenderTexture.active = null; + return lut; + } + } +} diff --git a/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs.meta b/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs.meta new file mode 100644 index 0000000..ee75f55 --- /dev/null +++ b/Assets/Cinematic Effects/TonemappingColorGrading/TonemappingColorGrading.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 58a7625302996c94ba07a8ca3351f668 +timeCreated: 1453901501 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - m_HistogramComputeShader: {fileID: 7200000, guid: 5ee4b74fa28a3e74e89423dd49705fc5, + type: 3} + - m_HistogramShader: {fileID: 4800000, guid: 9a8e838691462194482a43a02e424876, type: 3} + - m_Shader: {fileID: 4800000, guid: 964b34bbab7f5e64fa40f37eaccac1ad, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Changelog.txt b/Assets/Colorful FX/Changelog.txt new file mode 100644 index 0000000..5c085c8 --- /dev/null +++ b/Assets/Colorful FX/Changelog.txt @@ -0,0 +1,201 @@ +4.1.1 +- Added: "Vertical Scanlines" options to "Analog TV". +- Fixed: "Frost" not working correctly on iPhone 6/6S. +- Fixed: "Glitch" not working correctly on iPhone 6/6S. + +4.1 +- Added: A highly customizable "Comic Book" effect. Works great with untextured or low-poly scenes ! +- Added: "Letterbox", to add letter or pillarboxing to the render. Very handy for cinematics, can be animated as well. +- Added: "TV Vignette", a new ultra fast vignette with a more natural shape. Less customizable than the other vignette effects but looks great. +- Added: "Contrast Gain", a smart contrast adjustment effect. More limited than "S-Curve Contrast" but faster. +- Added: "Smart Saturation", a port of the "Sat vs Sat" operator from Davinci Resolve, where you control the saturation using a curve to saturate according to the current saturation. +- Added: "Luminance Contribution" to the "Noise" effect to reduce noise visibility in luminous areas. +- Added: "Amount" sliders to "Gaussian Blur" and "Bilateral Gaussian Blur". +- Modified: "Lookup Texture 3D", "Vintage (Fast)" and "LoFi Palette" now work on mobile platforms ! If you used any of them, please see the "Upgrade Guide" in the user manual. As a result, the slower "Lookup Filter" and "Vintage" effects have been deprecated. +- Fixed: "Noise" not working correctly on some mobile devices. +- Fixed: Small loss of detail with the "Hue, Saturation, Value" when HDR is enabled. +- Fixed: Compilation error on DirectX 9 for some of the blur shaders. +- Fixed: "Photo Filter" was broken. +- Misc: More editor UI optimizations & tweaks. +- Misc: Optimized the "Noise" effect ("RGB" mode). + +4.0.1 +- Fixed: Performance issue with "Lookup Filter (3D)", "Vintage (Fast)" and "LoFi Palette". + +4.0 +- Important: This major update breaks compatibility with previous versions. Please refer to the documentation if you need to update from an earlier version. +- Modified: Complete code refactoring, cleanup, fixes & tweaks. Makes use of new Unity 5 features when available. Some effects have been optimized as well. +- Modified: Re-organized the "Component -> Colorful" menu. +- Modified: Rewrote the "Halftone" effect from scratch. It looks way, way better now. +- Modified: Rewrote the "Levels" effect from scratch. +- Modified: The "Kuwahara" radius limit has been bumped to 6. +- Added: Tooltips (almost) everywhere. +- Added: Unity 5.1+ users, you can click the top-right help button on Colorful components at any time to jump to the documentation. +- Added: "LoFi Palette" effect, with 31 presets to give a retro look to your game. +- Added: "Shadows, Midtones, Highlights" effect (lift/gamma/gain or ASC CDL), also known as the ultimate color correction tool. +- Added: "Dynamic Lookup", a fast and powerful color corrector using a RGB cube. +- Added: "Gradient Ramp (Dynamic)", an alternative to "Gradient Ramp" using the builtin gradient editor instead of a texture ramp. +- Added: High quality "Gaussian Blur" effect. +- Added: Edge aware, "Bilateral Gaussian Blur" effect. +- Added: "Grainy Blur", where blur meets noise. +- Added: "Lens Distortion Blur", an alternative to "Radial Blur" with barrel distortion. +- Added: "Directional Blur" effect. +- Added: "Wave Distortion" effect. +- Added: "Lookup Filter 3D", faster LUT color grading for Shader Model 3.0+ compatible hardware. +- Added: "Vintage (Fast)", variant of the "Vintage" effect for Shader Model 3.0+ compatible hardware. +- Added: "Pixel Matrix" effect. +- Added: "Noise" (monochrome or colored) to add some fine grain to your renders. +- Added: "S-Curve Contrast", a powerful color correction operator. +- Added: "Dithering", a fast ordered dithering effect. +- Added: "Stroke", an artistic effect to turn your renders into brush strokes. +- Added: "Histogram", a debug graph with Luminance, RGB, Red, Green and Blue view modes. +- Added: "Vignette" option for "Radial Blur" so you can progressively blur toward the edges of the screen. +- Added: An alternative algorithm for the "Sharpen" filter. +- Added: "Wiggle" has been improved. You can now set the Amplitude and it also comes with a slightly slower but better looking mode (optional). +- Added: A "Shape" slider on the "LED" filter to adjust the LEDs look. +- Added: "Fast Vignette" now comes with a color mode. +- Added: "Amount" slider for the "Posterize" effect. +- Fixed: "Analog TV" and "Frost" not working correctly on some iOS devices. +- Fixed: "Negative" now works as expected in Linear color space. +- Fixed: Compilation error on PS4. +- Misc: Brand new, faster and more complete documentation, as well as a dedicated website ! + +3.2 +- Added: "IsActive" public property to the "Glitch" effect to detect when it's on or off. +- Misc: Better handling of shader includes. +- Misc: Made the components easier to extend / inherit. +- Fixed: Fixed a small "leak" in the "Vintage" effect. No more GC allocations on every frame. +- Fixed: Compilation issue when upgrading to Unity 5.1 from an earlier Unity version (UnityEditor API change). + +3.1 +- Added: "Hue Focus" to only display the colors in a given hue range and show the rest as black & white. Works great when used before a "Brightness / Contrast / Gamma" effect to give a sort of Sin City look, where only a few colors are visible and the rest is high-contrast black & white. +- Added: 3 Instagram filters to the "Vintage" effect : Lark, Juno, Reyes. +- Added: A "Random Activation" option to the "Glitch" effect with customizable time ranges. + +3.0.1 +- Fixed: The "Halftone" effect not using the correct aspect ratio for the dots. +- Fixed: Color-space error in the editor. +- Fixed: Issue with the startup dialog. + +3.0 +- Added: "Kuwahara", to give an oil painting look or simply soften the scene render. +- Added: "Glitch". Comes with three glitching modes (interference, tearing, complete). +- Added: "Technicolor", to mimic the classic coloring process from the early days of motion pictures. +- Added: "Channel Clamper", to clamp each color channel independently to a minimum and maximum value. +- Added: "Channel Swapper", to combine or swap color channels. +- Added: "White Balance", to remove unrealistic color cast and shift the neutral tone of the render. +- Added: A "Custom" quality mode to "Radial Blur". You can now put a custom sample count if you don't like the default presets. +- Fixed: Better internal file path control. You should now be able to move the Colorful folder safely. +- Misc: General UI fixes & usability tweaks. +- Misc: Documentation fixes & additions (+ videos for animated effects). +- Misc: Removed the documentation from the package, it's now online only. Benefits : the package size is a lot smaller and imports faster. +- Misc: Bumped the minimum Unity version to 4.5. + +2.2.3 +- Fixed: "Analog TV" failing on some platforms. +- Fixed: A bug introduced in 2.2.1 with "Lookup Filter" and "Vintage" when working in Linear color space. + +2.2.2 +- Fixed: Bug with "Led" and "Pixelate" in Unity 5. +- Misc: Unity 5 package. + +2.2.1 +- Added: An "Amount" slider to "Lookup Filter" and "Vintage" to allow blending on the effects. + +2.2 +- Added: 5 Instagram filters to the "Vintage" effect : Aden, Crema, Ludwig, Perpetua, Slumber. + +2.1.1 +- Added: A "Scanlines Offset" option to the "Analog TV" effect to scroll the scanlines upwards/downwards. + +2.1 +- Added: "Vintage" comes with 19 fast Instagram filters : 1977, Amaro, Brannan, Earlybird, Hefe, Hudson, Inkwell, Kelvin, LoFi, Mayfair, Nashville, Rise, Sierra, Sutro, Toaster, Valencia, Walden, Willow, X-Pro II. + +2.0.2 +- Fixed: Bug with "Lookup Filter" in linear mode. + +2.0.1 +- Fixed: HDR bug with the "Lookup Filter". +- Modified: The "Lookup Filter" documentation has been updated. Make sure the "Aniso Level" on your LUTs is set to 0. + +2.0 +- Added: A new quickstart launcher when you import or update Colorful. +- Added: "About Colorful" and "Colorful Manual" in the Help menu. +- Added: "Contrast Vignette". The old "Fast Vignette" plays on darkness and saturation, this new one focuses on darkness and contrast enhancement which results in a more photographic look. +- Added: A "Center" property to "Fast Vignette" to change the center point. +- Added: "Hue / Saturation / Value" now comes with an optional advanced mode. This mode is a bit slower but way more powerful as you can now work separately on reds, yellows, greens, cyans, blues and magentas (like Photoshop). +- Added: "Vibrance" now comes with an optional advanced mode which uses a different algorithm and let you tweak how channels (RGB) are affected. +- Modified: The "Levels" editor has been rewritten from scratch. It's now more efficient and comes with a new "Auto B&W" feature (see the doc). Its public API hasn't changed so it should be compatible with the old one. +- Modified: Bumped the minimum Unity version to 4.3. If for some reason you need a version compatible with Unity 3.5, please contact me. +- Misc: Massive optimizations to the "Hue / Saturation / Value" shader. +- Misc: Global cleanup pass and minor optimizations on all editor classes and shaders. +- Misc: Lots of UI fixes & usability tweaks. +- Misc: A few documentation fixes & additions. + +1.7.1 +- Added: "Auto Timer" & "Auto Phase" options to "Wiggle" and "Analog TV". +- Added: Icons for the components to make them easier to spot. +- Fixed: The LUT texture used with "Lookup Filter" now bypasses sRGB sampling so it works correctly with the Linear color space. +- Misc: A few documentation fixes & additions. + +1.7 +- Added: "Halftone" (CMYK and Black & White). +- Added: "Cross Stitch". +- Fixed: Serialization bug affecting all effects' custom inspectors. + +1.6.1 +- Added: Optional pixel perfect mode to the "Pixelate" and "LED" effects. +- Added: A ratio settings (can be set to automatic) to the "Pixelate" and "LED" effects to change the cell shape. +- Added: Optional noise pass on the Threshold effect. +- Added: HeatRamp.png in the resources folder (can be used to emulate a thermal vision with the Gradient Ramp effect). +- Misc: Documentation update. + +1.6 +- Added: "Convolution Matrix 3x3". +- Added: "Blend" (works with Texture2D and MovieTexture), featuring 21 blending modes : Darken, Multiply, Color Burn, Linear Burn, Darker Color, Lighten, Screen, Color Dodge, Linear Dodge (Add), Lighter Color, Overlay, Soft Light, Hard Light, Vivid Light, Linear Light, Pin Light, Hard Mix, Difference, Exclusion, Subtract, Divide. +- Added: New option to desaturate the "Fast Vignette". +- Misc: Refactoring, improvements and optimizations of the following effects : Analog TV, Fast Vignette, Frost, Grayscale, Radial Blur. + +1.5 +- Added: "Gradient Ramp". +- Added: "Lookup Filter" (advanced color grading). +- Added: "Negative" (with proper transition). +- Added: "Wiggle" (underwater distortion). +- Fixed: Unity 4.3 compatibility. +- Misc: General code cleaning, a few minor fixes and various optimizations. +- Misc: Full documentation. + +1.4.1 +- Fixed: A weird bug with "RGB Split" only working in Directx 11 mode in some setups. + +1.4 +- Added: "RGB Split". +- Added: "Sharpen". + +1.3.4 +- Fixed: Bug with Unity 4.1 preventing most shaders to work correctly. + +1.3.2 +- Added: A new slider to fade the "Double vision" effect. +- Fixed: Brightness bug in "Double vision". +- Fixed: A null pointer exception in "Levels" that could happen in the Editor. + +1.3.1 +- Misc: Performance improvements. +- Misc: Code cleaning. + +1.3 +- Fixed: Now compatible with Unity 4 and DirectX 11. +- Fixed: Lots of small bugs. + +1.2 +- Added: "Analog TV", emulates a CRT screen with scanlines, static noise and barrel distortion ! +- Added: "Double Vision". +- Added: "Frost", that looks like viewing through an ice-frosted glass (can be used as a vignette too, to "freeze" the screen progressively). + +1.1 +- Modified: "Photo Filter" now takes a Color as input instead of three floats. +- Added: "Radial Blur", also known as "Zoom" Blur. + +1.0 +- Misc: Initial release. \ No newline at end of file diff --git a/Assets/Colorful FX/Changelog.txt.meta b/Assets/Colorful FX/Changelog.txt.meta new file mode 100644 index 0000000..eba7f89 --- /dev/null +++ b/Assets/Colorful FX/Changelog.txt.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: 9705500cced88874d82a6a2f1df3ac97 +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor.meta b/Assets/Colorful FX/Editor.meta new file mode 100644 index 0000000..a5197bf --- /dev/null +++ b/Assets/Colorful FX/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6ee6c3831e534a64583a1ac0ce6d2f68 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/BaseEffectEditor.cs b/Assets/Colorful FX/Editor/BaseEffectEditor.cs new file mode 100644 index 0000000..ff19185 --- /dev/null +++ b/Assets/Colorful FX/Editor/BaseEffectEditor.cs @@ -0,0 +1,71 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + using System.Collections.Generic; + + public class BaseEffectEditor : Editor + { + public static GUIStyle tabLeft; + public static GUIStyle tabMiddle; + public static GUIStyle tabRight; + public static GUIStyle tabLeftOn; + public static GUIStyle tabMiddleOn; + public static GUIStyle tabRightOn; + + public override void OnInspectorGUI() + { + if (tabLeft == null) + { + tabLeft = new GUIStyle(EditorStyles.miniButtonLeft); + tabMiddle = new GUIStyle(EditorStyles.miniButtonMid); + tabRight = new GUIStyle(EditorStyles.miniButtonRight); + + tabLeftOn = new GUIStyle(tabLeft); + tabLeftOn.active = tabLeft.onActive; + tabLeftOn.normal = tabLeft.onNormal; + tabLeftOn.hover = tabLeft.onHover; + + tabMiddleOn = new GUIStyle(tabMiddle); + tabMiddleOn.active = tabMiddle.onActive; + tabMiddleOn.normal = tabMiddle.onNormal; + tabMiddleOn.hover = tabMiddle.onHover; + + tabRightOn = new GUIStyle(tabRight); + tabRightOn.active = tabRight.onActive; + tabRightOn.normal = tabRight.onNormal; + tabRightOn.hover = tabRight.onHover; + } + } + + static Dictionary m_GUIContentCache; + + protected static GUIContent GetContent(string textAndTooltip) + { + if (string.IsNullOrEmpty(textAndTooltip)) + return GUIContent.none; + + if (m_GUIContentCache == null) + m_GUIContentCache = new Dictionary(); + + GUIContent content = null; + + if (!m_GUIContentCache.TryGetValue(textAndTooltip, out content)) + { + string[] s = textAndTooltip.Split('|'); + content = new GUIContent(s[0]); + + if (s.Length > 1 && !string.IsNullOrEmpty(s[1])) + content.tooltip = s[1]; + + m_GUIContentCache.Add(textAndTooltip, content); + } + + return content; + } + } +} diff --git a/Assets/Colorful FX/Editor/BaseEffectEditor.cs.meta b/Assets/Colorful FX/Editor/BaseEffectEditor.cs.meta new file mode 100644 index 0000000..4bfb31f --- /dev/null +++ b/Assets/Colorful FX/Editor/BaseEffectEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 51af486729aacac4a9de2f9e05dc5bb2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects.meta b/Assets/Colorful FX/Editor/Effects.meta new file mode 100644 index 0000000..cf2d698 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c1428167942535d44b60d64340ec3e3b +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs b/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs new file mode 100644 index 0000000..a81c559 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs @@ -0,0 +1,76 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(AnalogTV))] + public class AnalogTVEditor : BaseEffectEditor + { + SerializedProperty p_AutomaticPhase; + SerializedProperty p_Phase; + SerializedProperty p_ConvertToGrayscale; + SerializedProperty p_NoiseIntensity; + SerializedProperty p_ScanlinesIntensity; + SerializedProperty p_ScanlinesCount; + SerializedProperty p_ScanlinesOffset; + SerializedProperty p_VerticalScanlines; + SerializedProperty p_Distortion; + SerializedProperty p_CubicDistortion; + SerializedProperty p_Scale; + + void OnEnable() + { + p_AutomaticPhase = serializedObject.FindProperty("AutomaticPhase"); + p_Phase = serializedObject.FindProperty("Phase"); + p_ConvertToGrayscale = serializedObject.FindProperty("ConvertToGrayscale"); + p_NoiseIntensity = serializedObject.FindProperty("NoiseIntensity"); + p_ScanlinesIntensity = serializedObject.FindProperty("ScanlinesIntensity"); + p_ScanlinesCount = serializedObject.FindProperty("ScanlinesCount"); + p_ScanlinesOffset = serializedObject.FindProperty("ScanlinesOffset"); + p_VerticalScanlines = serializedObject.FindProperty("VerticalScanlines"); + p_Distortion = serializedObject.FindProperty("Distortion"); + p_CubicDistortion = serializedObject.FindProperty("CubicDistortion"); + p_Scale = serializedObject.FindProperty("Scale"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_AutomaticPhase); + EditorGUI.BeginDisabledGroup(p_AutomaticPhase.boolValue); + { + EditorGUILayout.PropertyField(p_Phase); + } + EditorGUI.EndDisabledGroup(); + + EditorGUILayout.PropertyField(p_ConvertToGrayscale); + + GUILayout.Label(GetContent("Analog Effect"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_NoiseIntensity); + EditorGUILayout.PropertyField(p_ScanlinesIntensity); + EditorGUILayout.PropertyField(p_ScanlinesCount); + EditorGUILayout.PropertyField(p_ScanlinesOffset); + EditorGUILayout.PropertyField(p_VerticalScanlines); + } + EditorGUI.indentLevel--; + + GUILayout.Label(GetContent("Barrel Distortion"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_Distortion); + EditorGUILayout.PropertyField(p_CubicDistortion); + EditorGUILayout.PropertyField(p_Scale, GetContent("Scale (Zoom)")); + } + EditorGUI.indentLevel--; + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs.meta new file mode 100644 index 0000000..a6f6e50 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/AnalogTVEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b50bbf63bbe2da2469b67479b47bf989 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs new file mode 100644 index 0000000..87a0721 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(BilateralGaussianBlur))] + public class BilateralGaussianBlurEditor : BaseEffectEditor + { + SerializedProperty p_Passes; + SerializedProperty p_Threshold; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Passes = serializedObject.FindProperty("Passes"); + p_Threshold = serializedObject.FindProperty("Threshold"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Passes); + EditorGUILayout.PropertyField(p_Threshold); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs.meta new file mode 100644 index 0000000..ffae8e8 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BilateralGaussianBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 66e81a5c475bf3c439b5a67027bc36fb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs b/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs new file mode 100644 index 0000000..0e6e33b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(BleachBypass))] + public class BleachBypassEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs.meta new file mode 100644 index 0000000..5bb4088 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BleachBypassEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f4576dc4584db1b4f9f1d80bdae148f6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/BlendEditor.cs b/Assets/Colorful FX/Editor/Effects/BlendEditor.cs new file mode 100644 index 0000000..a08db36 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BlendEditor.cs @@ -0,0 +1,63 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Blend))] + public class BlendEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + SerializedProperty p_Texture; + SerializedProperty p_Mode; + + static GUIContent[] modes = { + new GUIContent("Darken"), + new GUIContent("Multiply"), + new GUIContent("Color Burn"), + new GUIContent("Linear Burn"), + new GUIContent("Darker Color"), + new GUIContent(""), + new GUIContent("Lighten"), + new GUIContent("Screen"), + new GUIContent("Color Dodge"), + new GUIContent("Linear Dodge (Add)"), + new GUIContent("Lighter Color"), + new GUIContent(""), + new GUIContent("Overlay"), + new GUIContent("Soft Light"), + new GUIContent("Hard Light"), + new GUIContent("Vivid Light"), + new GUIContent("Linear Light"), + new GUIContent("Pin Light"), + new GUIContent("Hard Mix"), + new GUIContent(""), + new GUIContent("Difference"), + new GUIContent("Exclusion"), + new GUIContent("Subtract"), + new GUIContent("Divide") + }; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + p_Texture = serializedObject.FindProperty("Texture"); + p_Mode = serializedObject.FindProperty("Mode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + // Using intValue, enumValueIndex seems broken in some versions of Unity + p_Mode.intValue = EditorGUILayout.Popup(GetContent("Mode|Blending Mode."), p_Mode.intValue, modes); + EditorGUILayout.PropertyField(p_Texture); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/BlendEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/BlendEditor.cs.meta new file mode 100644 index 0000000..6260f2f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BlendEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1e832d91494c75e458f49538da81924c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs b/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs new file mode 100644 index 0000000..5bb1fc6 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs @@ -0,0 +1,48 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(BrightnessContrastGamma))] + public class BrightnessContrastGammaEditor : BaseEffectEditor + { + SerializedProperty p_Brightness; + SerializedProperty p_Contrast; + SerializedProperty p_ContrastCoeff; + SerializedProperty p_Gamma; + + void OnEnable() + { + p_Brightness = serializedObject.FindProperty("Brightness"); + p_Contrast = serializedObject.FindProperty("Contrast"); + p_ContrastCoeff = serializedObject.FindProperty("ContrastCoeff"); + p_Gamma = serializedObject.FindProperty("Gamma"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Brightness); + + EditorGUILayout.PropertyField(p_Contrast); + EditorGUI.indentLevel++; + { + Vector3 coeff = p_ContrastCoeff.vector3Value; + coeff.x = EditorGUILayout.Slider(GetContent("Red Channel|Contrast factor on the red channel."), coeff.x, 0f, 1f); + coeff.y = EditorGUILayout.Slider(GetContent("Green Channel|Contrast factor on the green channel."), coeff.y, 0f, 1f); + coeff.z = EditorGUILayout.Slider(GetContent("Blue Channel|Contrast factor on the blue channel."), coeff.z, 0f, 1f); + p_ContrastCoeff.vector3Value = coeff; + } + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField(p_Gamma); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs.meta new file mode 100644 index 0000000..9c28535 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/BrightnessContrastGammaEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7d54a49fbdf254545a0f584279ba005b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs b/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs new file mode 100644 index 0000000..cb9c149 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs @@ -0,0 +1,69 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ChannelClamper))] + public class ChannelClamperEditor : BaseEffectEditor + { + SerializedProperty p_Red; + SerializedProperty p_Green; + SerializedProperty p_Blue; + + void OnEnable() + { + p_Red = serializedObject.FindProperty("Red"); + p_Green = serializedObject.FindProperty("Green"); + p_Blue = serializedObject.FindProperty("Blue"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + Vector2 red = p_Red.vector2Value; + Vector2 green = p_Green.vector2Value; + Vector2 blue = p_Blue.vector2Value; + + EditorGUILayout.MinMaxSlider(GetContent("Red Channel|Red channel limits."), ref red.x, ref red.y, 0f, 1f); + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(" "); + red.x = EditorGUILayout.FloatField(red.x, GUILayout.Width(60)); + GUILayout.FlexibleSpace(); + red.y = EditorGUILayout.FloatField(red.y, GUILayout.Width(60)); + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.MinMaxSlider(GetContent("Green Channel|Green channel limits."), ref green.x, ref green.y, 0f, 1f); + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(" "); + green.x = EditorGUILayout.FloatField(green.x, GUILayout.Width(60)); + GUILayout.FlexibleSpace(); + green.y = EditorGUILayout.FloatField(green.y, GUILayout.Width(60)); + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.MinMaxSlider(GetContent("Blue Channel|Blue channel limits."), ref blue.x, ref blue.y, 0f, 1f); + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(" "); + blue.x = EditorGUILayout.FloatField(blue.x, GUILayout.Width(60)); + GUILayout.FlexibleSpace(); + blue.y = EditorGUILayout.FloatField(blue.y, GUILayout.Width(60)); + } + EditorGUILayout.EndHorizontal(); + + p_Red.vector2Value = red; + p_Green.vector2Value = green; + p_Blue.vector2Value = blue; + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs.meta new file mode 100644 index 0000000..3194a6d --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelClamperEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: dff6c3f440b091d42bc9c207fa8ca094 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs b/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs new file mode 100644 index 0000000..6cfa1d0 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs @@ -0,0 +1,68 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ChannelMixer))] + public class ChannelMixerEditor : BaseEffectEditor + { + SerializedProperty p_Red; + SerializedProperty p_Green; + SerializedProperty p_Blue; + SerializedProperty p_Constant; + + SerializedProperty p_CurrentChannel; + + void OnEnable() + { + p_Red = serializedObject.FindProperty("Red"); + p_Green = serializedObject.FindProperty("Green"); + p_Blue = serializedObject.FindProperty("Blue"); + p_Constant = serializedObject.FindProperty("Constant"); + + p_CurrentChannel = serializedObject.FindProperty("e_CurrentChannel"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + serializedObject.Update(); + + int currentChannel = p_CurrentChannel.intValue; + + GUILayout.BeginHorizontal(); + + if (GUILayout.Button(GetContent("Red"), (currentChannel == 0) ? tabLeftOn : tabLeft)) currentChannel = 0; + if (GUILayout.Button(GetContent("Green"), (currentChannel == 1) ? tabMiddleOn : tabMiddle)) currentChannel = 1; + if (GUILayout.Button(GetContent("Blue"), (currentChannel == 2) ? tabRightOn : tabRight)) currentChannel = 2; + + GUILayout.EndHorizontal(); + + Vector3 constant = p_Constant.vector3Value; + + if (currentChannel == 0) ChannelUI(p_Red, ref constant.x); + if (currentChannel == 1) ChannelUI(p_Green, ref constant.y); + if (currentChannel == 2) ChannelUI(p_Blue, ref constant.z); + + p_Constant.vector3Value = constant; + p_CurrentChannel.intValue = currentChannel; + + serializedObject.ApplyModifiedProperties(); + } + + void ChannelUI(SerializedProperty channel, ref float constant) + { + Vector3 c = channel.vector3Value; + c.x = EditorGUILayout.Slider(GetContent("% Red"), c.x, -200f, 200f); + c.y = EditorGUILayout.Slider(GetContent("% Green"), c.y, -200f, 200f); + c.z = EditorGUILayout.Slider(GetContent("% Blue"), c.z, -200f, 200f); + constant = EditorGUILayout.Slider(GetContent("Constant"), constant, -200f, 200f); + channel.vector3Value = c; + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs.meta new file mode 100644 index 0000000..5726404 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelMixerEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5d45a191de515ea40bace7c61083bf36 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs b/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs new file mode 100644 index 0000000..27088c3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ChannelSwapper))] + public class ChannelSwapperEditor : BaseEffectEditor + { + SerializedProperty p_RedSource; + SerializedProperty p_GreenSource; + SerializedProperty p_BlueSource; + + void OnEnable() + { + p_RedSource = serializedObject.FindProperty("RedSource"); + p_GreenSource = serializedObject.FindProperty("GreenSource"); + p_BlueSource = serializedObject.FindProperty("BlueSource"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_RedSource); + EditorGUILayout.PropertyField(p_GreenSource); + EditorGUILayout.PropertyField(p_BlueSource); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs.meta new file mode 100644 index 0000000..955e2b5 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChannelSwapperEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 58395e03ec9542e40ba5b4dc7c6e84c0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs b/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs new file mode 100644 index 0000000..428a018 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs @@ -0,0 +1,38 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ChromaticAberration))] + public class ChromaticAberrationEditor : BaseEffectEditor + { + SerializedProperty p_RedRefraction; + SerializedProperty p_GreenRefraction; + SerializedProperty p_BlueRefraction; + SerializedProperty p_PreserveAlpha; + + void OnEnable() + { + p_RedRefraction = serializedObject.FindProperty("RedRefraction"); + p_GreenRefraction = serializedObject.FindProperty("GreenRefraction"); + p_BlueRefraction = serializedObject.FindProperty("BlueRefraction"); + p_PreserveAlpha = serializedObject.FindProperty("PreserveAlpha"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_RedRefraction); + EditorGUILayout.PropertyField(p_GreenRefraction); + EditorGUILayout.PropertyField(p_BlueRefraction); + EditorGUILayout.PropertyField(p_PreserveAlpha); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs.meta new file mode 100644 index 0000000..3e0ee89 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ChromaticAberrationEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: eec1e784f0174b44c891fdbfdb665931 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs b/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs new file mode 100644 index 0000000..eefe230 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs @@ -0,0 +1,87 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ComicBook))] + public class ComicBookEditor : BaseEffectEditor + { + SerializedProperty p_StripAngle; + SerializedProperty p_StripDensity; + SerializedProperty p_StripThickness; + SerializedProperty p_StripLimits; + SerializedProperty p_StripInnerColor; + SerializedProperty p_StripOuterColor; + + SerializedProperty p_FillColor; + SerializedProperty p_BackgroundColor; + + SerializedProperty p_EdgeDetection; + SerializedProperty p_EdgeThreshold; + SerializedProperty p_EdgeColor; + + SerializedProperty p_Amount; + + void OnEnable() + { + p_StripAngle = serializedObject.FindProperty("StripAngle"); + p_StripDensity = serializedObject.FindProperty("StripDensity"); + p_StripThickness = serializedObject.FindProperty("StripThickness"); + p_StripLimits = serializedObject.FindProperty("StripLimits"); + p_StripInnerColor = serializedObject.FindProperty("StripInnerColor"); + p_StripOuterColor = serializedObject.FindProperty("StripOuterColor"); + + p_FillColor = serializedObject.FindProperty("FillColor"); + p_BackgroundColor = serializedObject.FindProperty("BackgroundColor"); + + p_EdgeDetection = serializedObject.FindProperty("EdgeDetection"); + p_EdgeThreshold = serializedObject.FindProperty("EdgeThreshold"); + p_EdgeColor = serializedObject.FindProperty("EdgeColor"); + + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_FillColor); + EditorGUILayout.PropertyField(p_BackgroundColor); + + GUILayout.Label(GetContent("Strips"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_StripAngle, GetContent("Angle")); + EditorGUILayout.PropertyField(p_StripDensity, GetContent("Density")); + EditorGUILayout.PropertyField(p_StripThickness, GetContent("Thickness")); + Vector2 l = p_StripLimits.vector2Value; + EditorGUILayout.MinMaxSlider(GetContent("Limits|Luminance limits used to draw the strips. Pixel under the lower bound will be filled with the Fill Color."), ref l.x, ref l.y, 0f, 1.01f); + p_StripLimits.vector2Value = l; + EditorGUILayout.PropertyField(p_StripInnerColor, GetContent("Inner Color")); + EditorGUILayout.PropertyField(p_StripOuterColor, GetContent("Outer Color")); + } + EditorGUI.indentLevel--; + + GUILayout.Label(GetContent("Edge Detection"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_EdgeDetection, GetContent("Toggle")); + + if (p_EdgeDetection.boolValue) + { + EditorGUILayout.PropertyField(p_EdgeThreshold, GetContent("Threshold")); + EditorGUILayout.PropertyField(p_EdgeColor, GetContent("Color")); + } + } + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs.meta new file mode 100644 index 0000000..67b296f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ComicBookEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d80d3ec9bf3002140a9db6278b1b0175 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs b/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs new file mode 100644 index 0000000..dd460ac --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ContrastGain))] + public class ContrastGainEditor : BaseEffectEditor + { + SerializedProperty p_Gain; + + void OnEnable() + { + p_Gain = serializedObject.FindProperty("Gain"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Gain); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs.meta new file mode 100644 index 0000000..95a3c5f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ContrastGainEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5a6292e27063f6140b390ea247988848 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs b/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs new file mode 100644 index 0000000..346d5c6 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs @@ -0,0 +1,58 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ContrastVignette))] + public class ContrastVignetteEditor : BaseEffectEditor + { + SerializedProperty p_Center; + SerializedProperty p_Sharpness; + SerializedProperty p_Darkness; + SerializedProperty p_Contrast; + SerializedProperty p_ContrastCoeff; + SerializedProperty p_EdgeBlending; + + void OnEnable() + { + p_Center = serializedObject.FindProperty("Center"); + p_Sharpness = serializedObject.FindProperty("Sharpness"); + p_Darkness = serializedObject.FindProperty("Darkness"); + p_Contrast = serializedObject.FindProperty("Contrast"); + p_ContrastCoeff = serializedObject.FindProperty("ContrastCoeff"); + p_EdgeBlending = serializedObject.FindProperty("EdgeBlending"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Center); + EditorGUILayout.PropertyField(p_Sharpness); + EditorGUILayout.PropertyField(p_Darkness); + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(p_Contrast); + EditorGUI.indentLevel++; + { + Vector3 coeff = p_ContrastCoeff.vector3Value; + coeff.x = EditorGUILayout.Slider(GetContent("Red Channel|Contrast factor on the red channel."), coeff.x, 0f, 1f); + coeff.y = EditorGUILayout.Slider(GetContent("Green Channel|Contrast factor on the green channel."), coeff.y, 0f, 1f); + coeff.z = EditorGUILayout.Slider(GetContent("Blue Channel|Contrast factor on the blue channel."), coeff.z, 0f, 1f); + p_ContrastCoeff.vector3Value = coeff; + } + EditorGUI.indentLevel--; + + EditorGUILayout.Separator(); + + EditorGUILayout.PropertyField(p_EdgeBlending); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs.meta new file mode 100644 index 0000000..720441e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ContrastVignetteEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d01a95f6eb43e5442bd35d505c95e4eb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs b/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs new file mode 100644 index 0000000..b3cbf0e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs @@ -0,0 +1,103 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Convolution3x3))] + public class Convolution3x3Editor : BaseEffectEditor + { + SerializedProperty p_Divisor; + SerializedProperty p_KernelTop; + SerializedProperty p_KernelMiddle; + SerializedProperty p_KernelBottom; + SerializedProperty p_Amount; + + int selectedPreset = 0; + static GUIContent[] presets = { + new GUIContent("Default"), + new GUIContent("Sharpen"), + new GUIContent("Emboss"), + new GUIContent("Gaussian Blur"), + new GUIContent("Laplacian Edge Detection"), + new GUIContent("Prewitt Edge Detection"), + new GUIContent("Frei-Chen Edge Detection") + }; + static Vector3[,] presetsData = { { new Vector3(0f, 0f, 0f), new Vector3(0f, 1f, 0f), new Vector3(0f, 0f, 0f) }, + { new Vector3(0f, -1f, 0f), new Vector3(-1f, 5f, -1f), new Vector3(0f, -1f, 0f) }, + { new Vector3(-2f, -1f, 0f), new Vector3(-1f, 1f, 1f), new Vector3(0f, 1f, 2f) }, + { new Vector3(1f, 2f, 1f), new Vector3(2f, 4f, 2f), new Vector3(1f, 2f, 1f) }, + { new Vector3(0f, -1f, 0f), new Vector3(-1f, 4f, -1f), new Vector3(0f, -1f, 0f) }, + { new Vector3(0f, 1f, 1f), new Vector3(-1f, 0f, 1f), new Vector3(-1f, -1f, 0f) }, + { new Vector3(-1f, -1.4142f, -1f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1.4142f, 1f) } }; + static float[] presetsDiv = { 1f, 1f, 1f, 16f, 1f, 1f, 1f }; + + void OnEnable() + { + p_Divisor = serializedObject.FindProperty("Divisor"); + p_KernelTop = serializedObject.FindProperty("KernelTop"); + p_KernelMiddle = serializedObject.FindProperty("KernelMiddle"); + p_KernelBottom = serializedObject.FindProperty("KernelBottom"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Divisor); + p_Divisor.floatValue = Mathf.Max(1e-5f, p_Divisor.floatValue); + + Vector3 temp = p_KernelTop.vector3Value; + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(GetContent("Kernel|The kernel matrix.")); + temp.x = EditorGUILayout.FloatField(temp.x); + temp.y = EditorGUILayout.FloatField(temp.y); + temp.z = EditorGUILayout.FloatField(temp.z); + } + EditorGUILayout.EndHorizontal(); + p_KernelTop.vector3Value = temp; + + temp = p_KernelMiddle.vector3Value; + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(" "); + temp.x = EditorGUILayout.FloatField(temp.x); + temp.y = EditorGUILayout.FloatField(temp.y); + temp.z = EditorGUILayout.FloatField(temp.z); + } + EditorGUILayout.EndHorizontal(); + p_KernelMiddle.vector3Value = temp; + + temp = p_KernelBottom.vector3Value; + EditorGUILayout.BeginHorizontal(); + { + EditorGUILayout.PrefixLabel(" "); + temp.x = EditorGUILayout.FloatField(temp.x); + temp.y = EditorGUILayout.FloatField(temp.y); + temp.z = EditorGUILayout.FloatField(temp.z); + } + EditorGUILayout.EndHorizontal(); + p_KernelBottom.vector3Value = temp; + + EditorGUILayout.PropertyField(p_Amount); + + EditorGUI.BeginChangeCheck(); + selectedPreset = EditorGUILayout.Popup(GetContent("Preset"), selectedPreset, presets); + + if (EditorGUI.EndChangeCheck()) + { + p_KernelTop.vector3Value = presetsData[selectedPreset, 0]; + p_KernelMiddle.vector3Value = presetsData[selectedPreset, 1]; + p_KernelBottom.vector3Value = presetsData[selectedPreset, 2]; + p_Divisor.floatValue = presetsDiv[selectedPreset]; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs.meta b/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs.meta new file mode 100644 index 0000000..d2606af --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/Convolution3x3Editor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d3bc843f4e64761439439cd8247a8d37 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs b/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs new file mode 100644 index 0000000..e948ddc --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs @@ -0,0 +1,38 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(CrossStitch))] + public class CrossStitchEditor : BaseEffectEditor + { + SerializedProperty p_Size; + SerializedProperty p_Brightness; + SerializedProperty p_Invert; + SerializedProperty p_Pixelize; + + void OnEnable() + { + p_Size = serializedObject.FindProperty("Size"); + p_Brightness = serializedObject.FindProperty("Brightness"); + p_Invert = serializedObject.FindProperty("Invert"); + p_Pixelize = serializedObject.FindProperty("Pixelize"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Size); + EditorGUILayout.PropertyField(p_Brightness); + EditorGUILayout.PropertyField(p_Invert); + EditorGUILayout.PropertyField(p_Pixelize); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs.meta new file mode 100644 index 0000000..566c486 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/CrossStitchEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f0b83e28ce69a184eb48e2606a945593 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs new file mode 100644 index 0000000..c83152b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs @@ -0,0 +1,41 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(DirectionalBlur))] + public class DirectionalBlurEditor : BaseEffectEditor + { + SerializedProperty p_Quality; + SerializedProperty p_Samples; + SerializedProperty p_Strength; + SerializedProperty p_Angle; + + void OnEnable() + { + p_Quality = serializedObject.FindProperty("Quality"); + p_Samples = serializedObject.FindProperty("Samples"); + p_Strength = serializedObject.FindProperty("Strength"); + p_Angle = serializedObject.FindProperty("Angle"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Quality); + + if (p_Quality.intValue == (int)DirectionalBlur.QualityPreset.Custom) + EditorGUILayout.PropertyField(p_Samples); + + EditorGUILayout.PropertyField(p_Strength); + EditorGUILayout.PropertyField(p_Angle); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs.meta new file mode 100644 index 0000000..ec3c263 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DirectionalBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d96b81a86df7fc64ea61a25c473a2d93 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs b/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs new file mode 100644 index 0000000..5fad5b2 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs @@ -0,0 +1,53 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Dithering))] + public class DitheringEditor : BaseEffectEditor + { + SerializedProperty p_ShowOriginal; + SerializedProperty p_ConvertToGrayscale; + SerializedProperty p_RedLuminance; + SerializedProperty p_GreenLuminance; + SerializedProperty p_BlueLuminance; + SerializedProperty p_Amount; + + void OnEnable() + { + p_ShowOriginal = serializedObject.FindProperty("ShowOriginal"); + p_ConvertToGrayscale = serializedObject.FindProperty("ConvertToGrayscale"); + p_RedLuminance = serializedObject.FindProperty("RedLuminance"); + p_GreenLuminance = serializedObject.FindProperty("GreenLuminance"); + p_BlueLuminance = serializedObject.FindProperty("BlueLuminance"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_ShowOriginal); + EditorGUILayout.PropertyField(p_ConvertToGrayscale); + + if (p_ConvertToGrayscale.boolValue) + { + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_RedLuminance, GetContent("Red")); + EditorGUILayout.PropertyField(p_GreenLuminance, GetContent("Green")); + EditorGUILayout.PropertyField(p_BlueLuminance, GetContent("Blue")); + } + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs.meta new file mode 100644 index 0000000..571b200 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DitheringEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 43490eb5f605e514584169a9fcd414c8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs b/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs new file mode 100644 index 0000000..e4a64ac --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(DoubleVision))] + public class DoubleVisionEditor : BaseEffectEditor + { + SerializedProperty p_Displace; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Displace = serializedObject.FindProperty("Displace"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Displace); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs.meta new file mode 100644 index 0000000..98afa2f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DoubleVisionEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6ea8f17d16dc36b41b065f4aa0c4dcaf +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs b/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs new file mode 100644 index 0000000..2149eee --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs @@ -0,0 +1,227 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(DynamicLookup))] + public class DynamicLookupEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + SerializedProperty p_White; + SerializedProperty p_Black; + SerializedProperty p_Red; + SerializedProperty p_Green; + SerializedProperty p_Blue; + SerializedProperty p_Yellow; + SerializedProperty p_Magenta; + SerializedProperty p_Cyan; + + static Material m_GraphMaterial; + static Texture2D m_CursorActive; + static Texture2D m_CursorInactive; + + SerializedProperty[] m_Colors; + SerializedProperty m_SelectedColor; + Rect[] m_ClickRectsWhite; + Rect[] m_ClickRectsBlack; + float m_InspectorWidth = 1f; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + p_White = serializedObject.FindProperty("White"); + p_Black = serializedObject.FindProperty("Black"); + p_Red = serializedObject.FindProperty("Red"); + p_Green = serializedObject.FindProperty("Green"); + p_Blue = serializedObject.FindProperty("Blue"); + p_Yellow = serializedObject.FindProperty("Yellow"); + p_Magenta = serializedObject.FindProperty("Magenta"); + p_Cyan = serializedObject.FindProperty("Cyan"); + + m_Colors = new SerializedProperty[] { p_White, p_Red, p_Magenta, p_Blue, p_Cyan, p_Green, p_Yellow }; + m_ClickRectsWhite = new Rect[7]; + m_ClickRectsBlack = new Rect[7]; + } + + void CheckResources() + { + if (m_GraphMaterial == null) + { + m_GraphMaterial = new Material(Shader.Find("Hidden/Colorful/Editor/_DynamicLookup")); + m_GraphMaterial.hideFlags = HideFlags.HideAndDontSave; + } + + if (m_CursorActive == null) + m_CursorActive = Resources.Load("UI/ColorCubeCursorActive"); + + if (m_CursorInactive == null) + m_CursorInactive = Resources.Load("UI/ColorCubeCursorInactive"); + } + + void DrawIsometricCube(Rect r, SerializedProperty centerColor, bool seeThrough) + { + CheckResources(); + m_Colors[0] = centerColor; + m_GraphMaterial.SetPass(0); + + // Events + Event e = Event.current; + Rect[] clickRects = seeThrough ? m_ClickRectsBlack : m_ClickRectsWhite; + + if (e.type == EventType.MouseDown) + { + Vector2 pos = e.mousePosition; + + for (int i = 0; i < m_ClickRectsWhite.Length; i++) + { + if (clickRects[i].Contains(pos)) + { + m_SelectedColor = m_Colors[i]; + e.Use(); + break; + } + } + } + + // Points + float size = Mathf.Min(r.height, r.width) - 30f; + float size_2 = size / 2f; + float size_4 = size / 4f; + float centerW = r.x + r.width / 2f; + float centerH = r.y + r.height / 2f + 5f; + + Vector3[] points = { + new Vector3(centerW, centerH), // White / Black + new Vector3(centerW, centerH - size_2), // Red + new Vector3(centerW + size_2, centerH - size_4), // Magenta + new Vector3(centerW + size_2, centerH + size_4), // Blue + new Vector3(centerW, centerH + size_2), // Cyan + new Vector3(centerW - size_2, centerH + size_4), // Green + new Vector3(centerW - size_2, centerH - size_4), // Yellow + }; + + // Fill + GL.PushMatrix(); + { + GL.Begin(GL.TRIANGLES); + { + // Top right + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Red.colorValue); GL.Vertex(points[1]); + GL.Color(p_Magenta.colorValue); GL.Vertex(points[2]); + + // Right + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Magenta.colorValue); GL.Vertex(points[2]); + GL.Color(p_Blue.colorValue); GL.Vertex(points[3]); + + // Bottom right + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Blue.colorValue); GL.Vertex(points[3]); + GL.Color(p_Cyan.colorValue); GL.Vertex(points[4]); + + // Bottom left + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Cyan.colorValue); GL.Vertex(points[4]); + GL.Color(p_Green.colorValue); GL.Vertex(points[5]); + + // Left + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Green.colorValue); GL.Vertex(points[5]); + GL.Color(p_Yellow.colorValue); GL.Vertex(points[6]); + + // Top left + GL.Color(centerColor.colorValue); GL.Vertex(points[0]); + GL.Color(p_Yellow.colorValue); GL.Vertex(points[6]); + GL.Color(p_Red.colorValue); GL.Vertex(points[1]); + } + GL.End(); + } + GL.PopMatrix(); + + // Inlines + if (!seeThrough) + { + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[2] }); + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[4] }); + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[6] }); + } + else + { + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[1] }); + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[3] }); + Handles.DrawAAPolyLine(1f, new Vector3[] { points[0], points[5] }); + } + + // Outlines + Handles.color = new Color(1f, 1f, 1f, 2f); + Handles.DrawAAPolyLine(4f, new Vector3[] { + points[1], points[2], points[3], points[4], + points[5], points[6], points[1] + }); + + // Cursors + for (int i = 0; i < points.Length; i++) + { + Rect cursorRect = new Rect(points[i].x - 8f, points[i].y - 8f, 16f, 16f); + Texture2D cursor = m_CursorInactive; + + if (m_SelectedColor == m_Colors[i]) + cursor = m_CursorActive; + + GUI.DrawTexture(cursorRect, cursor); + cursorRect = new Rect(cursorRect.x - 6f, cursorRect.y - 6f, cursorRect.width + 12f, cursorRect.height + 12f); + + if (e.type == EventType.Repaint) + { + if (seeThrough) + m_ClickRectsBlack[i] = cursorRect; + else + m_ClickRectsWhite[i] = cursorRect; + } + } + } + + void ComputeInspectorWidth() + { + // Dirty trick to get the inspector width, works with scrollbars too + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + + float w = GUILayoutUtility.GetLastRect().width; + + if (Event.current.type == EventType.Repaint) + m_InspectorWidth = w; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + ComputeInspectorWidth(); + + EditorGUILayout.BeginHorizontal(); + { + float h = Mathf.Min(m_InspectorWidth / 2f, 216f); + + DrawIsometricCube(GUILayoutUtility.GetRect(50f, h), p_White, false); + DrawIsometricCube(GUILayoutUtility.GetRect(50f, h), p_Black, true); + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + + if (m_SelectedColor != null) + EditorGUILayout.PropertyField(m_SelectedColor); + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs.meta new file mode 100644 index 0000000..86bb8ab --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/DynamicLookupEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a18b5e6e202496840a9d0e1e138a7fd8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs b/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs new file mode 100644 index 0000000..11b1782 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs @@ -0,0 +1,45 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + using ColorMode = FastVignette.ColorMode; + + [CustomEditor(typeof(FastVignette))] + public class FastVignetteEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Color; + SerializedProperty p_Center; + SerializedProperty p_Sharpness; + SerializedProperty p_Darkness; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Color = serializedObject.FindProperty("Color"); + p_Center = serializedObject.FindProperty("Center"); + p_Sharpness = serializedObject.FindProperty("Sharpness"); + p_Darkness = serializedObject.FindProperty("Darkness"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + + if (p_Mode.intValue == (int)ColorMode.Colored) + EditorGUILayout.PropertyField(p_Color); + + EditorGUILayout.PropertyField(p_Center); + EditorGUILayout.PropertyField(p_Sharpness); + EditorGUILayout.PropertyField(p_Darkness); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs.meta new file mode 100644 index 0000000..ec9e87f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/FastVignetteEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3be4d3353f6c1c44d9a88d51e4782b5b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/FrostEditor.cs b/Assets/Colorful FX/Editor/Effects/FrostEditor.cs new file mode 100644 index 0000000..ea78427 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/FrostEditor.cs @@ -0,0 +1,44 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Frost))] + public class FrostEditor : BaseEffectEditor + { + SerializedProperty p_Scale; + SerializedProperty p_Sharpness; + SerializedProperty p_Darkness; + SerializedProperty p_EnableVignette; + + void OnEnable() + { + p_Scale = serializedObject.FindProperty("Scale"); + p_Sharpness = serializedObject.FindProperty("Sharpness"); + p_Darkness = serializedObject.FindProperty("Darkness"); + p_EnableVignette = serializedObject.FindProperty("EnableVignette"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Scale); + EditorGUILayout.PropertyField(p_EnableVignette, new GUIContent("Vignette")); + + if (p_EnableVignette.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(p_Sharpness); + EditorGUILayout.PropertyField(p_Darkness); + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/FrostEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/FrostEditor.cs.meta new file mode 100644 index 0000000..da2ef01 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/FrostEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4b789574aca839f4fb0bfcce638621ce +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs new file mode 100644 index 0000000..43a33b0 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(GaussianBlur))] + public class GaussianBlurEditor : BaseEffectEditor + { + SerializedProperty p_Passes; + SerializedProperty p_Downscaling; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Passes = serializedObject.FindProperty("Passes"); + p_Downscaling = serializedObject.FindProperty("Downscaling"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Passes); + EditorGUILayout.PropertyField(p_Downscaling); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs.meta new file mode 100644 index 0000000..1fccc5f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GaussianBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fcb034686274b6b45a17bf5fac223ad2 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs b/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs new file mode 100644 index 0000000..a6f15e0 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs @@ -0,0 +1,142 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Glitch))] + public class GlitchEditor : BaseEffectEditor + { + SerializedProperty p_RandomActivation; + SerializedProperty p_RandomEvery; + SerializedProperty p_RandomDuration; + + SerializedProperty p_Mode; + SerializedProperty p_InterferencesSettings; + SerializedProperty p_TearingSettings; + + SerializedProperty p_InterferencesSpeed; + SerializedProperty p_InterferencesDensity; + SerializedProperty p_InterferencesMaxDisplacement; + + SerializedProperty p_TearingSpeed; + SerializedProperty p_TearingIntensity; + SerializedProperty p_TearingMaxDisplacement; + SerializedProperty p_TearingAllowFlipping; + SerializedProperty p_TearingYuvColorBleeding; + SerializedProperty p_TearingYuvOffset; + + void OnEnable() + { + p_RandomActivation = serializedObject.FindProperty("RandomActivation"); + p_RandomEvery = serializedObject.FindProperty("RandomEvery"); + p_RandomDuration = serializedObject.FindProperty("RandomDuration"); + + p_Mode = serializedObject.FindProperty("Mode"); + p_InterferencesSettings = serializedObject.FindProperty("SettingsInterferences"); + p_TearingSettings = serializedObject.FindProperty("SettingsTearing"); + + p_InterferencesSpeed = p_InterferencesSettings.FindPropertyRelative("Speed"); + p_InterferencesDensity = p_InterferencesSettings.FindPropertyRelative("Density"); + p_InterferencesMaxDisplacement = p_InterferencesSettings.FindPropertyRelative("MaxDisplacement"); + + p_TearingSpeed = p_TearingSettings.FindPropertyRelative("Speed"); + p_TearingIntensity = p_TearingSettings.FindPropertyRelative("Intensity"); + p_TearingMaxDisplacement = p_TearingSettings.FindPropertyRelative("MaxDisplacement"); + p_TearingAllowFlipping = p_TearingSettings.FindPropertyRelative("AllowFlipping"); + p_TearingYuvColorBleeding = p_TearingSettings.FindPropertyRelative("YuvColorBleeding"); + p_TearingYuvOffset = p_TearingSettings.FindPropertyRelative("YuvOffset"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_RandomActivation); + + if (p_RandomActivation.boolValue) + { + DoTimingUI(p_RandomEvery, GetContent("Every"), 50f); + DoTimingUI(p_RandomDuration, GetContent("For"), 50f); + EditorGUILayout.Space(); + } + + EditorGUILayout.PropertyField(p_Mode); + + if (p_Mode.enumValueIndex == (int)Glitch.GlitchingMode.Interferences) + { + DoInterferencesUI(); + } + else if (p_Mode.enumValueIndex == (int)Glitch.GlitchingMode.Tearing) + { + DoTearingUI(); + } + else // Complete + { + EditorGUILayout.LabelField(GetContent("Interferences"), EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + { + DoInterferencesUI(); + } + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + EditorGUILayout.LabelField(GetContent("Tearing"), EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + { + DoTearingUI(); + } + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + + void DoInterferencesUI() + { + EditorGUILayout.PropertyField(p_InterferencesSpeed); + EditorGUILayout.PropertyField(p_InterferencesDensity); + EditorGUILayout.PropertyField(p_InterferencesMaxDisplacement); + } + + void DoTearingUI() + { + EditorGUILayout.PropertyField(p_TearingSpeed); + EditorGUILayout.PropertyField(p_TearingIntensity); + EditorGUILayout.PropertyField(p_TearingMaxDisplacement); + EditorGUILayout.PropertyField(p_TearingYuvColorBleeding, GetContent("YUV Color Bleeding")); + + if (p_TearingYuvColorBleeding.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(p_TearingYuvOffset, GetContent("Offset")); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(p_TearingAllowFlipping); + } + + void DoTimingUI(SerializedProperty prop, GUIContent label, float labelWidth) + { + Vector2 v = prop.vector2Value; + + EditorGUILayout.BeginHorizontal(); + { + GUILayout.Space(EditorGUIUtility.labelWidth - 3); + GUILayout.Label(label, GUILayout.ExpandWidth(false), GUILayout.Width(labelWidth)); + v.x = EditorGUILayout.FloatField(v.x, GUILayout.MaxWidth(75)); + GUILayout.Label(GetContent("to"), GUILayout.ExpandWidth(false)); + v.y = EditorGUILayout.FloatField(v.y, GUILayout.MaxWidth(75)); + GUILayout.Label(GetContent("second(s)"), GUILayout.ExpandWidth(false)); + } + EditorGUILayout.EndHorizontal(); + + prop.vector2Value = v; + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs.meta new file mode 100644 index 0000000..f53368b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GlitchEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 57e2ab7d58ca1e4458448984e8309f1f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs b/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs new file mode 100644 index 0000000..15f2dff --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs @@ -0,0 +1,36 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(GradientRampDynamic))] + public class GradientRampDynamicEditor : BaseEffectEditor + { + SerializedProperty p_Ramp; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Ramp = serializedObject.FindProperty("Ramp"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(p_Ramp); + if (EditorGUI.EndChangeCheck()) + (target as GradientRampDynamic).UpdateGradientCache(); + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs.meta new file mode 100644 index 0000000..b9b38ad --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GradientRampDynamicEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8ee9d7d27f4dd3141955e9ad9da5626e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs b/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs new file mode 100644 index 0000000..4b1bdd8 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(GradientRamp))] + public class GradientRampEditor : BaseEffectEditor + { + SerializedProperty p_RampTexture; + SerializedProperty p_Amount; + + void OnEnable() + { + p_RampTexture = serializedObject.FindProperty("RampTexture"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_RampTexture); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs.meta new file mode 100644 index 0000000..5afa81b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GradientRampEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c770ef3f88fef48469dc767603d7861d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs new file mode 100644 index 0000000..bcf0c6c --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(GrainyBlur))] + public class GrainyBlurEditor : BaseEffectEditor + { + SerializedProperty p_Radius; + SerializedProperty p_Samples; + + void OnEnable() + { + p_Radius = serializedObject.FindProperty("Radius"); + p_Samples = serializedObject.FindProperty("Samples"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Radius); + EditorGUILayout.PropertyField(p_Samples); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs.meta new file mode 100644 index 0000000..a68026e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GrainyBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6115c55fccefd0b4ab1c9ff4a54578c1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs b/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs new file mode 100644 index 0000000..9a77afd --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs @@ -0,0 +1,65 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Grayscale))] + public class GrayscaleEditor : BaseEffectEditor + { + SerializedProperty p_RedLuminance; + SerializedProperty p_GreenLuminance; + SerializedProperty p_BlueLuminance; + SerializedProperty p_Amount; + + static GUIContent[] presets = { + new GUIContent("Choose a preset..."), + new GUIContent("Default"), + new GUIContent("Unity Default"), + new GUIContent("Naive") + }; + static float[,] presetsData = { { 0.299f, 0.587f, 0.114f }, { 0.222f, 0.707f, 0.071f }, { 0.333f, 0.334f, 0.333f } }; + + void OnEnable() + { + p_RedLuminance = serializedObject.FindProperty("RedLuminance"); + p_GreenLuminance = serializedObject.FindProperty("GreenLuminance"); + p_BlueLuminance = serializedObject.FindProperty("BlueLuminance"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + GUILayout.Label("Luminance", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_RedLuminance, GetContent("Red")); + EditorGUILayout.PropertyField(p_GreenLuminance, GetContent("Green")); + EditorGUILayout.PropertyField(p_BlueLuminance, GetContent("Blue")); + } + EditorGUI.indentLevel--; + + EditorGUILayout.Separator(); + EditorGUILayout.PropertyField(p_Amount); + + EditorGUI.BeginChangeCheck(); + int selectedPreset = EditorGUILayout.Popup(GetContent("Preset"), 0, presets); + + if (EditorGUI.EndChangeCheck() && selectedPreset > 0) + { + selectedPreset--; + p_RedLuminance.floatValue = presetsData[selectedPreset, 0]; + p_GreenLuminance.floatValue = presetsData[selectedPreset, 1]; + p_BlueLuminance.floatValue = presetsData[selectedPreset, 2]; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs.meta new file mode 100644 index 0000000..5798ffe --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/GrayscaleEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2c77ef04cea05d44dad9f90afae3116d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs b/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs new file mode 100644 index 0000000..3de9bf7 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Halftone))] + public class HalftoneEditor : BaseEffectEditor + { + SerializedProperty p_Scale; + SerializedProperty p_DotSize; + SerializedProperty p_Angle; + SerializedProperty p_Smoothness; + SerializedProperty p_Center; + SerializedProperty p_Desaturate; + + void OnEnable() + { + p_Scale = serializedObject.FindProperty("Scale"); + p_DotSize = serializedObject.FindProperty("DotSize"); + p_Angle = serializedObject.FindProperty("Angle"); + p_Smoothness = serializedObject.FindProperty("Smoothness"); + p_Center = serializedObject.FindProperty("Center"); + p_Desaturate = serializedObject.FindProperty("Desaturate"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Scale); + EditorGUILayout.PropertyField(p_DotSize); + EditorGUILayout.PropertyField(p_Smoothness); + EditorGUILayout.PropertyField(p_Angle); + + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_Center); + } + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField(p_Desaturate); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs.meta new file mode 100644 index 0000000..6d9b382 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HalftoneEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0e071755be1eea74c9284b5b29cbcd26 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs b/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs new file mode 100644 index 0000000..7a807dc --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs @@ -0,0 +1,342 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + using UnityEditorInternal; + using System; + using Channel = Histogram.Channel; + + [CustomEditor(typeof(Histogram))] + public class HistogramEditor : BaseEffectEditor + { + SerializedProperty p_CurrentChannel; + SerializedProperty p_Logarithmic; + SerializedProperty p_AutoRefresh; + + Histogram m_Target; + int[] m_Histogram = new int[256]; + int[] m_HistogramRGB = new int[256 * 3]; + Rect m_HistogramRect = new Rect(0f, 0f, 1f, 1f); + Texture2D m_TempTexture; + + Color MasterColor = new Color(1f, 1f, 1f, 2f); + Color RedColor = new Color(1f, 0f, 0f, 2f); + Color GreenColor = new Color(0f, 1f, 0f, 2f); + Color BlueColor = new Color(0f, 1f, 1f, 2f); + + void OnEnable() + { + p_CurrentChannel = serializedObject.FindProperty("e_CurrentChannel"); + p_Logarithmic = serializedObject.FindProperty("e_Logarithmic"); + p_AutoRefresh = serializedObject.FindProperty("e_AutoRefresh"); + + m_Target = target as Histogram; + m_Target.e_OnFrameEnd = UpdateHistogram; + m_Target.InternalForceRefresh(); + + InternalEditorUtility.RepaintAllViews(); + } + + void OnDisable() + { + m_Target.e_OnFrameEnd = null; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + // Sizing + if (!EditorGUIUtility.isProSkin) + EditorGUILayout.Space(); + + EditorGUILayout.BeginHorizontal(); + { + Rect rect = GUILayoutUtility.GetRect(256f, 128f); + float width = Mathf.Min(512f, rect.width); + float height = Mathf.Min(128f, rect.height); + + if (Event.current.type == EventType.Repaint) + { + m_HistogramRect = new Rect( + Mathf.Floor(rect.x + rect.width / 2f - width / 2f), + Mathf.Floor(rect.y + rect.height / 2f - height / 2f), + width, height + ); + } + } + EditorGUILayout.EndHorizontal(); + + if (!EditorGUIUtility.isProSkin) + EditorGUILayout.Space(); + + // Histogram + if (!EditorGUIUtility.isProSkin) + { + Vector3[] verts = new Vector3[] { + new Vector3(m_HistogramRect.x - 4, m_HistogramRect.y - 4), + new Vector3(m_HistogramRect.xMax + 4, m_HistogramRect.y - 4), + new Vector3(m_HistogramRect.xMax + 4, m_HistogramRect.yMax + 4), + new Vector3(m_HistogramRect.x - 4, m_HistogramRect.yMax + 4) + }; + Handles.DrawSolidRectangleWithOutline(verts, new Color(0.21f, 0.21f, 0.21f, 2.0f), new Color(0.21f, 0.21f, 0.21f, 2.0f)); + } + + if (p_CurrentChannel.intValue == (int)Channel.RGB) + DrawHistogramRGB(m_HistogramRect); + else + DrawHistogram(m_HistogramRect); + + // UI + EditorGUI.BeginChangeCheck(); + + EditorGUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + EditorGUILayout.BeginHorizontal(GUILayout.Width(m_HistogramRect.width)); + { + Channel currentChannel = (Channel)p_CurrentChannel.intValue; + currentChannel = (Channel)EditorGUILayout.EnumPopup(currentChannel); + p_CurrentChannel.intValue = (int)currentChannel; + + GUILayout.FlexibleSpace(); + + p_Logarithmic.boolValue = GUILayout.Toggle(p_Logarithmic.boolValue, GetContent("Log"), EditorStyles.miniButtonLeft); + p_AutoRefresh.boolValue = GUILayout.Toggle(p_AutoRefresh.boolValue, GetContent("Auto Refresh"), EditorStyles.miniButtonMid); + + EditorGUI.BeginDisabledGroup(p_AutoRefresh.boolValue); + + if (GUILayout.Button(GetContent("Refresh"), EditorStyles.miniButtonRight)) + Refresh(); + + EditorGUI.EndDisabledGroup(); + } + EditorGUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + } + EditorGUILayout.EndHorizontal(); + + if (EditorGUI.EndChangeCheck()) + Refresh(); + + serializedObject.ApplyModifiedProperties(); + } + + void Refresh() + { + m_Target.InternalForceRefresh(); + InternalEditorUtility.RepaintAllViews(); + } + + void UpdateHistogram(RenderTexture source) + { + if (m_TempTexture == null || m_TempTexture.width != source.width || m_TempTexture.height != source.height) + { + if (m_TempTexture != null) + DestroyImmediate(m_TempTexture); + + m_TempTexture = new Texture2D(source.width, source.height, TextureFormat.RGB24, false); + m_TempTexture.anisoLevel = 0; + m_TempTexture.wrapMode = TextureWrapMode.Clamp; + m_TempTexture.filterMode = FilterMode.Bilinear; + m_TempTexture.hideFlags = HideFlags.HideAndDontSave; + } + + // Grab the screen content for the camera + RenderTexture.active = source; + m_TempTexture.ReadPixels(new Rect(0, 0, source.width, source.height), 0, 0, false); + m_TempTexture.Apply(); + RenderTexture.active = null; + + // Raw histogram data + Color[] pixels = m_TempTexture.GetPixels(); + + switch (p_CurrentChannel.intValue) + { + case (int)Channel.RGB: + Array.Clear(m_HistogramRGB, 0, 256 * 3); + for (int i = 0; i < pixels.Length; i++) + { + Color c = pixels[i]; + m_HistogramRGB[(int)(c.r * 255)]++; + m_HistogramRGB[(int)(c.g * 255) + 256]++; + m_HistogramRGB[(int)(c.b * 255) + 512]++; + } + break; + case (int)Channel.Luminance: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + { + Color c = pixels[i]; + m_Histogram[(int)((c.r * 0.2125f + c.g * 0.7154f + c.b * 0.0721f) * 255)]++; + } + break; + case (int)Channel.Red: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].r * 255)]++; + break; + case (int)Channel.Green: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].g * 255)]++; + break; + case (int)Channel.Blue: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].b * 255)]++; + break; + } + } + + void DrawHistogram(Rect rect) + { + // Scale histogram values + int[] scaledHistogram = new int[256]; + + int max = 0; + for (int i = 0; i < 256; i++) + max = (max < m_Histogram[i]) ? m_Histogram[i] : max; + + scaledHistogram = new int[256]; + + if (p_Logarithmic.boolValue) + { + float factor = rect.height / Mathf.Log10(max); + + for (int i = 0; i < 256; i++) + scaledHistogram[i] = (m_Histogram[i] == 0) ? 0 : Mathf.Max(Mathf.RoundToInt(Mathf.Log10(m_Histogram[i]) * factor), 1); + } + else + { + float factor = rect.height / max; + + for (int i = 0; i < 256; i++) + scaledHistogram[i] = Mathf.Max(Mathf.RoundToInt(m_Histogram[i] * factor), 1); + } + + // Color + if (p_CurrentChannel.intValue == (int)Channel.Luminance) + Handles.color = MasterColor; + else if (p_CurrentChannel.intValue == (int)Channel.Red) + Handles.color = RedColor; + else if (p_CurrentChannel.intValue == (int)Channel.Green) + Handles.color = GreenColor; + else + Handles.color = BlueColor; + + // Base line + Vector2 p1 = new Vector2(rect.x - 1, rect.yMax); + Vector2 p2 = new Vector2(rect.xMax - 1, rect.yMax); + Handles.DrawLine(p1, p2); + + // Histogram + for (int i = 0; i < (int)rect.width; i++) + { + float remapI = (float)i / rect.width * 255f; + int index = Mathf.FloorToInt(remapI); + float fract = remapI - (float)index; + float v1 = scaledHistogram[index]; + float v2 = scaledHistogram[Mathf.Min(index + 1, 255)]; + float h = v1 * (1.0f - fract) + v2 * fract; + Handles.DrawLine( + new Vector2(rect.x + i, rect.yMax), + new Vector2(rect.x + i, rect.yMin + (rect.height - h)) + ); + } + } + + void DrawHistogramRGB(Rect rect) + { + // Scale histogram values + Vector3 max = Vector3.zero; + for (int i = 0; i < 256; i++) + { + max.x = (max.x < m_HistogramRGB[i]) ? m_HistogramRGB[i] : max.x; + max.y = (max.y < m_HistogramRGB[i + 256]) ? m_HistogramRGB[i + 256] : max.y; + max.z = (max.z < m_HistogramRGB[i + 512]) ? m_HistogramRGB[i + 512] : max.z; + } + + Vector3[] scaledHistogramRGB = new Vector3[256]; + + if (p_Logarithmic.boolValue) + { + Vector3 factor = new Vector3( + rect.height / Mathf.Log10(max.x), + rect.height / Mathf.Log10(max.y), + rect.height / Mathf.Log10(max.z) + ); + + for (int i = 0; i < 256; i++) + { + scaledHistogramRGB[i] = new Vector3( + (m_HistogramRGB[i] == 0) ? 0 : Mathf.Max(Mathf.RoundToInt(Mathf.Log10(m_HistogramRGB[i]) * factor.x), 1), + (m_HistogramRGB[i + 256] == 0) ? 0 : Mathf.Max(Mathf.RoundToInt(Mathf.Log10(m_HistogramRGB[i + 256]) * factor.y), 1), + (m_HistogramRGB[i + 512] == 0) ? 0 : Mathf.Max(Mathf.RoundToInt(Mathf.Log10(m_HistogramRGB[i + 512]) * factor.z), 1) + ); + } + } + else + { + Vector3 factor = new Vector3(rect.height / max.x, rect.height / max.y, rect.height / max.z); + + for (int i = 0; i < 256; i++) + { + scaledHistogramRGB[i] = new Vector3( + Mathf.Max(Mathf.RoundToInt(m_HistogramRGB[i] * factor.x), 1), + Mathf.Max(Mathf.RoundToInt(m_HistogramRGB[i + 256] * factor.y), 1), + Mathf.Max(Mathf.RoundToInt(m_HistogramRGB[i + 512] * factor.z), 1) + ); + } + } + + // Base line + Handles.color = MasterColor; + Vector2 p1 = new Vector2(rect.x - 1, rect.yMax); + Vector2 p2 = new Vector2(rect.xMax - 1, rect.yMax); + Handles.DrawLine(p1, p2); + Color[] colors = { RedColor, GreenColor, BlueColor }; + + // Histogram + for (int i = 0; i < (int)rect.width; i++) + { + int[] heights = new int[3]; + + for (int j = 0; j < 3; j++) + { + float remapI = (float)i / rect.width * 255f; + int index = Mathf.FloorToInt(remapI); + float fract = remapI - (float)index; + float v1 = scaledHistogramRGB[index][j]; + float v2 = scaledHistogramRGB[Mathf.Min(index + 1, 255)][j]; + heights[j] = (int)(v1 * (1.0f - fract) + v2 * fract); + } + + int[] indices = { 0, 1, 2 }; + Array.Sort(indices, (a, b) => heights[a].CompareTo(heights[b])); + + Handles.color = MasterColor; + Handles.DrawLine( + new Vector2(rect.x + i, rect.yMax), + new Vector2(rect.x + i, rect.yMin + (rect.height - heights[indices[0]])) + ); + + Handles.color = colors[indices[2]] + colors[indices[1]]; + Handles.DrawLine( + new Vector2(rect.x + i, rect.yMin + (rect.height - heights[indices[0]])), + new Vector2(rect.x + i, rect.yMin + (rect.height - heights[indices[1]])) + ); + + Handles.color = colors[indices[2]]; + Handles.DrawLine( + new Vector2(rect.x + i, rect.yMin + (rect.height - heights[indices[1]])), + new Vector2(rect.x + i, rect.yMin + (rect.height - heights[indices[2]])) + ); + } + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs.meta new file mode 100644 index 0000000..29456a3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HistogramEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9d071f1f04ead6742938ba8b073f2740 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs b/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs new file mode 100644 index 0000000..ac25676 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs @@ -0,0 +1,53 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(HueFocus))] + public class HueFocusEditor : BaseEffectEditor + { + SerializedProperty p_Hue; + SerializedProperty p_Range; + SerializedProperty p_Boost; + SerializedProperty p_Amount; + Texture2D m_HueRamp; + + void OnEnable() + { + p_Hue = serializedObject.FindProperty("Hue"); + p_Range = serializedObject.FindProperty("Range"); + p_Boost = serializedObject.FindProperty("Boost"); + p_Amount = serializedObject.FindProperty("Amount"); + + m_HueRamp = Resources.Load("UI/HueRamp"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.Separator(); + + Rect rect = GUILayoutUtility.GetRect(0, 20); + GUI.DrawTextureWithTexCoords(rect, m_HueRamp, new Rect(0.5f + p_Hue.floatValue / 360f, 0f, 1f, 1f)); + + GUI.enabled = false; + float min = 180f - p_Range.floatValue; + float max = 180f + p_Range.floatValue; + EditorGUILayout.MinMaxSlider(ref min, ref max, 0f, 360f); + GUI.enabled = true; + + EditorGUILayout.Separator(); + EditorGUILayout.PropertyField(p_Hue); + EditorGUILayout.PropertyField(p_Range); + EditorGUILayout.PropertyField(p_Boost); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs.meta new file mode 100644 index 0000000..79ebb12 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HueFocusEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 95c14fb8c2a52394f9dfe787cbf36a7e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs b/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs new file mode 100644 index 0000000..e39b0d3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs @@ -0,0 +1,125 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(HueSaturationValue))] + public class HueSaturationValueEditor : BaseEffectEditor + { + static string[] channels = { "Master", "Reds", "Yellows", "Greens", "Cyans", "Blues", "Magentas" }; + + SerializedProperty p_MasterHue; + SerializedProperty p_MasterSaturation; + SerializedProperty p_MasterValue; + + SerializedProperty p_RedsHue; + SerializedProperty p_RedsSaturation; + SerializedProperty p_RedsValue; + + SerializedProperty p_YellowsHue; + SerializedProperty p_YellowsSaturation; + SerializedProperty p_YellowsValue; + + SerializedProperty p_GreensHue; + SerializedProperty p_GreensSaturation; + SerializedProperty p_GreensValue; + + SerializedProperty p_CyansHue; + SerializedProperty p_CyansSaturation; + SerializedProperty p_CyansValue; + + SerializedProperty p_BluesHue; + SerializedProperty p_BluesSaturation; + SerializedProperty p_BluesValue; + + SerializedProperty p_MagentasHue; + SerializedProperty p_MagentasSaturation; + SerializedProperty p_MagentasValue; + + SerializedProperty p_AdvancedMode; + SerializedProperty p_CurrentChannel; + + void OnEnable() + { + p_MasterHue = serializedObject.FindProperty("MasterHue"); + p_MasterSaturation = serializedObject.FindProperty("MasterSaturation"); + p_MasterValue = serializedObject.FindProperty("MasterValue"); + + p_RedsHue = serializedObject.FindProperty("RedsHue"); + p_RedsSaturation = serializedObject.FindProperty("RedsSaturation"); + p_RedsValue = serializedObject.FindProperty("RedsValue"); + + p_YellowsHue = serializedObject.FindProperty("YellowsHue"); + p_YellowsSaturation = serializedObject.FindProperty("YellowsSaturation"); + p_YellowsValue = serializedObject.FindProperty("YellowsValue"); + + p_GreensHue = serializedObject.FindProperty("GreensHue"); + p_GreensSaturation = serializedObject.FindProperty("GreensSaturation"); + p_GreensValue = serializedObject.FindProperty("GreensValue"); + + p_CyansHue = serializedObject.FindProperty("CyansHue"); + p_CyansSaturation = serializedObject.FindProperty("CyansSaturation"); + p_CyansValue = serializedObject.FindProperty("CyansValue"); + + p_BluesHue = serializedObject.FindProperty("BluesHue"); + p_BluesSaturation = serializedObject.FindProperty("BluesSaturation"); + p_BluesValue = serializedObject.FindProperty("BluesValue"); + + p_MagentasHue = serializedObject.FindProperty("MagentasHue"); + p_MagentasSaturation = serializedObject.FindProperty("MagentasSaturation"); + p_MagentasValue = serializedObject.FindProperty("MagentasValue"); + + p_AdvancedMode = serializedObject.FindProperty("AdvancedMode"); + p_CurrentChannel = serializedObject.FindProperty("e_CurrentChannel"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + bool advanced = p_AdvancedMode.boolValue; + int channel = p_CurrentChannel.intValue; + + EditorGUILayout.BeginHorizontal(); + if (advanced) channel = EditorGUILayout.Popup(channel, channels); + else channel = 0; + + advanced = GUILayout.Toggle(advanced, GetContent("Advanced Mode"), EditorStyles.miniButton); + EditorGUILayout.EndHorizontal(); + + switch (channel) + { + case 1: Channel(p_RedsHue, p_RedsSaturation, p_RedsValue); + break; + case 2: Channel(p_YellowsHue, p_YellowsSaturation, p_YellowsValue); + break; + case 3: Channel(p_GreensHue, p_GreensSaturation, p_GreensValue); + break; + case 4: Channel(p_CyansHue, p_CyansSaturation, p_CyansValue); + break; + case 5: Channel(p_BluesHue, p_BluesSaturation, p_BluesValue); + break; + case 6: Channel(p_MagentasHue, p_MagentasSaturation, p_MagentasValue); + break; + default: Channel(p_MasterHue, p_MasterSaturation, p_MasterValue); + break; + } + + p_AdvancedMode.boolValue = advanced; + p_CurrentChannel.intValue = channel; + + serializedObject.ApplyModifiedProperties(); + } + + void Channel(SerializedProperty hue, SerializedProperty saturation, SerializedProperty value) + { + EditorGUILayout.PropertyField(hue, GetContent("Hue")); + EditorGUILayout.PropertyField(saturation, GetContent("Saturation")); + EditorGUILayout.PropertyField(value, GetContent("Value")); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs.meta new file mode 100644 index 0000000..02c27da --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/HueSaturationValueEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 98648ea769b03bb4ea9a0f2fad531d98 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs b/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs new file mode 100644 index 0000000..aacf4d4 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Kuwahara))] + public class KuwaharaEditor : BaseEffectEditor + { + SerializedProperty p_Radius; + + void OnEnable() + { + p_Radius = serializedObject.FindProperty("Radius"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Radius); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs.meta new file mode 100644 index 0000000..f5fe32a --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/KuwaharaEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ba3e4ad0653dd0b4eb0f1073baf77ad8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LedEditor.cs b/Assets/Colorful FX/Editor/Effects/LedEditor.cs new file mode 100644 index 0000000..b6b739f --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LedEditor.cs @@ -0,0 +1,53 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Led))] + public class LedEditor : BaseEffectEditor + { + SerializedProperty p_Scale; + SerializedProperty p_Ratio; + SerializedProperty p_AutomaticRatio; + SerializedProperty p_Brightness; + SerializedProperty p_Shape; + SerializedProperty p_Mode; + + void OnEnable() + { + p_Scale = serializedObject.FindProperty("Scale"); + p_Ratio = serializedObject.FindProperty("Ratio"); + p_AutomaticRatio = serializedObject.FindProperty("AutomaticRatio"); + p_Brightness = serializedObject.FindProperty("Brightness"); + p_Shape = serializedObject.FindProperty("Shape"); + p_Mode = serializedObject.FindProperty("Mode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_Scale); + EditorGUILayout.PropertyField(p_Shape); + EditorGUILayout.PropertyField(p_AutomaticRatio); + + if (!p_AutomaticRatio.boolValue) + { + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_Ratio); + } + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(p_Brightness); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LedEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LedEditor.cs.meta new file mode 100644 index 0000000..15a3538 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LedEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 493055e70fc53814b9c9fdd92f38e641 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs new file mode 100644 index 0000000..db915a5 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs @@ -0,0 +1,44 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(LensDistortionBlur))] + public class LensDistortionBlurEditor : BaseEffectEditor + { + SerializedProperty p_Quality; + SerializedProperty p_Samples; + SerializedProperty p_Distortion; + SerializedProperty p_CubicDistortion; + SerializedProperty p_Scale; + + void OnEnable() + { + p_Quality = serializedObject.FindProperty("Quality"); + p_Samples = serializedObject.FindProperty("Samples"); + p_Distortion = serializedObject.FindProperty("Distortion"); + p_CubicDistortion = serializedObject.FindProperty("CubicDistortion"); + p_Scale = serializedObject.FindProperty("Scale"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Quality); + + if (p_Quality.intValue == (int)LensDistortionBlur.QualityPreset.Custom) + EditorGUILayout.PropertyField(p_Samples); + + EditorGUILayout.PropertyField(p_Distortion); + EditorGUILayout.PropertyField(p_CubicDistortion); + EditorGUILayout.PropertyField(p_Scale, GetContent("Scale (Zoom)")); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs.meta new file mode 100644 index 0000000..fb78b91 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LensDistortionBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: db9b779b99d913b46942cfd97c31b5ba +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs b/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs new file mode 100644 index 0000000..8f31a46 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs @@ -0,0 +1,53 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Letterbox))] + public class LetterboxEditor : BaseEffectEditor + { + SerializedProperty p_FillColor; + SerializedProperty p_Aspect; + + static GUIContent[] presets = { + new GUIContent("Choose a preset..."), + new GUIContent("1:1"), + new GUIContent("5:4"), + new GUIContent("4:3"), + new GUIContent("3:2"), + new GUIContent("16:9"), + new GUIContent("16:10"), + new GUIContent("21:9") + }; + static float[] presetsData = { 1f, 5f/4f, 4f/3f, 3f/2f, 16f/9f, 16f/10f, 21f/9f }; + + void OnEnable() + { + p_FillColor = serializedObject.FindProperty("FillColor"); + p_Aspect = serializedObject.FindProperty("Aspect"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_FillColor); + EditorGUILayout.PropertyField(p_Aspect, GetContent("Aspect Ratio")); + + EditorGUI.BeginChangeCheck(); + int selectedPreset = EditorGUILayout.Popup(GetContent("Preset"), 0, presets); + + if (EditorGUI.EndChangeCheck() && selectedPreset > 0) + { + selectedPreset--; + p_Aspect.floatValue = presetsData[selectedPreset]; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs.meta new file mode 100644 index 0000000..53bfbea --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LetterboxEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a5783bc33aba2c044bd202431145954a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs b/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs new file mode 100644 index 0000000..992e7f3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs @@ -0,0 +1,428 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + using UnityEditorInternal; + using System; + using ColorMode = Levels.ColorMode; + using Channel = Levels.Channel; + + [CustomEditor(typeof(Levels))] + public class LevelsEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_InputL; + SerializedProperty p_InputR; + SerializedProperty p_InputG; + SerializedProperty p_InputB; + SerializedProperty p_OutputL; + SerializedProperty p_OutputR; + SerializedProperty p_OutputG; + SerializedProperty p_OutputB; + + SerializedProperty p_CurrentChannel; + SerializedProperty p_Logarithmic; + SerializedProperty p_AutoRefresh; + + Levels m_Target; + Texture2D m_TempTexture; + int[] m_Histogram = new int[256]; + Rect m_HistogramRect = new Rect(0f, 0f, 1f, 1f); + + Color MasterColor = EditorGUIUtility.isProSkin ? new Color(1f, 1f, 1f, 2f) : new Color(0.1f, 0.1f, 0.1f, 2f); + Color RedColor = new Color(1f, 0f, 0f, 2f); + Color GreenColor = EditorGUIUtility.isProSkin ? new Color(0f, 1f, 0f, 2f) : new Color(0.2f, 0.8f, 0.2f, 2f); + Color BlueColor = EditorGUIUtility.isProSkin ? new Color(0f, 1f, 1f, 2f) : new Color(0f, 0f, 1f, 2f); + Texture2D RampTexture; + + static GUIContent[] presets = { + new GUIContent("Choose a preset..."), + new GUIContent("Default"), + new GUIContent("Darker"), + new GUIContent("Increase Contrast 1"), + new GUIContent("Increase Contrast 2"), + new GUIContent("Increase Contrast 3"), + new GUIContent("Lighten Shadows"), + new GUIContent("Lighter"), + new GUIContent("Midtones Brighter"), + new GUIContent("Midtones Darker") + }; + + static float[,] presetsData = { { 0, 1, 255, 0, 255 }, { 15, 1, 255, 0, 255 }, { 10, 1, 245, 0, 255 }, + { 20, 1, 235, 0, 255 }, { 30, 1, 225, 0, 255 }, { 0, 1.6f, 255, 0, 255 }, + { 0, 1, 230, 0, 255 }, { 0, 1.25f, 255, 0, 255 }, { 0, 0.75f, 255, 0, 255 } }; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_InputL = serializedObject.FindProperty("InputL"); + p_InputR = serializedObject.FindProperty("InputR"); + p_InputG = serializedObject.FindProperty("InputG"); + p_InputB = serializedObject.FindProperty("InputB"); + p_OutputL = serializedObject.FindProperty("OutputL"); + p_OutputR = serializedObject.FindProperty("OutputR"); + p_OutputG = serializedObject.FindProperty("OutputG"); + p_OutputB = serializedObject.FindProperty("OutputB"); + + p_CurrentChannel = serializedObject.FindProperty("e_CurrentChannel"); + p_Logarithmic = serializedObject.FindProperty("e_Logarithmic"); + p_AutoRefresh = serializedObject.FindProperty("e_AutoRefresh"); + + RampTexture = Resources.Load(CLib.IsLinearColorSpace() ? "UI/GrayscaleRampLinear" : "UI/GrayscaleRamp"); + + m_Target = target as Levels; + m_Target.e_OnFrameEnd = UpdateHistogram; + m_Target.InternalForceRefresh(); + + InternalEditorUtility.RepaintAllViews(); + } + + void OnDisable() + { + m_Target.e_OnFrameEnd = null; + + if (m_TempTexture != null) + DestroyImmediate(m_TempTexture); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + + EditorGUILayout.BeginHorizontal(); + { + bool isRGB = p_Mode.intValue == (int)ColorMode.RGB; + Channel currentChannel = (Channel)p_CurrentChannel.intValue; + + if (isRGB) currentChannel = (Channel)EditorGUILayout.EnumPopup(currentChannel); + isRGB = GUILayout.Toggle(isRGB, GetContent("Multi-channel Mode"), EditorStyles.miniButton); + + p_Mode.intValue = isRGB ? (int)ColorMode.RGB : (int)ColorMode.Monochrome; + p_CurrentChannel.intValue = (int)currentChannel; + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + { + if (GUILayout.Button(GetContent("Auto B&W"), EditorStyles.miniButton)) + { + int min = 0, max = 255; + + for (int i = 0; i < 256; i++) + { + if (m_Histogram[255 - i] > 0) + min = 255 - i; + + if (m_Histogram[i] > 0) + max = i; + } + + if (p_Mode.intValue == (int)ColorMode.RGB) + { + if (p_CurrentChannel.intValue == (int)Channel.Red) + { + Vector3 input = p_InputR.vector3Value; + input.x = min; + input.y = max; + p_InputR.vector3Value = input; + } + else if (p_CurrentChannel.intValue == (int)Channel.Green) + { + Vector3 input = p_InputG.vector3Value; + input.x = min; + input.y = max; + p_InputG.vector3Value = input; + } + else if (p_CurrentChannel.intValue == (int)Channel.Blue) + { + Vector3 input = p_InputB.vector3Value; + input.x = min; + input.y = max; + p_InputB.vector3Value = input; + } + } + else + { + Vector3 input = p_InputL.vector3Value; + input.x = min; + input.y = max; + p_InputL.vector3Value = input; + } + } + + GUILayout.FlexibleSpace(); + + p_Logarithmic.boolValue = GUILayout.Toggle(p_Logarithmic.boolValue, GetContent("Log"), EditorStyles.miniButtonLeft); + p_AutoRefresh.boolValue = GUILayout.Toggle(p_AutoRefresh.boolValue, GetContent("Auto Refresh"), EditorStyles.miniButtonMid); + + EditorGUI.BeginDisabledGroup(p_AutoRefresh.boolValue); + + if (GUILayout.Button(GetContent("Refresh"), EditorStyles.miniButtonRight)) + Refresh(); + + EditorGUI.EndDisabledGroup(); + } + EditorGUILayout.EndHorizontal(); + + if (EditorGUI.EndChangeCheck()) + Refresh(); + + EditorGUILayout.Space(); + + // Sizing + EditorGUILayout.BeginHorizontal(); + { + Rect rect = GUILayoutUtility.GetRect(256f, 128f); + float width = Mathf.Min(512f, rect.width); + float height = Mathf.Min(128f, rect.height); + + if (Event.current.type == EventType.Repaint) + { + m_HistogramRect = new Rect( + Mathf.Floor(rect.x + rect.width / 2f - width / 2f), + Mathf.Floor(rect.y + rect.height / 2f - height / 2f), + width, height + ); + } + } + EditorGUILayout.EndHorizontal(); + + // Histogram + DrawHistogram(m_HistogramRect); + + // Selected Channel UI + if (p_Mode.intValue == (int)ColorMode.RGB) + { + if (p_CurrentChannel.intValue == (int)Channel.Red) ChannelUI(m_HistogramRect.width, p_InputR, p_OutputR); + else if (p_CurrentChannel.intValue == (int)Channel.Green) ChannelUI(m_HistogramRect.width, p_InputG, p_OutputG); + else if (p_CurrentChannel.intValue == (int)Channel.Blue) ChannelUI(m_HistogramRect.width, p_InputB, p_OutputB); + } + else + { + ChannelUI(m_HistogramRect.width, p_InputL, p_OutputL); + } + + // Presets + EditorGUI.BeginChangeCheck(); + int selectedPreset = EditorGUILayout.Popup(GetContent("Preset"), 0, presets); + if (EditorGUI.EndChangeCheck() && selectedPreset > 0) + { + selectedPreset--; + p_Mode.intValue = (int)ColorMode.Monochrome; + p_InputL.vector3Value = new Vector3( + presetsData[selectedPreset, 0], + presetsData[selectedPreset, 2], + presetsData[selectedPreset, 1] + ); + p_OutputL.vector2Value = new Vector2( + presetsData[selectedPreset, 3], + presetsData[selectedPreset, 4] + ); + } + + serializedObject.ApplyModifiedProperties(); + } + + void Refresh() + { + m_Target.InternalForceRefresh(); + InternalEditorUtility.RepaintAllViews(); + } + + void ChannelUI(float width, SerializedProperty input, SerializedProperty output) + { + float inputMin = input.vector3Value.x; + float inputGamma = input.vector3Value.z; + float inputMax = input.vector3Value.y; + float outputMin = output.vector2Value.x; + float outputMax = output.vector2Value.y; + + // Input + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + EditorGUILayout.MinMaxSlider(ref inputMin, ref inputMax, 0f, 255f, GUILayout.Width(width)); + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + GUILayout.BeginHorizontal(GUILayout.Width(width)); + { + inputMin = EditorGUILayout.FloatField((int)inputMin, GUILayout.Width(50)); + GUILayout.FlexibleSpace(); + inputGamma = EditorGUILayout.FloatField(inputGamma, GUILayout.Width(50)); + GUILayout.FlexibleSpace(); + inputMax = EditorGUILayout.FloatField((int)inputMax, GUILayout.Width(50)); + } + GUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + + // Ramp + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + GUI.DrawTexture(GUILayoutUtility.GetRect(width, 20f), RampTexture, ScaleMode.StretchToFill); + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + + // Output + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + EditorGUILayout.MinMaxSlider(ref outputMin, ref outputMax, 0f, 255f, GUILayout.Width(width)); + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + GUILayout.BeginHorizontal(GUILayout.Width(width)); + { + outputMin = EditorGUILayout.FloatField((int)outputMin, GUILayout.Width(50)); + GUILayout.FlexibleSpace(); + outputMax = EditorGUILayout.FloatField((int)outputMax, GUILayout.Width(50)); + } + GUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + + input.vector3Value = new Vector3(inputMin, inputMax, Mathf.Clamp(inputGamma, 0.1f, 9.99f)); + output.vector2Value = new Vector2(outputMin, outputMax); + + EditorGUILayout.Separator(); + } + + void DrawHistogram(Rect rect) + { + // Scale histogram values + int[] scaledHistogram = new int[256]; + + int max = 0; + for (int i = 0; i < 256; i++) + max = (max < m_Histogram[i]) ? m_Histogram[i] : max; + + scaledHistogram = new int[256]; + + if (p_Logarithmic.boolValue) + { + float factor = rect.height / Mathf.Log10(max); + + for (int i = 0; i < 256; i++) + scaledHistogram[i] = (m_Histogram[i] == 0) ? 0 : Mathf.Max(Mathf.RoundToInt(Mathf.Log10(m_Histogram[i]) * factor), 1); + } + else + { + float factor = rect.height / max; + + for (int i = 0; i < 256; i++) + scaledHistogram[i] = Mathf.Max(Mathf.RoundToInt(m_Histogram[i] * factor), 1); + } + + // Color + if (p_Mode.intValue == (int)ColorMode.RGB) + { + if (p_CurrentChannel.intValue == (int)Channel.Red) + Handles.color = RedColor; + else if (p_CurrentChannel.intValue == (int)Channel.Green) + Handles.color = GreenColor; + else if (p_CurrentChannel.intValue == (int)Channel.Blue) + Handles.color = BlueColor; + } + else + { + Handles.color = MasterColor; + } + + // Base line + Vector2 p1 = new Vector2(rect.x - 1, rect.yMax); + Vector2 p2 = new Vector2(rect.xMax - 1, rect.yMax); + Handles.DrawLine(p1, p2); + + // Histogram + for (int i = 0; i < (int)rect.width; i++) + { + float remapI = (float)i / rect.width * 255f; + int index = Mathf.FloorToInt(remapI); + float fract = remapI - (float)index; + float v1 = scaledHistogram[index]; + float v2 = scaledHistogram[Mathf.Min(index + 1, 255)]; + float h = v1 * (1.0f - fract) + v2 * fract; + Handles.DrawLine( + new Vector2(rect.x + i, rect.yMax), + new Vector2(rect.x + i, rect.yMin + (rect.height - h)) + ); + } + } + + void UpdateHistogram(RenderTexture source) + { + if (m_TempTexture == null || m_TempTexture.width != source.width || m_TempTexture.height != source.height) + { + if (m_TempTexture != null) + DestroyImmediate(m_TempTexture); + + m_TempTexture = new Texture2D(source.width, source.height, TextureFormat.RGB24, false); + m_TempTexture.anisoLevel = 0; + m_TempTexture.wrapMode = TextureWrapMode.Clamp; + m_TempTexture.filterMode = FilterMode.Bilinear; + m_TempTexture.hideFlags = HideFlags.HideAndDontSave; + } + + // Grab the screen content for the camera + RenderTexture.active = source; + m_TempTexture.ReadPixels(new Rect(0, 0, source.width, source.height), 0, 0, false); + m_TempTexture.Apply(); + RenderTexture.active = null; + + // Raw histogram data + Color[] pixels = m_TempTexture.GetPixels(); + + if (m_Target.Mode == ColorMode.Monochrome) + { + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + { + Color c = pixels[i]; + m_Histogram[(int)((c.r * 0.2125f + c.g * 0.7154f + c.b * 0.0721f) * 255)]++; + } + } + else + { + switch (m_Target.e_CurrentChannel) + { + case Channel.Red: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].r * 255)]++; + break; + case Channel.Green: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].g * 255)]++; + break; + case Channel.Blue: + Array.Clear(m_Histogram, 0, 256); + for (int i = 0; i < pixels.Length; i++) + m_Histogram[(int)(pixels[i].b * 255)]++; + break; + } + } + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs.meta new file mode 100644 index 0000000..9f54f8d --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LevelsEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ac5d17dae0d68ac4fae73a57b0b964b8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs b/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs new file mode 100644 index 0000000..9c6d23e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs @@ -0,0 +1,85 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(LoFiPalette))] + public class LoFiPaletteEditor : BaseEffectEditor + { + SerializedProperty p_Palette; + SerializedProperty p_Amount; + SerializedProperty p_ForceCompatibility; + SerializedProperty p_Pixelize; + SerializedProperty p_PixelSize; + + static GUIContent[] palettes = { + new GUIContent("None"), + new GUIContent(""), + new GUIContent("Amstrad CPC"), + new GUIContent("CGA"), + new GUIContent("Commodore 64"), + new GUIContent("Commodore Plus"), + new GUIContent("EGA"), + new GUIContent("GameBoy"), + new GUIContent("MacOS 16"), + new GUIContent("MacOS 256"), + new GUIContent("Master System"), + new GUIContent("RiscOS 16"), + new GUIContent("Teletex"), + new GUIContent("Windows 16"), + new GUIContent("Windows 256"), + new GUIContent("ZX Spectrum"), + new GUIContent(""), + new GUIContent("Andrae"), + new GUIContent("Anodomani"), + new GUIContent("Crayolo"), + new GUIContent("DB16"), + new GUIContent("DB32"), + new GUIContent("DJinn"), + new GUIContent("Drazile A"), + new GUIContent("Drazile B"), + new GUIContent("Drazile C"), + new GUIContent("Eggy"), + new GUIContent("Finlal A"), + new GUIContent("Finlal B"), + new GUIContent("Hapiel"), + new GUIContent("Pavanz A"), + new GUIContent("Pavanz B"), + new GUIContent("Peyton"), + new GUIContent("SpeedyCube") + }; + + void OnEnable() + { + p_Palette = serializedObject.FindProperty("Palette"); + p_Amount = serializedObject.FindProperty("Amount"); + p_ForceCompatibility = serializedObject.FindProperty("ForceCompatibility"); + p_Pixelize = serializedObject.FindProperty("Pixelize"); + p_PixelSize = serializedObject.FindProperty("PixelSize"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + // Using intValue, enumValueIndex seems broken + p_Palette.intValue = EditorGUILayout.Popup(GetContent("Palette"), p_Palette.intValue, palettes); + EditorGUILayout.PropertyField(p_Amount); + EditorGUILayout.PropertyField(p_ForceCompatibility); + EditorGUILayout.PropertyField(p_Pixelize); + + if (p_Pixelize.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(p_PixelSize); + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs.meta new file mode 100644 index 0000000..9f0d2e8 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LoFiPaletteEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 13a2b41bc1dfa8b45b0aa7806eedb14a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs b/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs new file mode 100644 index 0000000..11b9f67 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(LookupFilter3D))] + public class LookupFilter3DEditor : BaseEffectEditor + { + SerializedProperty p_LookupTexture; + SerializedProperty p_Amout; + SerializedProperty p_ForceCompatibility; + + void OnEnable() + { + p_LookupTexture = serializedObject.FindProperty("LookupTexture"); + p_Amout = serializedObject.FindProperty("Amount"); + p_ForceCompatibility = serializedObject.FindProperty("ForceCompatibility"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_LookupTexture); + EditorGUILayout.PropertyField(p_Amout); + EditorGUILayout.PropertyField(p_ForceCompatibility); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs.meta new file mode 100644 index 0000000..b94b135 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LookupFilter3DEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2185476e9656d32409b69f8792dccd82 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs b/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs new file mode 100644 index 0000000..e7f1fe3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs @@ -0,0 +1,34 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(LookupFilter))] + public class LookupFilterEditor : BaseEffectEditor + { + SerializedProperty p_LookupTexture; + SerializedProperty p_Amout; + + void OnEnable() + { + p_LookupTexture = serializedObject.FindProperty("LookupTexture"); + p_Amout = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.HelpBox("This effect is deprecated. Use \"Lookup Filter 3D\" instead for better performances!", MessageType.Warning); + + EditorGUILayout.PropertyField(p_LookupTexture); + EditorGUILayout.PropertyField(p_Amout); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs.meta new file mode 100644 index 0000000..e6fbc68 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/LookupFilterEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d6489f28835764f49bc726c7bc74e89b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs b/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs new file mode 100644 index 0000000..0b80332 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Negative))] + public class NegativeEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs.meta new file mode 100644 index 0000000..a23677a --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/NegativeEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c46e42cb6ddd5ff48832385a30fba226 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs b/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs new file mode 100644 index 0000000..c72bbf6 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Noise))] + public class NoiseEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Animate; + SerializedProperty p_Seed; + SerializedProperty p_Strength; + SerializedProperty p_LumContribution; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Animate = serializedObject.FindProperty("Animate"); + p_Seed = serializedObject.FindProperty("Seed"); + p_Strength = serializedObject.FindProperty("Strength"); + p_LumContribution = serializedObject.FindProperty("LumContribution"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_Animate); + + EditorGUI.BeginDisabledGroup(p_Animate.boolValue); + { + EditorGUILayout.PropertyField(p_Seed); + } + EditorGUI.EndDisabledGroup(); + + EditorGUILayout.PropertyField(p_Strength); + EditorGUILayout.PropertyField(p_LumContribution, GetContent("Luminance Contribution")); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs.meta new file mode 100644 index 0000000..c7c5454 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/NoiseEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c675525fd1d05714ba52aae6a1da5e8c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs b/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs new file mode 100644 index 0000000..308a0be --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs @@ -0,0 +1,77 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(PhotoFilter))] + public class PhotoFilterEditor : BaseEffectEditor + { + SerializedProperty p_Color; + SerializedProperty p_Density; + + static GUIContent[] presets = { + new GUIContent("Choose a preset..."), + new GUIContent("Warming Filter (85)"), + new GUIContent("Warming Filter (LBA)"), + new GUIContent("Warming Filter (81)"), + new GUIContent("Cooling Filter (80)"), + new GUIContent("Cooling Filter (LBB)"), + new GUIContent("Cooling Filter (82)"), + new GUIContent("Red"), + new GUIContent("Orange"), + new GUIContent("Yellow"), + new GUIContent("Green"), + new GUIContent("Cyan"), + new GUIContent("Blue"), + new GUIContent("Violet"), + new GUIContent("Magenta"), + new GUIContent("Sepia"), + new GUIContent("Deep Red"), + new GUIContent("Deep Blue"), + new GUIContent("Deep Emerald"), + new GUIContent("Deep Yellow"), + new GUIContent("Underwater") + }; + + static float[,] presetsData = { { 0.925f, 0.541f, 0.0f }, { 0.98f, 0.541f, 0.0f }, { 0.922f, 0.694f, 0.075f }, + { 0.0f, 0.427f, 1.0f }, { 0.0f, 0.365f, 1.0f }, { 0.0f, 0.71f, 1.0f }, + { 0.918f, 0.102f, 0.102f }, { 0.956f, 0.518f, 0.09f }, { 0.976f, 0.89f, 0.11f }, + { 0.098f, 0.788f, 0.098f }, { 0.114f, 0.796f, 0.918f }, { 0.114f, 0.209f, 0.918f }, + { 0.608f, 0.114f, 0.918f }, { 0.89f, 0.094f, 0.89f }, { 0.675f, 0.478f, 0.2f }, + { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.133f, 0.804f }, { 0.0f, 0.553f, 0.0f }, + { 1.0f, 0.835f, 0.0f }, { 0.0f, 0.761f, 0.694f } }; + + void OnEnable() + { + p_Color = serializedObject.FindProperty("Color"); + p_Density = serializedObject.FindProperty("Density"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Color); + EditorGUILayout.PropertyField(p_Density); + + EditorGUI.BeginChangeCheck(); + int selectedPreset = EditorGUILayout.Popup(GetContent("Preset"), 0, presets); + + if (EditorGUI.EndChangeCheck() && selectedPreset > 0) + { + selectedPreset--; + p_Color.colorValue = new Color( + presetsData[selectedPreset, 0], + presetsData[selectedPreset, 1], + presetsData[selectedPreset, 2] + ); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs.meta new file mode 100644 index 0000000..aff6f36 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PhotoFilterEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8aa05227668c2ff45a1ddf5b714fb64c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs b/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs new file mode 100644 index 0000000..2b3fdb1 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(PixelMatrix))] + public class PixelMatrixEditor : BaseEffectEditor + { + SerializedProperty p_Size; + SerializedProperty p_Brightness; + SerializedProperty p_BlackBorder; + + void OnEnable() + { + p_Size = serializedObject.FindProperty("Size"); + p_Brightness = serializedObject.FindProperty("Brightness"); + p_BlackBorder = serializedObject.FindProperty("BlackBorder"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Size); + EditorGUILayout.PropertyField(p_Brightness); + EditorGUILayout.PropertyField(p_BlackBorder); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs.meta new file mode 100644 index 0000000..c59ccd1 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PixelMatrixEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b5ade3fe502dc404b91a45c95c4896d6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs b/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs new file mode 100644 index 0000000..b6e209e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs @@ -0,0 +1,46 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Pixelate))] + public class PixelateEditor : BaseEffectEditor + { + SerializedProperty p_Scale; + SerializedProperty p_Ratio; + SerializedProperty p_AutomaticRatio; + SerializedProperty p_Mode; + + void OnEnable() + { + p_Scale = serializedObject.FindProperty("Scale"); + p_Ratio = serializedObject.FindProperty("Ratio"); + p_AutomaticRatio = serializedObject.FindProperty("AutomaticRatio"); + p_Mode = serializedObject.FindProperty("Mode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_Scale); + EditorGUILayout.PropertyField(p_AutomaticRatio); + + if (!p_AutomaticRatio.boolValue) + { + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_Ratio); + } + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs.meta new file mode 100644 index 0000000..ba0dbd5 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PixelateEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 284d28bd27c885c4fad7bdb289e4b404 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs b/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs new file mode 100644 index 0000000..5e97e84 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Posterize))] + public class PosterizeEditor : BaseEffectEditor + { + SerializedProperty p_Levels; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Levels = serializedObject.FindProperty("Levels"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Levels); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs.meta new file mode 100644 index 0000000..983c45b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/PosterizeEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0869f3e787781f645b6a50d951749c8d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs b/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs new file mode 100644 index 0000000..78ebd86 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(RGBSplit))] + public class RGBSplitEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + SerializedProperty p_Angle; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + p_Angle = serializedObject.FindProperty("Angle"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Amount); + EditorGUILayout.PropertyField(p_Angle); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs.meta new file mode 100644 index 0000000..230165b --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/RGBSplitEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: aa0746a6353353f4a9dbf1d9d1115ab0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs b/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs new file mode 100644 index 0000000..75bf227 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(RadialBlur))] + public class RadialBlurEditor : BaseEffectEditor + { + SerializedProperty p_Strength; + SerializedProperty p_Samples; + SerializedProperty p_Center; + SerializedProperty p_Quality; + SerializedProperty p_Sharpness; + SerializedProperty p_Darkness; + SerializedProperty p_EnableVignette; + + void OnEnable() + { + p_Strength = serializedObject.FindProperty("Strength"); + p_Samples = serializedObject.FindProperty("Samples"); + p_Center = serializedObject.FindProperty("Center"); + p_Quality = serializedObject.FindProperty("Quality"); + p_Sharpness = serializedObject.FindProperty("Sharpness"); + p_Darkness = serializedObject.FindProperty("Darkness"); + p_EnableVignette = serializedObject.FindProperty("EnableVignette"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Quality); + + if (p_Quality.intValue == (int)RadialBlur.QualityPreset.Custom) + EditorGUILayout.PropertyField(p_Samples); + + EditorGUILayout.PropertyField(p_Strength); + EditorGUILayout.PropertyField(p_Center, GetContent("Center Point")); + EditorGUILayout.PropertyField(p_EnableVignette, GetContent("Vignette")); + + if (p_EnableVignette.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(p_Sharpness); + EditorGUILayout.PropertyField(p_Darkness); + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs.meta new file mode 100644 index 0000000..b67cf48 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/RadialBlurEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: aafd9c0e42cf95a4789cc0560efc6726 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs b/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs new file mode 100644 index 0000000..9431319 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs @@ -0,0 +1,114 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(SCurveContrast))] + public class SCurveContrastEditor : BaseEffectEditor + { + SerializedProperty p_RedSteepness; + SerializedProperty p_RedGamma; + SerializedProperty p_GreenSteepness; + SerializedProperty p_GreenGamma; + SerializedProperty p_BlueSteepness; + SerializedProperty p_BlueGamma; + SerializedProperty p_ShowCurves; + + void OnEnable() + { + p_RedSteepness = serializedObject.FindProperty("RedSteepness"); + p_RedGamma = serializedObject.FindProperty("RedGamma"); + p_GreenSteepness = serializedObject.FindProperty("GreenSteepness"); + p_GreenGamma = serializedObject.FindProperty("GreenGamma"); + p_BlueSteepness = serializedObject.FindProperty("BlueSteepness"); + p_BlueGamma = serializedObject.FindProperty("BlueGamma"); + p_ShowCurves = serializedObject.FindProperty("e_ShowCurves"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + serializedObject.Update(); + + EditorGUILayout.LabelField(GetContent("Red"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_RedSteepness, GetContent("Steepness")); + EditorGUILayout.PropertyField(p_RedGamma, GetContent("Gamma")); + } + EditorGUI.indentLevel--; + + EditorGUILayout.LabelField(GetContent("Green"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_GreenSteepness, GetContent("Steepness")); + EditorGUILayout.PropertyField(p_GreenGamma, GetContent("Gamma")); + } + EditorGUI.indentLevel--; + + EditorGUILayout.LabelField(GetContent("Blue"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_BlueSteepness, GetContent("Steepness")); + EditorGUILayout.PropertyField(p_BlueGamma, GetContent("Gamma")); + } + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + EditorGUILayout.PropertyField(p_ShowCurves, GetContent("Show Curves")); + + if (p_ShowCurves.boolValue) + DrawCurve(); + + serializedObject.ApplyModifiedProperties(); + } + + void DrawCurve() + { + int h = 200; + int h_1 = h - 1; + Rect r = GUILayoutUtility.GetRect(256f, h); + GUI.Box(r, GUIContent.none); + + float rs = p_RedSteepness.floatValue; + float rg = p_RedGamma.floatValue; + float gs = p_GreenSteepness.floatValue; + float gg = p_GreenGamma.floatValue; + float bs = p_BlueSteepness.floatValue; + float bg = p_BlueGamma.floatValue; + + int w = Mathf.FloorToInt(r.width); + Vector3[] red = new Vector3[w]; + Vector3[] green = new Vector3[w]; + Vector3[] blue = new Vector3[w]; + + for (int i = 0; i < w; i++) + { + float v = (float)i / (w - 1); + red[i] = new Vector3(r.x + i, r.y + (h - curve(v, rs, rg) * h_1), 0f); + green[i] = new Vector3(r.x + i, r.y + (h - curve(v, gs, gg) * h_1), 0f); + blue[i] = new Vector3(r.x + i, r.y + (h - curve(v, bs, bg) * h_1), 0f); + } + + Handles.color = EditorGUIUtility.isProSkin ? new Color(0f, 1f, 1f, 2f) : new Color(0f, 0f, 1f, 2f); + Handles.DrawAAPolyLine(1f, blue); + Handles.color = EditorGUIUtility.isProSkin ? new Color(0f, 1f, 0f, 2f) : new Color(0.2f, 0.8f, 0.2f, 2f); + Handles.DrawAAPolyLine(1f, green); + Handles.color = new Color(1f, 0f, 0f, 2f); + Handles.DrawAAPolyLine(1f, red); + Handles.color = Color.white; + } + + float curve(float o, float steepness, float gamma) + { + float g = Mathf.Pow(2f, steepness) * 0.5f; + float c = (o < 0.5f) ? Mathf.Pow(o, steepness) * g : 1f - Mathf.Pow(1f - o, steepness) * g; + return Mathf.Clamp01(Mathf.Pow(c, gamma)); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs.meta new file mode 100644 index 0000000..2fa8ca8 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SCurveContrastEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7a6954c6ece9836479f4d43d821ff8e9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs b/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs new file mode 100644 index 0000000..6dc1ea8 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs @@ -0,0 +1,276 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#if !(UNITY_4_5 || UNITY_4_6 || UNITY_5_0) +#define UNITY_5_1_PLUS +#endif + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(ShadowsMidtonesHighlights))] + public class ShadowsMidtonesHighlightsEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Shadows; + SerializedProperty p_Midtones; + SerializedProperty p_Highlights; + SerializedProperty p_Amount; + + ColorWheel m_ShadowsWheel; + ColorWheel m_MidtonesWheel; + ColorWheel m_HighlightsWheel; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Shadows = serializedObject.FindProperty("Shadows"); + p_Midtones = serializedObject.FindProperty("Midtones"); + p_Highlights = serializedObject.FindProperty("Highlights"); + p_Amount = serializedObject.FindProperty("Amount"); + + m_ShadowsWheel = new ColorWheel("Shadows"); + m_MidtonesWheel = new ColorWheel("Midtones"); + m_HighlightsWheel = new ColorWheel("Highlights"); + } + + void OnDisable() + { + m_ShadowsWheel.Destroy(); + m_MidtonesWheel.Destroy(); + m_HighlightsWheel.Destroy(); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + + int size = Mathf.FloorToInt((EditorGUIUtility.currentViewWidth - 100f) / 3); + + EditorGUILayout.Space(); + EditorGUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + p_Shadows.colorValue = m_ShadowsWheel.DoGUI(p_Shadows.colorValue, size); + EditorGUILayout.Space(); + p_Midtones.colorValue = m_MidtonesWheel.DoGUI(p_Midtones.colorValue, size); + EditorGUILayout.Space(); + p_Highlights.colorValue = m_HighlightsWheel.DoGUI(p_Highlights.colorValue, size); + GUILayout.FlexibleSpace(); + } + EditorGUILayout.EndHorizontal(); + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(p_Shadows); + EditorGUILayout.PropertyField(p_Midtones); + EditorGUILayout.PropertyField(p_Highlights); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + + class ColorWheel + { + // Constants + const int kMinSize = 60; + const int kMaxSize = 150; + + // Hue Wheel + Texture2D m_WheelTexture; + int m_Diameter; + float m_Radius; + GUIContent m_Title; + + // UI + Texture2D m_ThumbTexture; + + // Input utils + Vector2 m_Cursor; + ColorWheel m_Dragging; + + internal ColorWheel(string title) + { + m_Title = GetContent(title); + m_Diameter = -1; + m_ThumbTexture = Resources.Load("UI/WheelThumb"); + } + + // Cleanup + internal void Destroy() + { + CleanTexture(m_WheelTexture); + } + + internal Color DoGUI(Color color, int diameter) + { + float alpha = color.a; + diameter = Mathf.Clamp(diameter, kMinSize, kMaxSize); + Vector3 hsv; + Color.RGBToHSV(color, out hsv.x, out hsv.y, out hsv.z); + + if (diameter != m_Diameter) + { + m_Diameter = diameter; + m_Radius = diameter / 2f; + UpdateHueWheel(true); + } + + EditorGUILayout.BeginVertical(); + { + // Title + EditorGUILayout.BeginHorizontal(GUILayout.Width(m_Diameter - 1)); + { + var centeredStyle = new GUIStyle(GUI.skin.GetStyle("Label")); + centeredStyle.alignment = TextAnchor.UpperCenter; + GUILayout.Label(m_Title, centeredStyle); + } + EditorGUILayout.EndHorizontal(); + + // Hue wheel + EditorGUILayout.BeginHorizontal(GUILayout.Width(m_Diameter)); + { + Rect wheelRect = GUILayoutUtility.GetRect(m_Diameter, m_Diameter); + wheelRect.x += 3; + + if (Event.current.type == EventType.Repaint) + { + // Wheel + GUI.DrawTexture(wheelRect, m_WheelTexture); + + // Thumb + Vector2 thumbPos = Vector2.zero; + float theta = hsv.x * CLib.PI2; + float len = hsv.y * m_Radius; + thumbPos.x = Mathf.Cos(theta + CLib.PI_2); + thumbPos.y = Mathf.Sin(theta - CLib.PI_2); + thumbPos *= len; + GUI.DrawTexture(new Rect(wheelRect.x + m_Radius + thumbPos.x - 4f, wheelRect.y + m_Radius + thumbPos.y - 4f, 8f, 8f), m_ThumbTexture); + } + + hsv = GetInput(wheelRect, hsv); + } + EditorGUILayout.EndHorizontal(); + + color = Color.HSVToRGB(hsv.x, hsv.y, hsv.z); + color.a = GUILayout.HorizontalSlider(alpha, 0f, 1f); + } + EditorGUILayout.EndVertical(); + + return color; + } + + Vector3 GetInput(Rect bounds, Vector3 hsv) + { + Event e = Event.current; + + if (e.type == EventType.MouseDown && e.button == 0) + { + Vector2 mousePos = e.mousePosition; + + if (bounds.Contains(mousePos)) + { + Vector2 center = new Vector2(bounds.x + m_Radius, bounds.y + m_Radius); + float dist = Vector2.Distance(center, mousePos); + + if (dist <= m_Radius) + { + e.Use(); + Vector2 relativePos = mousePos - new Vector2(bounds.x, bounds.y); + m_Cursor = relativePos; + GetWheelHueSaturation(m_Cursor.x, m_Cursor.y, ref hsv.x, ref hsv.y); + m_Dragging = this; + } + } + } + else if (m_Dragging == this && e.type == EventType.MouseDrag && e.button == 0) + { + e.Use(); + float precision = e.alt ? 0.5f : 1f; + m_Cursor += e.delta * precision; + GetWheelHueSaturation(Mathf.Clamp(m_Cursor.x, 0f, m_Diameter), Mathf.Clamp(m_Cursor.y, 0f, m_Diameter), ref hsv.x, ref hsv.y); + } + else if (m_Dragging == this && e.type == EventType.MouseUp && e.button == 0) + { + e.Use(); + m_Dragging = null; + } + + return hsv; + } + + void GetWheelHueSaturation(float x, float y, ref float hue, ref float saturation) + { + float dx = (float)(x - m_Radius) / m_Radius; + float dy = (float)(y - m_Radius) / m_Radius; + float d = Mathf.Sqrt((dx * dx + dy * dy)); + hue = Mathf.Atan2(dx, -dy); + hue = 1f - ((hue > 0) ? hue : CLib.PI2 + hue) / CLib.PI2; + saturation = Mathf.Clamp01(d); + } + + void UpdateHueWheel(bool sizeChanged) + { + if (sizeChanged) + { + CleanTexture(m_WheelTexture); + m_WheelTexture = MakeTexture(m_Diameter, m_Diameter); + } + + Color[] pixels = m_WheelTexture.GetPixels(); + + for (int y = 0; y < m_Diameter; y++) + { + for (int x = 0; x < m_Diameter; x++) + { + int index = y * m_Diameter + x; + float dx = (float)(x - m_Radius) / m_Radius; + float dy = (float)(y - m_Radius) / m_Radius; + float d = Mathf.Sqrt(dx * dx + dy * dy); + + // Out of the wheel, early exit + if (d >= 1f) + { + pixels[index] = new Color(0f, 0f, 0f, 0f); + continue; + } + + // Red (0) on top, counter-clockwise (industry standard) + float saturation = d; + float hue = Mathf.Atan2(dx, dy); + hue = 1f - ((hue > 0) ? hue : CLib.PI2 + hue) / CLib.PI2; + Color color = Color.HSVToRGB(hue, saturation, 1f); + + // Quick & dirty antialiasing + color.a = (saturation > 0.99) ? (1f - saturation) * 100f : 1f; + + pixels[index] = color; + } + } + + m_WheelTexture.SetPixels(pixels); + m_WheelTexture.Apply(); + } + + Texture2D MakeTexture(int width, int height) + { + Texture2D tex = new Texture2D(width, height, TextureFormat.ARGB32, false, true); + tex.filterMode = FilterMode.Point; + tex.wrapMode = TextureWrapMode.Clamp; + tex.hideFlags = HideFlags.HideAndDontSave; + tex.alphaIsTransparency = true; // Used for cheap AA + return tex; + } + + void CleanTexture(Texture2D texture) + { + if (texture != null) + DestroyImmediate(texture); + } + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs.meta new file mode 100644 index 0000000..d104daa --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ShadowsMidtonesHighlightsEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: cb87bcb4233abe24d88485369a6ffcee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs b/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs new file mode 100644 index 0000000..3feee06 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs @@ -0,0 +1,37 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Sharpen))] + public class SharpenEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Strength; + SerializedProperty p_Clamp; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Strength = serializedObject.FindProperty("Strength"); + p_Clamp = serializedObject.FindProperty("Clamp"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_Strength); + + if (p_Mode.intValue == (int)Sharpen.Algorithm.TypeA) + EditorGUILayout.PropertyField(p_Clamp); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs.meta new file mode 100644 index 0000000..db7e832 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SharpenEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1d7c1a6357b196747a42ecfca1e2dd4c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs b/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs new file mode 100644 index 0000000..bf7bd6e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs @@ -0,0 +1,36 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(SmartSaturation))] + public class SmartSaturationEditor : BaseEffectEditor + { + SerializedProperty p_Curve; + SerializedProperty p_Boost; + + void OnEnable() + { + p_Curve = serializedObject.FindProperty("Curve"); + p_Boost = serializedObject.FindProperty("Boost"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + p_Curve.animationCurveValue = EditorGUILayout.CurveField(new GUIContent("Curve", "Selective saturation curve. Refer to the documentation for more information."), p_Curve.animationCurveValue, Color.white, new Rect(0f, 0f, 1f, 1f)); + if (EditorGUI.EndChangeCheck()) + (target as SmartSaturation).UpdateCurve(); + + EditorGUILayout.PropertyField(p_Boost); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs.meta new file mode 100644 index 0000000..abacb50 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/SmartSaturationEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0a6927d42e0c5df44af1517cdfe1d205 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs b/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs new file mode 100644 index 0000000..fd39761 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs @@ -0,0 +1,70 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Strokes))] + public class StrokesEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Amplitude; + SerializedProperty p_Frequency; + SerializedProperty p_Scaling; + SerializedProperty p_MaxThickness; + SerializedProperty p_RedLuminance; + SerializedProperty p_GreenLuminance; + SerializedProperty p_BlueLuminance; + SerializedProperty p_Threshold; + SerializedProperty p_Harshness; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Amplitude = serializedObject.FindProperty("Amplitude"); + p_Frequency = serializedObject.FindProperty("Frequency"); + p_Scaling = serializedObject.FindProperty("Scaling"); + p_MaxThickness = serializedObject.FindProperty("MaxThickness"); + p_RedLuminance = serializedObject.FindProperty("RedLuminance"); + p_GreenLuminance = serializedObject.FindProperty("GreenLuminance"); + p_BlueLuminance = serializedObject.FindProperty("BlueLuminance"); + p_Threshold = serializedObject.FindProperty("Threshold"); + p_Harshness = serializedObject.FindProperty("Harshness"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(p_Amplitude); + EditorGUILayout.PropertyField(p_Frequency); + EditorGUILayout.PropertyField(p_Scaling); + EditorGUILayout.PropertyField(p_MaxThickness); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(p_Threshold); + EditorGUILayout.PropertyField(p_Harshness); + + EditorGUILayout.Space(); + + EditorGUILayout.LabelField(GetContent("Contribution"), EditorStyles.boldLabel); + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_RedLuminance, GetContent("Red")); + EditorGUILayout.PropertyField(p_GreenLuminance, GetContent("Green")); + EditorGUILayout.PropertyField(p_BlueLuminance, GetContent("Blue")); + } + EditorGUI.indentLevel--; + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs.meta new file mode 100644 index 0000000..6a0c930 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/StrokesEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ac3e745b3dc1d3d4789beeb8f8716c2b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs b/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs new file mode 100644 index 0000000..9f92f5c --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(TVVignette))] + public class TVVignetteEditor : BaseEffectEditor + { + SerializedProperty p_Size; + SerializedProperty p_Offset; + + void OnEnable() + { + p_Size = serializedObject.FindProperty("Size"); + p_Offset = serializedObject.FindProperty("Offset"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Size); + EditorGUILayout.PropertyField(p_Offset); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs.meta new file mode 100644 index 0000000..33a9d09 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/TVVignetteEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1ee34ac38f0bf77459a674b14201857c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs b/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs new file mode 100644 index 0000000..0ec4b70 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Technicolor))] + public class TechnicolorEditor : BaseEffectEditor + { + SerializedProperty p_Exposure; + SerializedProperty p_Balance; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Exposure = serializedObject.FindProperty("Exposure"); + p_Balance = serializedObject.FindProperty("Balance"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Exposure); + + EditorGUILayout.LabelField("Balance", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + { + Vector3 balance = p_Balance.vector3Value; + balance.x = EditorGUILayout.Slider(GetContent("Red"), balance.x, 0f, 1f); + balance.y = EditorGUILayout.Slider(GetContent("Green"), balance.y, 0f, 1f); + balance.z = EditorGUILayout.Slider(GetContent("Blue"), balance.z, 0f, 1f); + p_Balance.vector3Value = balance; + } + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs.meta new file mode 100644 index 0000000..695c260 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/TechnicolorEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 43efb79f0a55f8a47827948320de5d5e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs b/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs new file mode 100644 index 0000000..1ea37a2 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Threshold))] + public class ThresholdEditor : BaseEffectEditor + { + SerializedProperty p_Value; + SerializedProperty p_UseNoise; + SerializedProperty p_NoiseRange; + + void OnEnable() + { + p_Value = serializedObject.FindProperty("Value"); + p_UseNoise = serializedObject.FindProperty("UseNoise"); + p_NoiseRange = serializedObject.FindProperty("NoiseRange"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Value); + EditorGUILayout.PropertyField(p_UseNoise, GetContent("Noise")); + + if (p_UseNoise.boolValue) + { + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_NoiseRange, GetContent("Range")); + } + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs.meta new file mode 100644 index 0000000..d91de15 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/ThresholdEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b8aefb8ad76f1e046905ad3be8bc49d3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs b/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs new file mode 100644 index 0000000..2f8722e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Vibrance))] + public class VibranceEditor : BaseEffectEditor + { + SerializedProperty p_Amount; + SerializedProperty p_RedChannel; + SerializedProperty p_GreenChannel; + SerializedProperty p_BlueChannel; + SerializedProperty p_AdvancedMode; + + void OnEnable() + { + p_Amount = serializedObject.FindProperty("Amount"); + p_RedChannel = serializedObject.FindProperty("RedChannel"); + p_GreenChannel = serializedObject.FindProperty("GreenChannel"); + p_BlueChannel = serializedObject.FindProperty("BlueChannel"); + p_AdvancedMode = serializedObject.FindProperty("AdvancedMode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + p_AdvancedMode.boolValue = GUILayout.Toggle(p_AdvancedMode.boolValue, GetContent("Advanced Mode"), EditorStyles.miniButton); + + EditorGUILayout.PropertyField(p_Amount, GetContent("Vibrance")); + + if (p_AdvancedMode.boolValue) + { + EditorGUI.indentLevel++; + { + EditorGUILayout.PropertyField(p_RedChannel); + EditorGUILayout.PropertyField(p_GreenChannel); + EditorGUILayout.PropertyField(p_BlueChannel); + } + EditorGUI.indentLevel--; + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs.meta new file mode 100644 index 0000000..d4997a3 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VibranceEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1d93ddc03cf697348b70c15f15bce28d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/VintageEditor.cs b/Assets/Colorful FX/Editor/Effects/VintageEditor.cs new file mode 100644 index 0000000..10a37b4 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VintageEditor.cs @@ -0,0 +1,34 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Vintage))] + public class VintageEditor : BaseEffectEditor + { + SerializedProperty p_Filter; + SerializedProperty p_Amount; + + void OnEnable() + { + p_Filter = serializedObject.FindProperty("Filter"); + p_Amount = serializedObject.FindProperty("Amount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.HelpBox("This effect is deprecated. Use \"Vintage (Fast)\" instead for better performances!", MessageType.Warning); + + EditorGUILayout.PropertyField(p_Filter); + EditorGUILayout.PropertyField(p_Amount); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/VintageEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/VintageEditor.cs.meta new file mode 100644 index 0000000..babc50e --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VintageEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5ea04c212030eaa47881ee0caedd2856 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs b/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs new file mode 100644 index 0000000..de3a8c9 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(VintageFast))] + public class VintageFastEditor : BaseEffectEditor + { + SerializedProperty p_Filter; + SerializedProperty p_Amount; + SerializedProperty p_ForceCompatibility; + + void OnEnable() + { + p_Filter = serializedObject.FindProperty("Filter"); + p_Amount = serializedObject.FindProperty("Amount"); + p_ForceCompatibility = serializedObject.FindProperty("ForceCompatibility"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Filter); + EditorGUILayout.PropertyField(p_Amount); + EditorGUILayout.PropertyField(p_ForceCompatibility); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs.meta new file mode 100644 index 0000000..bca817c --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/VintageFastEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 51e43aaf9dea6414685f60a22730e7aa +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs b/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs new file mode 100644 index 0000000..095d1a5 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs @@ -0,0 +1,38 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(WaveDistortion))] + public class WaveDistortionEditor : BaseEffectEditor + { + SerializedProperty p_Amplitude; + SerializedProperty p_Waves; + SerializedProperty p_ColorGlitch; + SerializedProperty p_Phase; + + void OnEnable() + { + p_Amplitude = serializedObject.FindProperty("Amplitude"); + p_Waves = serializedObject.FindProperty("Waves"); + p_ColorGlitch = serializedObject.FindProperty("ColorGlitch"); + p_Phase = serializedObject.FindProperty("Phase"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Phase); + EditorGUILayout.PropertyField(p_Amplitude); + EditorGUILayout.PropertyField(p_Waves); + EditorGUILayout.PropertyField(p_ColorGlitch); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs.meta new file mode 100644 index 0000000..c28fe75 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WaveDistortionEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7d6761cdf66f9e641aa362d78cfb226f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs b/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs new file mode 100644 index 0000000..ffa0004 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(WhiteBalance))] + public class WhiteBalanceEditor : BaseEffectEditor + { + SerializedProperty p_White; + SerializedProperty p_Mode; + + void OnEnable() + { + p_White = serializedObject.FindProperty("White"); + p_Mode = serializedObject.FindProperty("Mode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_White, GetContent("White Point")); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs.meta new file mode 100644 index 0000000..55ac0c1 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WhiteBalanceEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 07588eab913e957498c2da231bf9198d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs b/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs new file mode 100644 index 0000000..7b578d9 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs @@ -0,0 +1,48 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomEditor(typeof(Wiggle))] + public class WiggleEditor : BaseEffectEditor + { + SerializedProperty p_Mode; + SerializedProperty p_Timer; + SerializedProperty p_Speed; + SerializedProperty p_Frequency; + SerializedProperty p_Amplitude; + SerializedProperty p_AutomaticTimer; + + void OnEnable() + { + p_Mode = serializedObject.FindProperty("Mode"); + p_Timer = serializedObject.FindProperty("Timer"); + p_Speed = serializedObject.FindProperty("Speed"); + p_Frequency = serializedObject.FindProperty("Frequency"); + p_Amplitude = serializedObject.FindProperty("Amplitude"); + p_AutomaticTimer = serializedObject.FindProperty("AutomaticTimer"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(p_Mode); + EditorGUILayout.PropertyField(p_AutomaticTimer); + + if (p_AutomaticTimer.boolValue) + EditorGUILayout.PropertyField(p_Speed); + else + EditorGUILayout.PropertyField(p_Timer); + + EditorGUILayout.PropertyField(p_Frequency); + EditorGUILayout.PropertyField(p_Amplitude); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs.meta b/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs.meta new file mode 100644 index 0000000..5ea40e7 --- /dev/null +++ b/Assets/Colorful FX/Editor/Effects/WiggleEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 69a21a616d85b3e4a9c5a82e60c55132 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/PropertyDrawer.meta b/Assets/Colorful FX/Editor/PropertyDrawer.meta new file mode 100644 index 0000000..b7fe4a9 --- /dev/null +++ b/Assets/Colorful FX/Editor/PropertyDrawer.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e3759202104281b439682bcff63f7bca +folderAsset: yes +timeCreated: 1466165648 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs b/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs new file mode 100644 index 0000000..897fcfc --- /dev/null +++ b/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful.Editors +{ + using UnityEngine; + using UnityEditor; + + [CustomPropertyDrawer(typeof(MinAttribute))] + internal sealed class MinDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + MinAttribute attribute = (MinAttribute)base.attribute; + + if (property.propertyType == SerializedPropertyType.Integer) + { + int v = EditorGUI.IntField(position, label, property.intValue); + property.intValue = (int)Mathf.Max(v, attribute.Min); + } + else if (property.propertyType == SerializedPropertyType.Float) + { + float v = EditorGUI.FloatField(position, label, property.floatValue); + property.floatValue = Mathf.Max(v, attribute.Min); + } + else + { + EditorGUI.LabelField(position, label.text, "Use Min with float or int."); + } + } + } +} diff --git a/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs.meta b/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs.meta new file mode 100644 index 0000000..9b6c356 --- /dev/null +++ b/Assets/Colorful FX/Editor/PropertyDrawer/MinDrawer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a89104df11f6a3e448d68d949cd522fd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Shaders.meta b/Assets/Colorful FX/Editor/Shaders.meta new file mode 100644 index 0000000..90944ed --- /dev/null +++ b/Assets/Colorful FX/Editor/Shaders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 73501cadf2e40434f88af3004a704537 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader b/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader new file mode 100644 index 0000000..ffec975 --- /dev/null +++ b/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader @@ -0,0 +1,46 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Editor/_DynamicLookup" +{ + SubShader + { + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + struct vInput + { + float4 pos : POSITION; + float4 color : COLOR; + }; + + struct fInput + { + float4 pos : SV_POSITION; + float4 color : COLOR; + }; + + fInput vert(vInput i) + { + fInput o; + o.pos = UnityObjectToClipPos(i.pos); + o.color = i.color; + return o; + } + + half4 frag(fInput i) : SV_Target + { + return half4(i.color.rgb, 1.0); + } + + ENDCG + } + } +} diff --git a/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader.meta b/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader.meta new file mode 100644 index 0000000..02f7b4a --- /dev/null +++ b/Assets/Colorful FX/Editor/Shaders/_DynamicLookup.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c3c7978226799a44bb5f79a0c901ff94 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup.meta b/Assets/Colorful FX/Editor/Startup.meta new file mode 100644 index 0000000..1c5a331 --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8503754b33acf6b448baa1f7ec781e16 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs b/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs new file mode 100644 index 0000000..2a59392 --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs @@ -0,0 +1,235 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#if !(UNITY_4_5 || UNITY_4_6 || UNITY_5_0) +#define UNITY_5_1_PLUS +#endif + +using UnityEngine; +using UnityEditor; +using System; +using System.IO; +using System.Text.RegularExpressions; + +public class Colorful_StartupWindowProcessor : AssetPostprocessor +{ + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + string[] entries = Array.FindAll(importedAssets, name => name.Contains("ColorfulFX_StartupWindow") && !name.EndsWith(".meta")); + + for (int i = 0; i < entries.Length; i++) + if (ColorfulFX_StartupWindow.Init(false)) + break; + } +} + +public sealed class ColorfulFX_StartupWindow : EditorWindow +{ + public static string identifier = "TH_Colorful_FX"; + static string pathChangelog = "Assets/Colorful FX/Changelog.txt"; + static string pathImages = "Assets/Colorful FX/Editor/Startup/Images/"; + + Texture2D headerPic; + string changelogText = ""; + Vector2 changelogScroll = Vector2.zero; + GUIStyle richLabelStyle; + GUIStyle richButtonStyle; + GUIStyle iconButtonStyle; + Texture2D iconColorful; + Texture2D iconChromatica; + Texture2D iconSSAOPro; + Texture2D iconLutify; + + [MenuItem("Help/Colorful FX/About", false, 0)] + public static void MenuInit() + { + ColorfulFX_StartupWindow.Init(true); + } + + [MenuItem("Help/Colorful FX/User Manual", false, 0)] + public static void MenuManual() + { + Application.OpenURL("http://thomashourdel.com/colorful/doc/"); + } + + public static void FindAssets() + { + // Get the relative data path + string[] results = AssetDatabase.FindAssets("ColorfulFX_StartupWindow t:Script", null); + if (results.Length > 0) + { + string p = AssetDatabase.GUIDToAssetPath(results[0]); + p = Path.GetDirectoryName(p); + p = p.Substring(0, p.LastIndexOf('/')); + p = p.Substring(0, p.LastIndexOf('/')); + pathChangelog = p + "/Changelog.txt"; + pathImages = p + "/Editor/Startup/Images/"; + } + } + + public static T LoadAssetAt(string path) where T : UnityEngine.Object + { +#if UNITY_5_1_PLUS + return AssetDatabase.LoadAssetAtPath(path); +#else + return Resources.LoadAssetAtPath(path); +#endif + } + + public static bool Init(bool forceOpen) + { + FindAssets(); + + // First line in the changelog is the version string + TextAsset textAsset = LoadAssetAt(pathChangelog); + + if (textAsset == null && forceOpen == false) + forceOpen = true; // Changelog.txt hasn't been imported yet (???) + else if (textAsset == null) + return false; // Something's wrong, should never happen + + if (forceOpen || EditorPrefs.GetString(identifier) != GetVersion()) + { + ColorfulFX_StartupWindow window; + window = EditorWindow.GetWindow(true, "About Colorful FX", true); + Vector2 size = new Vector2(530, 670); + window.minSize = size; + window.maxSize = size; + window.ShowUtility(); + return true; + } + + return false; + } + + static string GetVersion() + { + TextAsset textAsset = LoadAssetAt(pathChangelog); + string version = textAsset.text.Split('\n')[0]; + return version; + } + + void OnEnable() + { + FindAssets(); + + EditorPrefs.SetString(identifier, GetVersion()); + + string versionColor = EditorGUIUtility.isProSkin ? "#ffffffee" : "#000000ee"; + changelogText = LoadAssetAt(pathChangelog).text; + int maxLength = 10200; + bool tooLong = changelogText.Length > maxLength; + + if (tooLong) + { + changelogText = changelogText.Substring(0, maxLength); + changelogText += "...\n\n[See the online changelog for more]"; + } + + changelogText = Regex.Replace(changelogText, @"^[0-9].*", "Version $0", RegexOptions.Multiline); + changelogText = Regex.Replace(changelogText, @"^- (\w+:)", " $0", RegexOptions.Multiline); + + headerPic = LoadAssetAt(pathImages + "header.jpg"); + iconColorful = LoadAssetAt(pathImages + "icon-colorful.png"); + iconChromatica = LoadAssetAt(pathImages + "icon-chromatica.png"); + iconSSAOPro = LoadAssetAt(pathImages + "icon-ssaopro.png"); + iconLutify = LoadAssetAt(pathImages + "icon-lutify.png"); + } + + void OnGUI() + { + if (richLabelStyle == null) + { + richLabelStyle = new GUIStyle(GUI.skin.label); + richLabelStyle.richText = true; + richLabelStyle.wordWrap = true; + richButtonStyle = new GUIStyle(GUI.skin.button); + richButtonStyle.richText = true; + iconButtonStyle = new GUIStyle(GUI.skin.button); + iconButtonStyle.normal.background = null; + iconButtonStyle.imagePosition = ImagePosition.ImageOnly; + iconButtonStyle.fixedWidth = 96; + iconButtonStyle.fixedHeight = 96; + } + + Rect headerRect = new Rect(0, 0, 530, 207); + GUI.DrawTexture(headerRect, headerPic, ScaleMode.ScaleAndCrop, false); + + GUILayout.Space(214); + + GUILayout.BeginVertical(); + { + HR(0, 2); + + // Doc + GUILayout.BeginHorizontal(); + { + if (GUILayout.Button("Documentation\nComplete manual, examples, tips & tricks", richButtonStyle, GUILayout.MaxWidth(260), GUILayout.Height(36))) + Application.OpenURL("http://thomashourdel.com/colorful/doc/"); + + if (GUILayout.Button("Rate it\nLeave a review on the Asset Store", richButtonStyle, GUILayout.Height(36))) + Application.OpenURL("com.unity3d.kharma:content/44845"); + } + GUILayout.EndHorizontal(); + + // Contact + HR(4, 2); + + GUILayout.BeginHorizontal(); + { + if (GUILayout.Button("E-mail\nthomas@hourdel.com", richButtonStyle, GUILayout.MaxWidth(172), GUILayout.Height(36))) + Application.OpenURL("mailto:thomas@hourdel"); + + if (GUILayout.Button("Twitter\n@Chman", richButtonStyle, GUILayout.Height(36))) + Application.OpenURL("http://twitter.com/Chman"); + + if (GUILayout.Button("Support Forum\nUnity Community", richButtonStyle, GUILayout.MaxWidth(172), GUILayout.Height(36))) + Application.OpenURL("http://forum.unity3d.com/threads/colorful-post-fx-photoshop-like-color-correction-tools.143417/"); + } + GUILayout.EndHorizontal(); + + // Changelog + HR(4, 0); + + changelogScroll = GUILayout.BeginScrollView(changelogScroll); + GUILayout.Label(changelogText, richLabelStyle); + GUILayout.EndScrollView(); + + // Promo + HR(0, 0); + + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + + if (GUILayout.Button(iconColorful, iconButtonStyle)) + Application.OpenURL("com.unity3d.kharma:content/44845"); + + if (GUILayout.Button(iconChromatica, iconButtonStyle)) + Application.OpenURL("com.unity3d.kharma:content/20743"); + + if (GUILayout.Button(iconSSAOPro, iconButtonStyle)) + Application.OpenURL("com.unity3d.kharma:content/22369"); + + if (GUILayout.Button(iconLutify, iconButtonStyle)) + Application.OpenURL("com.unity3d.kharma:content/46012"); + + GUILayout.FlexibleSpace(); + } + GUILayout.EndHorizontal(); + } + GUILayout.EndVertical(); + } + + void HR(int prevSpace, int nextSpace) + { + GUILayout.Space(prevSpace); + Rect r = GUILayoutUtility.GetRect(Screen.width, 2); + Color og = GUI.backgroundColor; + GUI.backgroundColor = Color.black; + GUI.Box(r, ""); + GUI.backgroundColor = og; + GUILayout.Space(nextSpace); + } +} diff --git a/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs.meta b/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs.meta new file mode 100644 index 0000000..738afd9 --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/ColorfulFX_StartupWindow.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1b65b98459368bf4fb6663ba8aa5216d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images.meta b/Assets/Colorful FX/Editor/Startup/Images.meta new file mode 100644 index 0000000..935ca6e --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 46fe6ec45cba7dd4d93a3ad794ade55a +folderAsset: yes +timeCreated: 1466165648 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images/header.jpg b/Assets/Colorful FX/Editor/Startup/Images/header.jpg new file mode 100644 index 0000000..61dd160 Binary files /dev/null and b/Assets/Colorful FX/Editor/Startup/Images/header.jpg differ diff --git a/Assets/Colorful FX/Editor/Startup/Images/header.jpg.meta b/Assets/Colorful FX/Editor/Startup/Images/header.jpg.meta new file mode 100644 index 0000000..499d08a --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images/header.jpg.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 25181b7d9db23b44a964af66029f7361 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png b/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png new file mode 100644 index 0000000..cd9f33a Binary files /dev/null and b/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png differ diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png.meta b/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png.meta new file mode 100644 index 0000000..b5aebba --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images/icon-chromatica.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 51f0cc904e1da584dbda9f961d7ce6a1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png b/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png new file mode 100644 index 0000000..62fb7e9 Binary files /dev/null and b/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png differ diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png.meta b/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png.meta new file mode 100644 index 0000000..7c4b339 --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images/icon-colorful.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 869bdc44d126e274c98ad67e9d6b719b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png b/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png new file mode 100644 index 0000000..998bf10 Binary files /dev/null and b/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png differ diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png.meta b/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png.meta new file mode 100644 index 0000000..2fe3a7e --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images/icon-lutify.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2bcf7d509a532e84483047d6d62ada4f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png b/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png new file mode 100644 index 0000000..4f622c0 Binary files /dev/null and b/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png differ diff --git a/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png.meta b/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png.meta new file mode 100644 index 0000000..eca2885 --- /dev/null +++ b/Assets/Colorful FX/Editor/Startup/Images/icon-ssaopro.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: a93a9f31d87592944ab49cffe727e831 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Editor/icon.png b/Assets/Colorful FX/Editor/icon.png new file mode 100644 index 0000000..a2086d3 Binary files /dev/null and b/Assets/Colorful FX/Editor/icon.png differ diff --git a/Assets/Colorful FX/Editor/icon.png.meta b/Assets/Colorful FX/Editor/icon.png.meta new file mode 100644 index 0000000..637f097 --- /dev/null +++ b/Assets/Colorful FX/Editor/icon.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e7f8a1ed59e3e914f8e50295c1130bc1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Readme.txt b/Assets/Colorful FX/Readme.txt new file mode 100644 index 0000000..4fd1843 --- /dev/null +++ b/Assets/Colorful FX/Readme.txt @@ -0,0 +1,20 @@ +Thank you for buying Colorful FX, I hope it'll fit your needs ! Full documentation is available in the Help menu. + +E-mail + thomas@hourdel.com +Twitter + http://www.twitter.com/Chman +Unity Community + http://forum.unity3d.com/members/15388-Chman + +Website + http://www.thomashourdel.com/colorful/ +Asset Store + https://www.assetstore.unity3d.com/#/content/44845 (leave a review!) +Itch.io + http://chman.itch.io/colorful +Support Forum + http://forum.unity3d.com/threads/143417 + +Like Colorful FX ? Check out my other Unity assets: + https://www.assetstore.unity3d.com/en/#!/publisher/1627 diff --git a/Assets/Colorful FX/Readme.txt.meta b/Assets/Colorful FX/Readme.txt.meta new file mode 100644 index 0000000..fa8f7f6 --- /dev/null +++ b/Assets/Colorful FX/Readme.txt.meta @@ -0,0 +1,6 @@ +fileFormatVersion: 2 +guid: ac8646fcf379b164c9ce37d26c16bcdd +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources.meta b/Assets/Colorful FX/Resources.meta new file mode 100644 index 0000000..d4a0b86 --- /dev/null +++ b/Assets/Colorful FX/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8ad2837e5675d0848b2f476d71f7fa28 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram.meta b/Assets/Colorful FX/Resources/Instagram.meta new file mode 100644 index 0000000..897ea4e --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c345d887bb5e15e4d9adef0f8274853d +folderAsset: yes +timeCreated: 1466165648 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Aden.png b/Assets/Colorful FX/Resources/Instagram/Aden.png new file mode 100644 index 0000000..05fcf80 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Aden.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Aden.png.meta b/Assets/Colorful FX/Resources/Instagram/Aden.png.meta new file mode 100644 index 0000000..8a055e2 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Aden.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 71bb60f95cb866c458d7bc194a88d79a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Amaro.png b/Assets/Colorful FX/Resources/Instagram/Amaro.png new file mode 100644 index 0000000..94fbbf1 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Amaro.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Amaro.png.meta b/Assets/Colorful FX/Resources/Instagram/Amaro.png.meta new file mode 100644 index 0000000..5c91263 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Amaro.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 492bfb06acc0e704097ddd34878f4c01 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Brannan.png b/Assets/Colorful FX/Resources/Instagram/Brannan.png new file mode 100644 index 0000000..5ea8a25 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Brannan.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Brannan.png.meta b/Assets/Colorful FX/Resources/Instagram/Brannan.png.meta new file mode 100644 index 0000000..9635c5b --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Brannan.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: a4a883b00d5a03c4191f41d61ff430fe +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Crema.png b/Assets/Colorful FX/Resources/Instagram/Crema.png new file mode 100644 index 0000000..0a47d71 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Crema.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Crema.png.meta b/Assets/Colorful FX/Resources/Instagram/Crema.png.meta new file mode 100644 index 0000000..98b509a --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Crema.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 8cfad23925d468e42a4b069b9bada02d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Earlybird.png b/Assets/Colorful FX/Resources/Instagram/Earlybird.png new file mode 100644 index 0000000..d5a4f5b Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Earlybird.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Earlybird.png.meta b/Assets/Colorful FX/Resources/Instagram/Earlybird.png.meta new file mode 100644 index 0000000..8f832d6 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Earlybird.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 7a78f67526578ab409a01e0672fa5d35 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/F1977.png b/Assets/Colorful FX/Resources/Instagram/F1977.png new file mode 100644 index 0000000..44c91de Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/F1977.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/F1977.png.meta b/Assets/Colorful FX/Resources/Instagram/F1977.png.meta new file mode 100644 index 0000000..aa1ce79 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/F1977.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 54e6dfcbbe85e8043b8f7b9b304339f5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Hefe.png b/Assets/Colorful FX/Resources/Instagram/Hefe.png new file mode 100644 index 0000000..4c87afb Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Hefe.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Hefe.png.meta b/Assets/Colorful FX/Resources/Instagram/Hefe.png.meta new file mode 100644 index 0000000..6f2c980 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Hefe.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: cb854b0a14b9eea4f8e9d47004dcb242 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Hudson.png b/Assets/Colorful FX/Resources/Instagram/Hudson.png new file mode 100644 index 0000000..c6a6a22 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Hudson.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Hudson.png.meta b/Assets/Colorful FX/Resources/Instagram/Hudson.png.meta new file mode 100644 index 0000000..b4055e6 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Hudson.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: a28ebc0416ad1c9469a75c8fddd80498 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Inkwell.png b/Assets/Colorful FX/Resources/Instagram/Inkwell.png new file mode 100644 index 0000000..c570e4f Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Inkwell.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Inkwell.png.meta b/Assets/Colorful FX/Resources/Instagram/Inkwell.png.meta new file mode 100644 index 0000000..a67198a --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Inkwell.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 69c4d69080457a447a8f114a3d172927 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Juno.png b/Assets/Colorful FX/Resources/Instagram/Juno.png new file mode 100644 index 0000000..8c82a3d Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Juno.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Juno.png.meta b/Assets/Colorful FX/Resources/Instagram/Juno.png.meta new file mode 100644 index 0000000..d489515 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Juno.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: db967af71da0c1f40aa19ba96bc60664 +timeCreated: 1430926065 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Kelvin.png b/Assets/Colorful FX/Resources/Instagram/Kelvin.png new file mode 100644 index 0000000..c75c19e Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Kelvin.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Kelvin.png.meta b/Assets/Colorful FX/Resources/Instagram/Kelvin.png.meta new file mode 100644 index 0000000..3cf3cf5 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Kelvin.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 8302ec815182af74bb21ebf76a4643e1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Lark.png b/Assets/Colorful FX/Resources/Instagram/Lark.png new file mode 100644 index 0000000..b2b311f Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Lark.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Lark.png.meta b/Assets/Colorful FX/Resources/Instagram/Lark.png.meta new file mode 100644 index 0000000..8769206 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Lark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 95b0eae7d4e35f4469715f6c3022fff8 +timeCreated: 1430926065 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/LoFi.png b/Assets/Colorful FX/Resources/Instagram/LoFi.png new file mode 100644 index 0000000..a78f237 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/LoFi.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/LoFi.png.meta b/Assets/Colorful FX/Resources/Instagram/LoFi.png.meta new file mode 100644 index 0000000..ceaac19 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/LoFi.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 70ed4587272042e45a86405a1536651f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Ludwig.png b/Assets/Colorful FX/Resources/Instagram/Ludwig.png new file mode 100644 index 0000000..501802e Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Ludwig.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Ludwig.png.meta b/Assets/Colorful FX/Resources/Instagram/Ludwig.png.meta new file mode 100644 index 0000000..6939dab --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Ludwig.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: c0aa2cffa31cfed4a8f5c569e7172065 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Mayfair.png b/Assets/Colorful FX/Resources/Instagram/Mayfair.png new file mode 100644 index 0000000..c1c8e63 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Mayfair.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Mayfair.png.meta b/Assets/Colorful FX/Resources/Instagram/Mayfair.png.meta new file mode 100644 index 0000000..2d55674 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Mayfair.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: aa0093754890d1d4982197dedc160551 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Nashville.png b/Assets/Colorful FX/Resources/Instagram/Nashville.png new file mode 100644 index 0000000..efc60d9 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Nashville.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Nashville.png.meta b/Assets/Colorful FX/Resources/Instagram/Nashville.png.meta new file mode 100644 index 0000000..8a57b84 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Nashville.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 566675071db986148847d88f5a91ca63 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Perpetua.png b/Assets/Colorful FX/Resources/Instagram/Perpetua.png new file mode 100644 index 0000000..1394d10 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Perpetua.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Perpetua.png.meta b/Assets/Colorful FX/Resources/Instagram/Perpetua.png.meta new file mode 100644 index 0000000..0efad83 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Perpetua.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 4016620c77806cc49ba9b406afabe797 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Reyes.png b/Assets/Colorful FX/Resources/Instagram/Reyes.png new file mode 100644 index 0000000..53178c3 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Reyes.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Reyes.png.meta b/Assets/Colorful FX/Resources/Instagram/Reyes.png.meta new file mode 100644 index 0000000..dede06c --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Reyes.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 35befae6315042a489cca37f35cda560 +timeCreated: 1430926065 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Rise.png b/Assets/Colorful FX/Resources/Instagram/Rise.png new file mode 100644 index 0000000..f8c44c5 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Rise.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Rise.png.meta b/Assets/Colorful FX/Resources/Instagram/Rise.png.meta new file mode 100644 index 0000000..d93f87c --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Rise.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 65799e06397ba314c842b80c9b80c3cb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Sierra.png b/Assets/Colorful FX/Resources/Instagram/Sierra.png new file mode 100644 index 0000000..cd3a167 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Sierra.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Sierra.png.meta b/Assets/Colorful FX/Resources/Instagram/Sierra.png.meta new file mode 100644 index 0000000..b0fc83a --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Sierra.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e008073026fa76d43a47c376ff6c3aa4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Slumber.png b/Assets/Colorful FX/Resources/Instagram/Slumber.png new file mode 100644 index 0000000..220f90a Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Slumber.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Slumber.png.meta b/Assets/Colorful FX/Resources/Instagram/Slumber.png.meta new file mode 100644 index 0000000..b907a13 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Slumber.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2f559a345557ed24eb6cc977b34b1f0e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Sutro.png b/Assets/Colorful FX/Resources/Instagram/Sutro.png new file mode 100644 index 0000000..c4ba647 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Sutro.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Sutro.png.meta b/Assets/Colorful FX/Resources/Instagram/Sutro.png.meta new file mode 100644 index 0000000..05e0db5 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Sutro.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: addfa6fc5c2d56641b5ebed82ce633cd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Toaster.png b/Assets/Colorful FX/Resources/Instagram/Toaster.png new file mode 100644 index 0000000..986a143 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Toaster.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Toaster.png.meta b/Assets/Colorful FX/Resources/Instagram/Toaster.png.meta new file mode 100644 index 0000000..14731a8 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Toaster.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: f7a1319a0d3863c4788319a3210510a2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Valencia.png b/Assets/Colorful FX/Resources/Instagram/Valencia.png new file mode 100644 index 0000000..c6ca64d Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Valencia.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Valencia.png.meta b/Assets/Colorful FX/Resources/Instagram/Valencia.png.meta new file mode 100644 index 0000000..2b37300 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Valencia.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 27f38c2393d5cc64881d0ebc28644b5b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Walden.png b/Assets/Colorful FX/Resources/Instagram/Walden.png new file mode 100644 index 0000000..2cf5e3b Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Walden.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Walden.png.meta b/Assets/Colorful FX/Resources/Instagram/Walden.png.meta new file mode 100644 index 0000000..daac337 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Walden.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: ed7300bee0a313f4f8b879723666d20e +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/Willow.png b/Assets/Colorful FX/Resources/Instagram/Willow.png new file mode 100644 index 0000000..cef6070 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/Willow.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/Willow.png.meta b/Assets/Colorful FX/Resources/Instagram/Willow.png.meta new file mode 100644 index 0000000..67714c3 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/Willow.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 12a3fb1b1c5b0274b8b2e0e629fc8577 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Instagram/XProII.png b/Assets/Colorful FX/Resources/Instagram/XProII.png new file mode 100644 index 0000000..9bac781 Binary files /dev/null and b/Assets/Colorful FX/Resources/Instagram/XProII.png differ diff --git a/Assets/Colorful FX/Resources/Instagram/XProII.png.meta b/Assets/Colorful FX/Resources/Instagram/XProII.png.meta new file mode 100644 index 0000000..3ae3b62 --- /dev/null +++ b/Assets/Colorful FX/Resources/Instagram/XProII.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: ab366828b8a7ca5499aa7dcfbd5d695d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast.meta b/Assets/Colorful FX/Resources/InstagramFast.meta new file mode 100644 index 0000000..53ea726 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 21493ff2515af60428488c7d7df4f309 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Aden.png b/Assets/Colorful FX/Resources/InstagramFast/Aden.png new file mode 100644 index 0000000..6fe7a1f Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Aden.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Aden.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Aden.png.meta new file mode 100644 index 0000000..8cdfe4a --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Aden.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2254a0e5c700e144c8d0b251773586df +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Amaro.png b/Assets/Colorful FX/Resources/InstagramFast/Amaro.png new file mode 100644 index 0000000..508851b Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Amaro.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Amaro.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Amaro.png.meta new file mode 100644 index 0000000..8a181c5 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Amaro.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 8d477e8a90eb6384882420ca937e62b2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Brannan.png b/Assets/Colorful FX/Resources/InstagramFast/Brannan.png new file mode 100644 index 0000000..6612367 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Brannan.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Brannan.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Brannan.png.meta new file mode 100644 index 0000000..7e16956 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Brannan.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 68d50d8f366bfdf45b50c222e496a18d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Crema.png b/Assets/Colorful FX/Resources/InstagramFast/Crema.png new file mode 100644 index 0000000..fbbdacc Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Crema.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Crema.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Crema.png.meta new file mode 100644 index 0000000..2fe1ebf --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Crema.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 15262d436ecc1d94495b2b362c66b715 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png b/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png new file mode 100644 index 0000000..93a3871 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png.meta new file mode 100644 index 0000000..3020eb1 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Earlybird.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 8b3ad70d6777ecb4182ce811852c1b36 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/F1977.png b/Assets/Colorful FX/Resources/InstagramFast/F1977.png new file mode 100644 index 0000000..f55591a Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/F1977.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/F1977.png.meta b/Assets/Colorful FX/Resources/InstagramFast/F1977.png.meta new file mode 100644 index 0000000..49f1a47 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/F1977.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 5af78601c28168c44a6b65d7d7cfb9b9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Hefe.png b/Assets/Colorful FX/Resources/InstagramFast/Hefe.png new file mode 100644 index 0000000..c08b45f Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Hefe.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Hefe.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Hefe.png.meta new file mode 100644 index 0000000..d3e2467 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Hefe.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: ad8ec17e194f9114aa054c91edd0acb4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Hudson.png b/Assets/Colorful FX/Resources/InstagramFast/Hudson.png new file mode 100644 index 0000000..ef2bea8 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Hudson.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Hudson.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Hudson.png.meta new file mode 100644 index 0000000..efe3dd9 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Hudson.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 3c654de0a221cc84db32f82f8f2afef2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png b/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png new file mode 100644 index 0000000..6a946e0 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png.meta new file mode 100644 index 0000000..c4706ee --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Inkwell.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 61952d79b0552f74fa48a9c38ac66cfa +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Juno.png b/Assets/Colorful FX/Resources/InstagramFast/Juno.png new file mode 100644 index 0000000..2e839d4 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Juno.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Juno.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Juno.png.meta new file mode 100644 index 0000000..ed7efde --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Juno.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 802ada9f676280e469941c886fda1acc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png b/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png new file mode 100644 index 0000000..d174335 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png.meta new file mode 100644 index 0000000..07ae77e --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Kelvin.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 69a3d025b33ca1c479da87d948e75f43 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Lark.png b/Assets/Colorful FX/Resources/InstagramFast/Lark.png new file mode 100644 index 0000000..0edca2f Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Lark.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Lark.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Lark.png.meta new file mode 100644 index 0000000..4e19f7a --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Lark.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 4118a023d7fc21d4dbe8e400b6e0d420 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/LoFi.png b/Assets/Colorful FX/Resources/InstagramFast/LoFi.png new file mode 100644 index 0000000..d6c51e4 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/LoFi.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/LoFi.png.meta b/Assets/Colorful FX/Resources/InstagramFast/LoFi.png.meta new file mode 100644 index 0000000..795c056 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/LoFi.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 9d1e8c8488c33e243b7975ac76e81c52 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png b/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png new file mode 100644 index 0000000..4f1719e Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png.meta new file mode 100644 index 0000000..ac550a8 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Ludwig.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: a1931bf8a1579944dbb313c72ee8a8a9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png b/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png new file mode 100644 index 0000000..f1d9ac7 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png.meta new file mode 100644 index 0000000..d8b4096 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Mayfair.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 6d8afa97defbd3c4da531126311f040a +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Nashville.png b/Assets/Colorful FX/Resources/InstagramFast/Nashville.png new file mode 100644 index 0000000..4fe4b56 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Nashville.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Nashville.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Nashville.png.meta new file mode 100644 index 0000000..2ecf32f --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Nashville.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: c3fdaef179f0ad0448d330d74232e520 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png b/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png new file mode 100644 index 0000000..8094c49 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png.meta new file mode 100644 index 0000000..0cce04b --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Perpetua.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 06b3773ea97279445ace9cc180276028 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Reyes.png b/Assets/Colorful FX/Resources/InstagramFast/Reyes.png new file mode 100644 index 0000000..5d9b718 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Reyes.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Reyes.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Reyes.png.meta new file mode 100644 index 0000000..a59bb95 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Reyes.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: d54a7866c9cbb244983b5ac8a4658c0c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Rise.png b/Assets/Colorful FX/Resources/InstagramFast/Rise.png new file mode 100644 index 0000000..ef7c087 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Rise.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Rise.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Rise.png.meta new file mode 100644 index 0000000..30a5c45 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Rise.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: c05f77e0152817e4f83f592110846dbb +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Sierra.png b/Assets/Colorful FX/Resources/InstagramFast/Sierra.png new file mode 100644 index 0000000..97f4ae2 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Sierra.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Sierra.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Sierra.png.meta new file mode 100644 index 0000000..ef88a56 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Sierra.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 819a037846f8f8041b5aee0b125616c6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Slumber.png b/Assets/Colorful FX/Resources/InstagramFast/Slumber.png new file mode 100644 index 0000000..78da851 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Slumber.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Slumber.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Slumber.png.meta new file mode 100644 index 0000000..57d7ee4 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Slumber.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 95be40883626e6c4b82ff9226e71a902 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Sutro.png b/Assets/Colorful FX/Resources/InstagramFast/Sutro.png new file mode 100644 index 0000000..f8ef8b4 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Sutro.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Sutro.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Sutro.png.meta new file mode 100644 index 0000000..bd5c14d --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Sutro.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 804ddb2aaa670b14a8a4b471b304d5af +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Toaster.png b/Assets/Colorful FX/Resources/InstagramFast/Toaster.png new file mode 100644 index 0000000..ecfd597 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Toaster.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Toaster.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Toaster.png.meta new file mode 100644 index 0000000..31bec0e --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Toaster.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 7735aa00f73d0e64e9931be9610bc892 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Valencia.png b/Assets/Colorful FX/Resources/InstagramFast/Valencia.png new file mode 100644 index 0000000..dc800f9 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Valencia.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Valencia.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Valencia.png.meta new file mode 100644 index 0000000..8528a05 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Valencia.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 4e1927657ed4ac845b44125b5df98321 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Walden.png b/Assets/Colorful FX/Resources/InstagramFast/Walden.png new file mode 100644 index 0000000..39d2da9 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Walden.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Walden.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Walden.png.meta new file mode 100644 index 0000000..eaadcb2 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Walden.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: c8cc5a4b42ff80a4682b226de98bf249 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/Willow.png b/Assets/Colorful FX/Resources/InstagramFast/Willow.png new file mode 100644 index 0000000..d12aa84 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/Willow.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/Willow.png.meta b/Assets/Colorful FX/Resources/InstagramFast/Willow.png.meta new file mode 100644 index 0000000..b5314a4 --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/Willow.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 5a90642ad30e41a46897efac1aa642da +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/InstagramFast/XProII.png b/Assets/Colorful FX/Resources/InstagramFast/XProII.png new file mode 100644 index 0000000..afd1459 Binary files /dev/null and b/Assets/Colorful FX/Resources/InstagramFast/XProII.png differ diff --git a/Assets/Colorful FX/Resources/InstagramFast/XProII.png.meta b/Assets/Colorful FX/Resources/InstagramFast/XProII.png.meta new file mode 100644 index 0000000..1aa05ef --- /dev/null +++ b/Assets/Colorful FX/Resources/InstagramFast/XProII.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: c1c17bd83afe202429954e1b34d86faa +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes.meta b/Assets/Colorful FX/Resources/LoFiPalettes.meta new file mode 100644 index 0000000..1ea47f1 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f2831d1cfeb2fe04db8475fe03c7f26d +folderAsset: yes +timeCreated: 1466165648 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png b/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png new file mode 100644 index 0000000..83df521 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png.meta new file mode 100644 index 0000000..33ca1df --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/AmstradCPC.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: efd6c963b96631a428461d5f3957acb7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png b/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png new file mode 100644 index 0000000..c41b27c Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png.meta new file mode 100644 index 0000000..e9d6036 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Andrae.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e1c1ea046134cc44ea7eed7b158219e9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png b/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png new file mode 100644 index 0000000..dd811af Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png.meta new file mode 100644 index 0000000..495466c --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Anodomani.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2ac3863d175db3e4e83fa99b623116c5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png b/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png new file mode 100644 index 0000000..f5daceb Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png.meta new file mode 100644 index 0000000..6264f75 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/CGA.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e32c6243426d1774e8caacaf20433a7f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png b/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png new file mode 100644 index 0000000..aefc073 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png.meta new file mode 100644 index 0000000..5096f7b --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Commodore64.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 55644c5b205da68408b2b3b21cb2a766 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png b/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png new file mode 100644 index 0000000..abe72e1 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png.meta new file mode 100644 index 0000000..a2e343b --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/CommodorePlus.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: b9c6457e1974458429cfceea9e50b063 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png b/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png new file mode 100644 index 0000000..6cbca63 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png.meta new file mode 100644 index 0000000..859a3dc --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Crayolo.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 36435693a5c13ad45aee44ebeb29b689 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png b/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png new file mode 100644 index 0000000..91e8402 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png.meta new file mode 100644 index 0000000..c4c730b --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DB16.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 45f5e400febb6b94397415240321f588 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png b/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png new file mode 100644 index 0000000..ad865d7 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png.meta new file mode 100644 index 0000000..f52d5c7 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DB32.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: aadf6a8ae2ed13c409159fb3c7554fe3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png b/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png new file mode 100644 index 0000000..3e19093 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png.meta new file mode 100644 index 0000000..133b360 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DJinn.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 31252f05c22479f42ae9e4935dc52036 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png new file mode 100644 index 0000000..3a44ec4 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png.meta new file mode 100644 index 0000000..7cc7ccd --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileA.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 9a639820556503347ad0d4727ba857b9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png new file mode 100644 index 0000000..a94bfdf Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png.meta new file mode 100644 index 0000000..177d72c --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileB.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 912b780ca52bdd34cb09f7658661f283 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png new file mode 100644 index 0000000..a9957ac Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png.meta new file mode 100644 index 0000000..46399e9 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/DrazileC.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: fbca2e0a43ca84a4399e4cfdb286a717 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png b/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png new file mode 100644 index 0000000..62ebd16 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png.meta new file mode 100644 index 0000000..4a51122 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/EGA.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 729896902ffea864486da3135d057ea6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png b/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png new file mode 100644 index 0000000..5b70be9 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png.meta new file mode 100644 index 0000000..fca902b --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Eggy.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 5a54055f67af5fe4480d99335d9795c3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png new file mode 100644 index 0000000..e8dc905 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png.meta new file mode 100644 index 0000000..d81cbe6 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalA.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 8d381da33753b2246bbc5dcdc7740e4b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png new file mode 100644 index 0000000..f414b61 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png.meta new file mode 100644 index 0000000..223e017 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/FinlalB.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 9f35a23ff16561247a1faf0a33167694 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png b/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png new file mode 100644 index 0000000..3d7598b Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png.meta new file mode 100644 index 0000000..1279482 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/GameBoy.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 778b25d4a5a99264eb10bedacf474461 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png b/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png new file mode 100644 index 0000000..8e25ece Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png.meta new file mode 100644 index 0000000..def7889 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Hapiel.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 58153d503800254489a046f901eafe82 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png new file mode 100644 index 0000000..befd456 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png.meta new file mode 100644 index 0000000..fd003f1 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS16.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 24cdcc62a1347e24fa38e9af90dced76 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png new file mode 100644 index 0000000..d1a48e9 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png.meta new file mode 100644 index 0000000..73c6854 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/MacOS256.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 65d1aa5febef85a48a00b75ba7abb20c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png b/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png new file mode 100644 index 0000000..22b5600 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png.meta new file mode 100644 index 0000000..3751588 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/MasterSystem.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: fd6527219677b0d48ae862178f17916f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png new file mode 100644 index 0000000..10e3483 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png.meta new file mode 100644 index 0000000..4116d5c --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzA.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: de74900b4eed83546b1891fcbfaf62bd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png new file mode 100644 index 0000000..41336e2 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png.meta new file mode 100644 index 0000000..5011526 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/PavanzB.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: a69699f941db39148aed187a0ef90381 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png b/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png new file mode 100644 index 0000000..2067be8 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png.meta new file mode 100644 index 0000000..2655c4d --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Peyton.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: d6c0182cddef7a546bbd9006d25a16c1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png b/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png new file mode 100644 index 0000000..8e976bf Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png.meta new file mode 100644 index 0000000..f43fbee --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/RiscOS16.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 193fe1cf1a44fb34998c29e7dca7f6b0 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png b/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png new file mode 100644 index 0000000..f019f28 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png.meta new file mode 100644 index 0000000..f7b1bd9 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/SpeedyCube.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e19afc45b761cab4ab6f587f51f841e9 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png b/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png new file mode 100644 index 0000000..cee2ce8 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png.meta new file mode 100644 index 0000000..1ea9aa4 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Teletex.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 90a7127d04aedcf448351fe62cf9185c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png b/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png new file mode 100644 index 0000000..3d85c76 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png.meta new file mode 100644 index 0000000..8f8f661 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Windows16.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 345927dde3348c841874afc67ad34e69 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png b/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png new file mode 100644 index 0000000..60beebc Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png.meta new file mode 100644 index 0000000..7abe64d --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/Windows256.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: bb922ebadcf76e448ab80c022bb9d6fc +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png b/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png new file mode 100644 index 0000000..b343b22 Binary files /dev/null and b/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png differ diff --git a/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png.meta b/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png.meta new file mode 100644 index 0000000..55cf552 --- /dev/null +++ b/Assets/Colorful FX/Resources/LoFiPalettes/ZXSpectrum.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: b0597b3e0426cc7488a941293f399493 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Misc.meta b/Assets/Colorful FX/Resources/Misc.meta new file mode 100644 index 0000000..8c56875 --- /dev/null +++ b/Assets/Colorful FX/Resources/Misc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: de0d972fa4bd8da4b9dfdb29b0239363 +folderAsset: yes +timeCreated: 1466165648 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/Misc/DitherPattern.png b/Assets/Colorful FX/Resources/Misc/DitherPattern.png new file mode 100644 index 0000000..0228e59 Binary files /dev/null and b/Assets/Colorful FX/Resources/Misc/DitherPattern.png differ diff --git a/Assets/Colorful FX/Resources/Misc/DitherPattern.png.meta b/Assets/Colorful FX/Resources/Misc/DitherPattern.png.meta new file mode 100644 index 0000000..206b58f --- /dev/null +++ b/Assets/Colorful FX/Resources/Misc/DitherPattern.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: b00839345fed0ae4ca256ab2142e13fa +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 1 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 32 + textureSettings: + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 2 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 10 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI.meta b/Assets/Colorful FX/Resources/UI.meta new file mode 100644 index 0000000..1fdf047 --- /dev/null +++ b/Assets/Colorful FX/Resources/UI.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9248488f0ddf81c48bccf0faf115de37 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png b/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png new file mode 100644 index 0000000..46b3479 Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png differ diff --git a/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png.meta b/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png.meta new file mode 100644 index 0000000..882ee18 --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/ColorCubeCursorActive.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 992a968e1853db640b4003d82c777e5b +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png b/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png new file mode 100644 index 0000000..a893d00 Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png differ diff --git a/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png.meta b/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png.meta new file mode 100644 index 0000000..50ae0c8 --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/ColorCubeCursorInactive.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2feb5b71ce700ab4c9be55913f772453 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png b/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png new file mode 100644 index 0000000..ba2c791 Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png differ diff --git a/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png.meta b/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png.meta new file mode 100644 index 0000000..c933961 --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/GrayscaleRamp.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: e2c1011f5ce9e074d80c9b708c4f5727 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png b/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png new file mode 100644 index 0000000..eb96cce Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png differ diff --git a/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png.meta b/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png.meta new file mode 100644 index 0000000..db1672b --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/GrayscaleRampLinear.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 4707472814fc4f846b0d3f36182861e6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/HueRamp.png b/Assets/Colorful FX/Resources/UI/HueRamp.png new file mode 100644 index 0000000..d2147ca Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/HueRamp.png differ diff --git a/Assets/Colorful FX/Resources/UI/HueRamp.png.meta b/Assets/Colorful FX/Resources/UI/HueRamp.png.meta new file mode 100644 index 0000000..c9e7c7c --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/HueRamp.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 7923d23155439434784e9755d1e60812 +timeCreated: 1430213342 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Resources/UI/WheelThumb.png b/Assets/Colorful FX/Resources/UI/WheelThumb.png new file mode 100644 index 0000000..c43602b Binary files /dev/null and b/Assets/Colorful FX/Resources/UI/WheelThumb.png differ diff --git a/Assets/Colorful FX/Resources/UI/WheelThumb.png.meta b/Assets/Colorful FX/Resources/UI/WheelThumb.png.meta new file mode 100644 index 0000000..39f826c --- /dev/null +++ b/Assets/Colorful FX/Resources/UI/WheelThumb.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 95799cb614cdf134f9b3773aaf92808d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Samples.meta b/Assets/Colorful FX/Samples.meta new file mode 100644 index 0000000..0fd2893 --- /dev/null +++ b/Assets/Colorful FX/Samples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4c61c588686af784789b65d2ef500250 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Samples/HeatRamp.png b/Assets/Colorful FX/Samples/HeatRamp.png new file mode 100644 index 0000000..c8c3c13 Binary files /dev/null and b/Assets/Colorful FX/Samples/HeatRamp.png differ diff --git a/Assets/Colorful FX/Samples/HeatRamp.png.meta b/Assets/Colorful FX/Samples/HeatRamp.png.meta new file mode 100644 index 0000000..0a74d43 --- /dev/null +++ b/Assets/Colorful FX/Samples/HeatRamp.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: b7c94aa126cfa85419349984807c1ce5 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Samples/Lookup3DSource.png b/Assets/Colorful FX/Samples/Lookup3DSource.png new file mode 100644 index 0000000..fc0f026 Binary files /dev/null and b/Assets/Colorful FX/Samples/Lookup3DSource.png differ diff --git a/Assets/Colorful FX/Samples/Lookup3DSource.png.meta b/Assets/Colorful FX/Samples/Lookup3DSource.png.meta new file mode 100644 index 0000000..1545c7c --- /dev/null +++ b/Assets/Colorful FX/Samples/Lookup3DSource.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: 2c3c3951c92fc7b4583fcd6c1ed98b4c +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 1 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Samples/LookupSource.png b/Assets/Colorful FX/Samples/LookupSource.png new file mode 100644 index 0000000..7a3798d Binary files /dev/null and b/Assets/Colorful FX/Samples/LookupSource.png differ diff --git a/Assets/Colorful FX/Samples/LookupSource.png.meta b/Assets/Colorful FX/Samples/LookupSource.png.meta new file mode 100644 index 0000000..eef9927 --- /dev/null +++ b/Assets/Colorful FX/Samples/LookupSource.png.meta @@ -0,0 +1,66 @@ +fileFormatVersion: 2 +guid: aebf5a4e61f4d044bb084e0b481f3ac2 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: -1 + aniso: 0 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts.meta b/Assets/Colorful FX/Scripts.meta new file mode 100644 index 0000000..1912c56 --- /dev/null +++ b/Assets/Colorful FX/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4b32857bdff3e1b41b5c459106436024 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Attributes.meta b/Assets/Colorful FX/Scripts/Attributes.meta new file mode 100644 index 0000000..ee30484 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aa9a3f84ebd71e34db095c5677e51d5d +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs b/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs new file mode 100644 index 0000000..7cb8bd1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs @@ -0,0 +1,22 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#if !(UNITY_4_5 || UNITY_4_6 || UNITY_5_0) +#define UNITY_5_1_PLUS +#endif + +// Compatibility layer for Unity < 5.1 + +namespace Colorful +{ +#if !(UNITY_5_1_PLUS) + using UnityEngine; + + public class ColorUsageAttribute : PropertyAttribute + { + public ColorUsageAttribute(bool showAlpha) { } + public ColorUsageAttribute(bool showAlpha, bool hdr, float minBrightness, float maxBrightness, float minExposureValue, float maxExposureValue) { } + } +#endif +} diff --git a/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs.meta b/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs.meta new file mode 100644 index 0000000..300afe2 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/ColorUsageAttribute.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fedf16f4294e7164daf92369a045e45e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs b/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs new file mode 100644 index 0000000..078b131 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs @@ -0,0 +1,22 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#if !(UNITY_4_5 || UNITY_4_6 || UNITY_5_0) +#define UNITY_5_1_PLUS +#endif + +// Compatibility layer for Unity < 5.1 + +namespace Colorful +{ +#if !(UNITY_5_1_PLUS) + using System; + + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public class HelpURLAttribute : Attribute + { + public HelpURLAttribute(string url) { } + } +#endif +} diff --git a/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs.meta b/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs.meta new file mode 100644 index 0000000..6a8c037 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/HelpURLAttribute.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e4e0233be6fff614c859f48b3376629a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs b/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs new file mode 100644 index 0000000..5bcbab3 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs @@ -0,0 +1,18 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + public sealed class MinAttribute : PropertyAttribute + { + public readonly float Min; + + public MinAttribute(float min) + { + Min = min; + } + } +} diff --git a/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs.meta b/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs.meta new file mode 100644 index 0000000..919c2f1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Attributes/MinAttribute.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1d30cc3cea37d24448a6de8965e88e01 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/BaseEffect.cs b/Assets/Colorful FX/Scripts/BaseEffect.cs new file mode 100644 index 0000000..3c70e2d --- /dev/null +++ b/Assets/Colorful FX/Scripts/BaseEffect.cs @@ -0,0 +1,70 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [RequireComponent(typeof(Camera))] + [AddComponentMenu("")] + public class BaseEffect : MonoBehaviour + { + public Shader Shader; + + protected Material m_Material; + public Material Material + { + get + { + if (m_Material == null) + { + m_Material = new Material(Shader); + m_Material.hideFlags = HideFlags.HideAndDontSave; + } + + return m_Material; + } + } + + protected virtual void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) + { + Debug.LogWarning("Image effects aren't supported on this device"); + enabled = false; + return; + } + + // Disable the image effect if the shader can't run on the users graphics card + if (!Shader || !Shader.isSupported) + { + Debug.LogWarning("The shader is null or unsupported on this device"); + enabled = false; + } + } + + protected virtual void OnDisable() + { + if (m_Material) + DestroyImmediate(m_Material); + } + + public void Apply(Texture source, RenderTexture destination) + { + if (source is RenderTexture) + { + OnRenderImage(source as RenderTexture, destination); + return; + } + + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height); + Graphics.Blit(source, rt); + OnRenderImage(rt, destination); + RenderTexture.ReleaseTemporary(rt); + } + + protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) { } + } +} diff --git a/Assets/Colorful FX/Scripts/BaseEffect.cs.meta b/Assets/Colorful FX/Scripts/BaseEffect.cs.meta new file mode 100644 index 0000000..2960b20 --- /dev/null +++ b/Assets/Colorful FX/Scripts/BaseEffect.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 997a825680d21d54eb1ffce25408c0a0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/CLib.cs b/Assets/Colorful FX/Scripts/CLib.cs new file mode 100644 index 0000000..16fd679 --- /dev/null +++ b/Assets/Colorful FX/Scripts/CLib.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + public static class CLib + { + public const float PI_2 = Mathf.PI / 2f; + public const float PI2 = Mathf.PI * 2f; + + public static float Frac(float f) + { + return f - Mathf.Floor(f); + } + + public static bool IsLinearColorSpace() + { + return QualitySettings.activeColorSpace == ColorSpace.Linear; + } + + public static bool Approximately(float source, float about, float range = 0.0001f) + { + return ((Mathf.Abs(source - about) < range)); + } + } +} diff --git a/Assets/Colorful FX/Scripts/CLib.cs.meta b/Assets/Colorful FX/Scripts/CLib.cs.meta new file mode 100644 index 0000000..77a7696 --- /dev/null +++ b/Assets/Colorful FX/Scripts/CLib.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f2ebd99fc8544fe42831227b5284df50 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects.meta b/Assets/Colorful FX/Scripts/Effects.meta new file mode 100644 index 0000000..b3a82fd --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2dd0fb02180991b43b338b98cf8a1d97 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs b/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs new file mode 100644 index 0000000..affc10d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs @@ -0,0 +1,70 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/analog-tv.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Analog TV")] + public class AnalogTV : BaseEffect + { + [Tooltip("Automatically animate the Phase value.")] + public bool AutomaticPhase = true; + + [Tooltip("Current noise phase. Consider this a seed value.")] + public float Phase = 0.5f; + + [Tooltip("Convert the original render to black & white.")] + public bool ConvertToGrayscale = false; + + [Range(0f, 1f), Tooltip("Noise brightness. Will impact the scanlines visibility.")] + public float NoiseIntensity = 0.5f; + + [Range(0f, 10f), Tooltip("Scanline brightness. Depends on the NoiseIntensity value.")] + public float ScanlinesIntensity = 2f; + + [Range(0, 4096), Tooltip("The number of scanlines to draw.")] + public int ScanlinesCount = 768; + + [Tooltip("Scanline offset. Gives a cool screen scanning effect when animated.")] + public float ScanlinesOffset = 0f; + + [Tooltip("Uses vertical scanlines.")] + public bool VerticalScanlines = false; + + [Range(-2f, 2f), Tooltip("Spherical distortion factor.")] + public float Distortion = 0.2f; + + [Range(-2f, 2f), Tooltip("Cubic distortion factor.")] + public float CubicDistortion = 0.6f; + + [Range(0.01f, 2f), Tooltip("Helps avoid screen streching on borders when working with heavy distortions.")] + public float Scale = 0.8f; + + protected virtual void Update() + { + if (AutomaticPhase) + { + // Reset the Phase after a while, some GPUs don't like big numbers + if (Phase > 1000f) + Phase = 10f; + + Phase += Time.deltaTime * 0.25f; + } + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params1", new Vector4(NoiseIntensity, ScanlinesIntensity, ScanlinesCount, ScanlinesOffset)); + Material.SetVector("_Params2", new Vector4(Phase, Distortion, CubicDistortion, Scale)); + + int pass = VerticalScanlines ? 2 : 0; + pass += ConvertToGrayscale ? 1 : 0; + + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs.meta b/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs.meta new file mode 100644 index 0000000..e81e4e4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/AnalogTV.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 249169bbea0dd51478b14718e62f7e54 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 6b426a8c366d0584dadb551db862ddeb, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs b/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs new file mode 100644 index 0000000..c5a57b4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs @@ -0,0 +1,99 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/bilateral-gaussian-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Bilateral Gaussian Blur")] + public class BilateralGaussianBlur : BaseEffect + { + [Range(0, 10), Tooltip("Add more passes to get a smoother blur. Beware that each pass will slow down the effect.")] + public int Passes = 1; + + [Range(0.04f, 1f), Tooltip("Adjusts the blur \"sharpness\" around edges")] + public float Threshold = 0.05f; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void Start() + { + base.Start(); + GetComponent().depthTextureMode |= DepthTextureMode.Depth; + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetFloat("_Threshold", Threshold / 10000f); + + if (Passes == 0 || Amount == 0f) + { + Graphics.Blit(source, destination); + } + else if (Amount < 1f) + { + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height); + + if (Passes == 1) + OnePassBlur(source, rt); + else + MultiPassBlur(source, rt); + + Material.SetTexture("_Blurred", rt); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, 1); + + RenderTexture.ReleaseTemporary(rt); + } + else + { + if (Passes == 1) + OnePassBlur(source, destination); + else + MultiPassBlur(source, destination); + } + } + + protected virtual void OnePassBlur(RenderTexture source, RenderTexture destination) + { + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); + + Material.SetVector("_Direction", new Vector2(1f / (float)source.width, 0f)); + Graphics.Blit(source, rt, Material, 0); + Material.SetVector("_Direction", new Vector2(0f, 1f / (float)source.height)); + Graphics.Blit(rt, destination, Material, 0); + + RenderTexture.ReleaseTemporary(rt); + } + + protected virtual void MultiPassBlur(RenderTexture source, RenderTexture destination) + { + Vector2 horizontal = new Vector2(1f / (float)source.width, 0f); + Vector2 vertical = new Vector2(0f, 1f / (float)source.height); + RenderTexture rt1 = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); + RenderTexture rt2 = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); + + Material.SetVector("_Direction", horizontal); + Graphics.Blit(source, rt1, Material, 0); + Material.SetVector("_Direction", vertical); + Graphics.Blit(rt1, rt2, Material, 0); + + for (int i = 1; i < Passes; i++) + { + Material.SetVector("_Direction", horizontal); + Graphics.Blit(rt2, rt1, Material, 0); + Material.SetVector("_Direction", vertical); + Graphics.Blit(rt1, rt2, Material, 0); + } + + Graphics.Blit(rt2, destination); + + RenderTexture.ReleaseTemporary(rt1); + RenderTexture.ReleaseTemporary(rt2); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs.meta new file mode 100644 index 0000000..f522988 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BilateralGaussianBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c308c66c5ca62241854d5e9441dff12 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: a8686488660cc994aa7b3197735727dc, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs b/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs new file mode 100644 index 0000000..09fe902 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/bleach-bypass.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Bleach Bypass")] + public class BleachBypass : BaseEffect + { + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs.meta b/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs.meta new file mode 100644 index 0000000..758723c --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BleachBypass.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 375ca57461b42344c864b4420165e81c +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: db51fb80780ef714492de6fd9a5b3748, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Blend.cs b/Assets/Colorful FX/Scripts/Effects/Blend.cs new file mode 100644 index 0000000..2952262 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Blend.cs @@ -0,0 +1,64 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/blend.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Blend")] + public class Blend : BaseEffect + { + public enum BlendingMode + { + Darken = 0, + Multiply = 1, + ColorBurn = 2, + LinearBurn = 3, + DarkerColor = 4, + + Lighten = 6, + Screen = 7, + ColorDodge = 8, + LinearDodge = 9, + LighterColor = 10, + + Overlay = 12, + SoftLight = 13, + HardLight = 14, + VividLight = 15, + LinearLight = 16, + PinLight = 17, + HardMix = 18, + + Difference = 20, + Exclusion = 21, + Subtract = 22, + Divide = 23 + } + + [Tooltip("The Texture2D, RenderTexture or MovieTexture to blend.")] + public Texture Texture; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + [Tooltip("Blending mode.")] + public BlendingMode Mode = 0; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Texture == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetTexture("_OverlayTex", Texture); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Blend.cs.meta b/Assets/Colorful FX/Scripts/Effects/Blend.cs.meta new file mode 100644 index 0000000..e33e97f --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Blend.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a03bbd8dae5544449a4aa2f932421675 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 753c5a4449b3c184b85015dea8325051, type: 3} + - texture: {instanceID: 0} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs b/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs new file mode 100644 index 0000000..429e8e4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs @@ -0,0 +1,38 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/brightness-contrast-gamma.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Brightness, Contrast, Gamma")] + public class BrightnessContrastGamma : BaseEffect + { + [Range(-100f, 100f), Tooltip("Moving the slider to the right increases tonal values and expands highlights, to the left decreases values and expands shadows.")] + public float Brightness = 0f; + + [Range(-100f, 100f), Tooltip("Expands or shrinks the overall range of tonal values.")] + public float Contrast = 0f; + + public Vector3 ContrastCoeff = new Vector3(0.5f, 0.5f, 0.5f); + + [Range(0.1f, 9.9f), Tooltip("Simple power function.")] + public float Gamma = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Brightness == 0f && Contrast == 0f && Gamma == 1f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_BCG", new Vector4((Brightness + 100f) * 0.01f, (Contrast + 100f) * 0.01f, 1.0f / Gamma)); + Material.SetVector("_Coeffs", ContrastCoeff); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs.meta b/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs.meta new file mode 100644 index 0000000..6d0f3b7 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/BrightnessContrastGamma.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 218001df9f0f08c44bdc15b86cfab74d +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: c1ffdcaa7728ced4fa68c999e5e7f2de, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs b/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs new file mode 100644 index 0000000..62c3446 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs @@ -0,0 +1,26 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/channel-clamper.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Channel Clamper")] + public class ChannelClamper : BaseEffect + { + public Vector2 Red = new Vector2(0f, 1f); + public Vector2 Green = new Vector2(0f, 1f); + public Vector2 Blue = new Vector2(0f, 1f); + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_RedClamp", Red); + Material.SetVector("_GreenClamp", Green); + Material.SetVector("_BlueClamp", Blue); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs.meta b/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs.meta new file mode 100644 index 0000000..c09d492 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelClamper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4bbedf175159cd246abc66482e52791d +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: a4066b90a1d8ac540b9994745a496312, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs b/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs new file mode 100644 index 0000000..3763314 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/channel-mixer.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Channel Mixer")] + public class ChannelMixer : BaseEffect + { + public Vector3 Red = new Vector3(100f, 0f, 0f); + public Vector3 Green = new Vector3(0f, 100f, 0f); + public Vector3 Blue = new Vector3(0f, 0f, 100f); + public Vector3 Constant = new Vector3(0f, 0f, 0f); + +#if UNITY_EDITOR + public int e_CurrentChannel = 0; +#endif + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Red", new Vector4(Red.x * 0.01f, Green.x * 0.01f, Blue.x * 0.01f)); + Material.SetVector("_Green", new Vector4(Red.y * 0.01f, Green.y * 0.01f, Blue.y * 0.01f)); + Material.SetVector("_Blue", new Vector4(Red.z * 0.01f, Green.z * 0.01f, Blue.z * 0.01f)); + Material.SetVector("_Constant", new Vector4(Constant.x * 0.01f, Constant.y * 0.01f, Constant.z * 0.01f)); + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs.meta b/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs.meta new file mode 100644 index 0000000..2d870d1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelMixer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44002857159cfa64fab24b6ec32b80de +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: d5203c49c0e949f4e9b53909003b6b8f, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs b/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs new file mode 100644 index 0000000..6f948aa --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs @@ -0,0 +1,45 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/channel-swapper.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Channel Swapper")] + public class ChannelSwapper : BaseEffect + { + public enum Channel + { + Red, + Green, + Blue + } + + [Tooltip("Source channel to use for the output red channel.")] + public Channel RedSource = Channel.Red; + + [Tooltip("Source channel to use for the output green channel.")] + public Channel GreenSource = Channel.Green; + + [Tooltip("Source channel to use for the output blue channel.")] + public Channel BlueSource = Channel.Blue; + + static Vector4[] m_Channels = new Vector4[] + { + new Vector4(1f, 0f, 0f, 0f), + new Vector4(0f, 1f, 0f, 0f), + new Vector4(0f, 0f, 1f, 0f) + }; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Red", m_Channels[(int)RedSource]); + Material.SetVector("_Green", m_Channels[(int)GreenSource]); + Material.SetVector("_Blue", m_Channels[(int)BlueSource]); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs.meta b/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs.meta new file mode 100644 index 0000000..3839378 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChannelSwapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31469d7a9ef2ef04c9db920f12918f7d +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 382b6d6c7bf6b3b49b364517c68bb0d2, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs b/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs new file mode 100644 index 0000000..b47013a --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/chromatic-aberration.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Chromatic Aberration")] + public class ChromaticAberration : BaseEffect + { + [Range(0.9f, 1.1f), Tooltip("Indice of refraction for the red channel.")] + public float RedRefraction = 1.0f; + + [Range(0.9f, 1.1f), Tooltip("Indice of refraction for the green channel.")] + public float GreenRefraction = 1.005f; + + [Range(0.9f, 1.1f), Tooltip("Indice of refraction for the blue channel.")] + public float BlueRefraction = 1.01f; + + [Tooltip("Enable this option if you need the effect to keep the alpha channel from the original render (some effects like Glow will need it). Disable it otherwise for better performances.")] + public bool PreserveAlpha = false; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Refraction", new Vector3(RedRefraction, GreenRefraction, BlueRefraction)); + Graphics.Blit(source, destination, Material, PreserveAlpha ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs.meta b/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs.meta new file mode 100644 index 0000000..d6bb64f --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ChromaticAberration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca037f4bdb3f772408f958bc6cd2b647 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 447e63f892fae1d49b961d2132c02b5a, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ComicBook.cs b/Assets/Colorful FX/Scripts/Effects/ComicBook.cs new file mode 100644 index 0000000..887d631 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ComicBook.cs @@ -0,0 +1,71 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/comic-book.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Comic Book")] + public class ComicBook : BaseEffect + { + [Tooltip("Strip orientation in radians.")] + public float StripAngle = 0.6f; + + [Min(0f), Tooltip("Amount of strips to draw.")] + public float StripDensity = 180f; + + [Range(0f, 1f), Tooltip("Thickness of the inner strip fill.")] + public float StripThickness = 0.5f; + + public Vector2 StripLimits = new Vector2(0.25f, 0.4f); + + [ColorUsage(false)] + public Color StripInnerColor = new Color(0.3f, 0.3f, 0.3f); + + [ColorUsage(false)] + public Color StripOuterColor = new Color(0.8f, 0.8f, 0.8f); + + [ColorUsage(false)] + public Color FillColor = new Color(0.1f, 0.1f, 0.1f); + + [ColorUsage(false)] + public Color BackgroundColor = Color.white; + + [Tooltip("Toggle edge detection (slower).")] + public bool EdgeDetection = false; + + [Min(0.01f), Tooltip("Edge detection threshold. Use lower values for more visible edges.")] + public float EdgeThreshold = 5f; + + [ColorUsage(false)] + public Color EdgeColor = Color.black; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_StripParams", new Vector4(Mathf.Cos(StripAngle), Mathf.Sin(StripAngle), StripLimits.x, StripLimits.y)); + Material.SetVector("_StripParams2", new Vector3(StripDensity * 10f, StripThickness, Amount)); + Material.SetColor("_StripInnerColor", StripInnerColor); + Material.SetColor("_StripOuterColor", StripOuterColor); + + Material.SetColor("_FillColor", FillColor); + Material.SetColor("_BackgroundColor", BackgroundColor); + + if (EdgeDetection) + { + Material.SetFloat("_EdgeThreshold", 1f / (EdgeThreshold * 100f)); + Material.SetColor("_EdgeColor", EdgeColor); + Graphics.Blit(source, destination, Material, 1); + } + else + { + Graphics.Blit(source, destination, Material, 0); + } + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ComicBook.cs.meta b/Assets/Colorful FX/Scripts/Effects/ComicBook.cs.meta new file mode 100644 index 0000000..36b0aa2 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ComicBook.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71f5e50fe4501bb4eb59bd2aabac07f6 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 589797c62ca68254ea3643767841da50, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs b/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs new file mode 100644 index 0000000..cd1b614 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs @@ -0,0 +1,23 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/contrast-gain.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Contrast Gain")] + public class ContrastGain : BaseEffect + { + [Range(0.001f, 2f), Tooltip("Steepness of the contrast curve. 1 is linear, no contrast change.")] + public float Gain = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetFloat("_Gain", Gain); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs.meta b/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs.meta new file mode 100644 index 0000000..f74f38b --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ContrastGain.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 811f2f6e1a790e74d9dc90e4602b78df +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 3973b60005a6730458dd6590aa15584e, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs b/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs new file mode 100644 index 0000000..9bb0abc --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs @@ -0,0 +1,39 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/contrast-vignette.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Contrast Vignette")] + public class ContrastVignette : BaseEffect + { + [Tooltip("Center point.")] + public Vector2 Center = new Vector2(0.5f, 0.5f); + + [Range(-100f, 100f), Tooltip("Smoothness of the vignette effect.")] + public float Sharpness = 32f; + + [Range(0f, 100f), Tooltip("Amount of vignetting on screen.")] + public float Darkness = 28f; + + [Range(0f, 200f), Tooltip("Expands or shrinks the overall range of tonal values in the vignette area.")] + public float Contrast = 20.0f; + + public Vector3 ContrastCoeff = new Vector3(0.5f, 0.5f, 0.5f); + + [Range(0f, 200f), Tooltip("Blends the contrast change toward the edges of the vignette effect.")] + public float EdgeBlending = 0f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector4(Sharpness * 0.01f, Darkness * 0.02f, Contrast * 0.01f, EdgeBlending * 0.01f)); + Material.SetVector("_Coeffs", ContrastCoeff); + Material.SetVector("_Center", Center); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs.meta b/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs.meta new file mode 100644 index 0000000..628f0da --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ContrastVignette.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d71ed1522687af44190ab88a913a3c74 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 76dfe25966c72ac4e9fcea7968814159, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs b/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs new file mode 100644 index 0000000..5b245ec --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs @@ -0,0 +1,40 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/convolution-3x3.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Convolution Matrix 3x3")] + public class Convolution3x3 : BaseEffect + { + public Vector3 KernelTop = Vector3.zero; + public Vector3 KernelMiddle = Vector3.up; + public Vector3 KernelBottom = Vector3.zero; + + [Tooltip("Used to normalize the kernel.")] + public float Divisor = 1f; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_PSize", new Vector2(1f / (float)source.width, 1f / (float)source.height)); + Material.SetVector("_KernelT", KernelTop / Divisor); + Material.SetVector("_KernelM", KernelMiddle / Divisor); + Material.SetVector("_KernelB", KernelBottom / Divisor); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs.meta b/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs.meta new file mode 100644 index 0000000..8efe7ee --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Convolution3x3.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7245cf61e1ed2bc49bd3ec8ef6f299ad +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: bb1bf93f638bf2145a1a3aff22f7ebf8, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs b/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs new file mode 100644 index 0000000..65da69d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/cross-stitch.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Cross Stitch")] + public class CrossStitch : BaseEffect + { + [Range(1, 128), Tooltip("Works best with power of two values.")] + public int Size = 8; + + [Range(0f, 10f), Tooltip("Brightness adjustment. Cross-stitching tends to lower the overall brightness, use this to compensate.")] + public float Brightness = 1.5f; + + [Tooltip("Inverts the cross-stiching pattern.")] + public bool Invert = false; + + [Tooltip("Should the original render be pixelized ?")] + public bool Pixelize = true; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetInt("_StitchSize", Size); + Material.SetFloat("_Brightness", Brightness); + + int pass = Invert ? 1 : 0; + + if (Pixelize) + { + pass += 2; + Material.SetFloat("_Scale", (float)source.width / (float)Size); + Material.SetFloat("_Ratio", (float)source.width / (float)source.height); + } + + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs.meta b/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs.meta new file mode 100644 index 0000000..49af8da --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/CrossStitch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86b15e716a293ba448fc678484e34faa +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: a964a19ae7fdffc4ea70dbf094568dc1, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs b/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs new file mode 100644 index 0000000..3177dd0 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/directional-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Directional Blur")] + public class DirectionalBlur : BaseEffect + { + public enum QualityPreset + { + Low = 2, + Medium = 4, + High = 6, + Custom + } + + [Tooltip("Quality preset. Higher means better quality but slower processing.")] + public QualityPreset Quality = QualityPreset.Medium; + + [Range(1, 16), Tooltip("Sample count. Higher means better quality but slower processing.")] + public int Samples = 5; + + [Range(0f, 5f), Tooltip("Blur strength (distance).")] + public float Strength = 1f; + + [Tooltip("Blur direction in radians.")] + public float Angle = 0f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + int samples = Quality == QualityPreset.Custom ? Samples : (int)Quality; + float s = (Mathf.Sin(Angle) * Strength * 0.05f) / samples; + float c = (Mathf.Cos(Angle) * Strength * 0.05f) / samples; + Material.SetVector("_Params", new Vector3(s, c, samples)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs.meta new file mode 100644 index 0000000..edb3602 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DirectionalBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8dfafee99a682d340a337ad7faac2c2c +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 335958bbdc44f564894a29445833afae, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Dithering.cs b/Assets/Colorful FX/Scripts/Effects/Dithering.cs new file mode 100644 index 0000000..ecc7858 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Dithering.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/dithering.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Dithering")] + public class Dithering : BaseEffect + { + [Tooltip("Show the original picture under the dithering pass.")] + public bool ShowOriginal = false; + + [Tooltip("Convert the original render to black & white.")] + public bool ConvertToGrayscale = false; + + [Range(0f, 1f), Tooltip("Amount of red to contribute to the luminosity.")] + public float RedLuminance = 0.299f; + + [Range(0f, 1f), Tooltip("Amount of green to contribute to the luminosity.")] + public float GreenLuminance = 0.587f; + + [Range(0f, 1f), Tooltip("Amount of blue to contribute to the luminosity.")] + public float BlueLuminance = 0.114f; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected Texture2D m_DitherPattern; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + if (m_DitherPattern == null) + m_DitherPattern = Resources.Load("Misc/DitherPattern"); + + Material.SetTexture("_Pattern", m_DitherPattern); + Material.SetVector("_Params", new Vector4(RedLuminance, GreenLuminance, BlueLuminance, Amount)); + + int pass = ShowOriginal ? 4 : 0; + pass += ConvertToGrayscale ? 2 : 0; + pass += CLib.IsLinearColorSpace() ? 1 : 0; + + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Dithering.cs.meta b/Assets/Colorful FX/Scripts/Effects/Dithering.cs.meta new file mode 100644 index 0000000..13e79ff --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Dithering.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1fbea93e4d9974b409e25836a5c8f679 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 6eafe2a67b46d474095df68b1396a86e, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs b/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs new file mode 100644 index 0000000..9a898cf --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/double-vision.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Double Vision")] + public class DoubleVision : BaseEffect + { + [Tooltip("Diploplia strength.")] + public Vector2 Displace = new Vector2(0.7f, 0.0f); + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1.0f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f || Displace == Vector2.zero) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Displace", new Vector2(Displace.x / (float)source.width, Displace.y / (float)source.height)); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs.meta b/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs.meta new file mode 100644 index 0000000..8da97ce --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DoubleVision.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 48defb31b546e8e49bd5568d4765bfb0 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 0094bbb9058b55a4bb1874ccd072b33e, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs b/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs new file mode 100644 index 0000000..50b37f4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/dynamic-lookup.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Dynamic Lookup")] + public class DynamicLookup : BaseEffect + { + [ColorUsage(false)] + public Color White = new Color(1f, 1f, 1f); + + [ColorUsage(false)] + public Color Black = new Color(0f, 0f, 0f); + + [ColorUsage(false)] + public Color Red = new Color(1f, 0f, 0f); + + [ColorUsage(false)] + public Color Green = new Color(0f, 1f, 0f); + + [ColorUsage(false)] + public Color Blue = new Color(0f, 0f, 1f); + + [ColorUsage(false)] + public Color Yellow = new Color(1f, 1f, 0f); + + [ColorUsage(false)] + public Color Magenta = new Color(1f, 0f, 1f); + + [ColorUsage(false)] + public Color Cyan = new Color(0f, 1f, 1f); + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetColor("_White", White); + Material.SetColor("_Black", Black); + Material.SetColor("_Red", Red); + Material.SetColor("_Green", Green); + Material.SetColor("_Blue", Blue); + Material.SetColor("_Yellow", Yellow); + Material.SetColor("_Magenta", Magenta); + Material.SetColor("_Cyan", Cyan); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, CLib.IsLinearColorSpace() ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs.meta b/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs.meta new file mode 100644 index 0000000..c2ffc0b --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/DynamicLookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a8feeb07303302b49be4c3647f055b67 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: ea36d91a0b99bd240ac1a3f17bac241b, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/FastVignette.cs b/Assets/Colorful FX/Scripts/Effects/FastVignette.cs new file mode 100644 index 0000000..a2f8a43 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/FastVignette.cs @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/fast-vignette.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Fast Vignette")] + public class FastVignette : BaseEffect + { + public enum ColorMode + { + Classic, + Desaturate, + Colored + } + + [Tooltip("Vignette type.")] + public ColorMode Mode = ColorMode.Classic; + + [ColorUsage(false), Tooltip("The color to use in the vignette area.")] + public Color Color = Color.red; + + [Tooltip("Center point.")] + public Vector2 Center = new Vector2(0.5f, 0.5f); + + [Range(-100f, 100f), Tooltip("Smoothness of the vignette effect.")] + public float Sharpness = 10f; + + [Range(0f, 100f), Tooltip("Amount of vignetting on screen.")] + public float Darkness = 30f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector4(Center.x, Center.y, Sharpness * 0.01f, Darkness * 0.02f)); + Material.SetColor("_Color", Color); + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/FastVignette.cs.meta b/Assets/Colorful FX/Scripts/Effects/FastVignette.cs.meta new file mode 100644 index 0000000..c6b7b52 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/FastVignette.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bade397de0db6634686b451e10dc2edc +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 1025d512948837641802921c41526fd1, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Frost.cs b/Assets/Colorful FX/Scripts/Effects/Frost.cs new file mode 100644 index 0000000..85cfd89 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Frost.cs @@ -0,0 +1,45 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/frost.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Frost")] + public class Frost : BaseEffect + { + [Range(0f, 16f), Tooltip("Frosting strength.")] + public float Scale = 1.2f; + + [Range(-100f, 100f), Tooltip("Smoothness of the vignette effect.")] + public float Sharpness = 40f; + + [Range(0f, 100f), Tooltip("Amount of vignetting on screen.")] + public float Darkness = 35f; + + [Tooltip("Should the effect be applied like a vignette ?")] + public bool EnableVignette = true; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Scale <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetFloat("_Scale", Scale); + + if (EnableVignette) + { + Material.SetFloat("_Sharpness", Sharpness * 0.01f); + Material.SetFloat("_Darkness", Darkness * 0.02f); + } + + Graphics.Blit(source, destination, Material, EnableVignette ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Frost.cs.meta b/Assets/Colorful FX/Scripts/Effects/Frost.cs.meta new file mode 100644 index 0000000..a5cb612 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Frost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cf6863e426bf6f41be29f5e4a31ccfb +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: b4d2d40f74bc7724f9722f04d5f7113b, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs b/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs new file mode 100644 index 0000000..88d937f --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs @@ -0,0 +1,95 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/gaussian-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Gaussian Blur")] + public class GaussianBlur : BaseEffect + { + [Range(0, 10), Tooltip("Amount of blurring pass to apply.")] + public int Passes = 1; + + [Range(1f, 16f), Tooltip("Downscales the result for faster processing or heavier blur.")] + public float Downscaling = 1; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Passes == 0 || Amount == 0f) + { + Graphics.Blit(source, destination); + } + else if (Amount < 1f) + { + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height); + + if (Passes == 1) + OnePassBlur(source, rt); + else + MultiPassBlur(source, rt); + + Material.SetTexture("_Blurred", rt); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, 1); + + RenderTexture.ReleaseTemporary(rt); + } + else + { + if (Passes == 1) + OnePassBlur(source, destination); + else + MultiPassBlur(source, destination); + } + } + + protected virtual void OnePassBlur(RenderTexture source, RenderTexture destination) + { + int w = Mathf.FloorToInt((float)source.width / Downscaling); + int h = Mathf.FloorToInt((float)source.height / Downscaling); + RenderTexture rt = RenderTexture.GetTemporary(w, h, 0, source.format); + + Material.SetVector("_Direction", new Vector2(1f / w, 0f)); + Graphics.Blit(source, rt, Material, 0); + Material.SetVector("_Direction", new Vector2(0f, 1f / h)); + Graphics.Blit(rt, destination, Material, 0); + + RenderTexture.ReleaseTemporary(rt); + } + + protected virtual void MultiPassBlur(RenderTexture source, RenderTexture destination) + { + int w = Mathf.FloorToInt((float)source.width / Downscaling); + int h = Mathf.FloorToInt((float)source.height / Downscaling); + Vector2 horizontal = new Vector2(1f / w, 0f); + Vector2 vertical = new Vector2(0f, 1f / h); + RenderTexture rt1 = RenderTexture.GetTemporary(w, h, 0, source.format); + RenderTexture rt2 = RenderTexture.GetTemporary(w, h, 0, source.format); + + Material.SetVector("_Direction", horizontal); + Graphics.Blit(source, rt1, Material, 0); + Material.SetVector("_Direction", vertical); + Graphics.Blit(rt1, rt2, Material, 0); + + for (int i = 1; i < Passes; i++) + { + Material.SetVector("_Direction", horizontal); + Graphics.Blit(rt2, rt1, Material, 0); + Material.SetVector("_Direction", vertical); + Graphics.Blit(rt1, rt2, Material, 0); + } + + Graphics.Blit(rt2, destination); + + RenderTexture.ReleaseTemporary(rt1); + RenderTexture.ReleaseTemporary(rt2); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs.meta new file mode 100644 index 0000000..1d33fc7 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GaussianBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a15c2b7bc763522479d7f0bd449970e4 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: f64972907dbc92b41bc72d3f358eb642, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Glitch.cs b/Assets/Colorful FX/Scripts/Effects/Glitch.cs new file mode 100644 index 0000000..d4e5e87 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Glitch.cs @@ -0,0 +1,150 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + using System; + using Random = UnityEngine.Random; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/glitch.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Glitch")] + public class Glitch : BaseEffect + { + public enum GlitchingMode + { + Interferences, + Tearing, + Complete + } + + [Serializable] + public class InterferenceSettings + { + public float Speed = 10f; + public float Density = 8f; + public float MaxDisplacement = 2f; + } + + [Serializable] + public class TearingSettings + { + public float Speed = 1f; + + [Range(0f, 1f)] + public float Intensity = 0.25f; + + [Range(0f, 0.5f)] + public float MaxDisplacement = 0.05f; + + public bool AllowFlipping = false; + public bool YuvColorBleeding = true; + + [Range(-2f, 2f)] + public float YuvOffset = 0.5f; + } + + [Tooltip("Automatically activate/deactivate the effect randomly.")] + public bool RandomActivation = false; + + public Vector2 RandomEvery = new Vector2(1f, 2f); + public Vector2 RandomDuration = new Vector2(1f, 2f); + + [Tooltip("Glitch type.")] + public GlitchingMode Mode = GlitchingMode.Interferences; + + public InterferenceSettings SettingsInterferences; + public TearingSettings SettingsTearing; + + protected bool m_Activated = true; + protected float m_EveryTimer = 0f; + protected float m_EveryTimerEnd = 0f; + protected float m_DurationTimer = 0f; + protected float m_DurationTimerEnd = 0f; + + public bool IsActive + { + get { return m_Activated; } + } + + protected override void Start() + { + base.Start(); + m_DurationTimerEnd = Random.Range(RandomDuration.x, RandomDuration.y); + } + + protected virtual void Update() + { + if (!RandomActivation) + return; + + if (m_Activated) + { + m_DurationTimer += Time.deltaTime; + + if (m_DurationTimer >= m_DurationTimerEnd) + { + m_DurationTimer = 0f; + m_Activated = false; + m_EveryTimerEnd = Random.Range(RandomEvery.x, RandomEvery.y); + } + } + else + { + m_EveryTimer += Time.deltaTime; + + if (m_EveryTimer >= m_EveryTimerEnd) + { + m_EveryTimer = 0f; + m_Activated = true; + m_DurationTimerEnd = Random.Range(RandomDuration.x, RandomDuration.y); + } + } + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (!m_Activated) + { + Graphics.Blit(source, destination); + return; + } + + if (Mode == GlitchingMode.Interferences) + { + DoInterferences(source, destination, SettingsInterferences); + } + else if (Mode == GlitchingMode.Tearing) + { + DoTearing(source, destination, SettingsTearing); + } + else // Complete + { + RenderTexture temp = RenderTexture.GetTemporary(source.width, source.width, 0, RenderTextureFormat.ARGB32); + DoTearing(source, temp, SettingsTearing); + DoInterferences(temp, destination, SettingsInterferences); + temp.Release(); + } + } + + protected virtual void DoInterferences(RenderTexture source, RenderTexture destination, InterferenceSettings settings) + { + Material.SetVector("_Params", new Vector3(settings.Speed, settings.Density, settings.MaxDisplacement)); + Graphics.Blit(source, destination, Material, 0); + } + + protected virtual void DoTearing(RenderTexture source, RenderTexture destination, TearingSettings settings) + { + Material.SetVector("_Params", new Vector4(settings.Speed, settings.Intensity, settings.MaxDisplacement, settings.YuvOffset)); + + int pass = 1; + if (settings.AllowFlipping && settings.YuvColorBleeding) pass = 4; + else if (settings.AllowFlipping) pass = 2; + else if (settings.YuvColorBleeding) pass = 3; + + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Glitch.cs.meta b/Assets/Colorful FX/Scripts/Effects/Glitch.cs.meta new file mode 100644 index 0000000..5a5558d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Glitch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6e75ef5ee858bd4bab281c187d027f7 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: aa077ae19c4093844b27e3a70f542644, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs b/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs new file mode 100644 index 0000000..3bf1ef3 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/gradient-ramp.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Gradient Ramp")] + public class GradientRamp : BaseEffect + { + [Tooltip("Texture used to remap the pixels luminosity.")] + public Texture RampTexture; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (RampTexture == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetTexture("_RampTex", RampTexture); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs.meta b/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs.meta new file mode 100644 index 0000000..08d9eaf --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GradientRamp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eda76088a8e07c049bdeca7130ed039e +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: c291a5524ced7fb47af87992cd9faf81, type: 3} + - rampTexture: {instanceID: 0} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs b/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs new file mode 100644 index 0000000..58648f1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs @@ -0,0 +1,77 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/gradient-ramp-dynamic.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Gradient Ramp (Dynamic)")] + public class GradientRampDynamic : BaseEffect + { + [Tooltip("Gradient used to remap the pixels luminosity.")] + public Gradient Ramp; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected Texture2D m_RampTexture; + + protected override void Start() + { + base.Start(); + + if (Ramp != null) + UpdateGradientCache(); + } + + protected virtual void Reset() + { + Ramp = new Gradient(); + Ramp.colorKeys = new GradientColorKey[] { + new GradientColorKey(Color.black, 0f), + new GradientColorKey(Color.white, 1f) + }; + Ramp.alphaKeys = new GradientAlphaKey[] { + new GradientAlphaKey(1f, 0f), + new GradientAlphaKey(1f, 1f) + }; + + UpdateGradientCache(); + } + + public void UpdateGradientCache() + { + if (m_RampTexture == null) + { + m_RampTexture = new Texture2D(256, 1, TextureFormat.RGB24, false); + m_RampTexture.filterMode = FilterMode.Bilinear; + m_RampTexture.wrapMode = TextureWrapMode.Clamp; + m_RampTexture.hideFlags = HideFlags.HideAndDontSave; + } + + Color[] pixels = new Color[256]; + + for (int i = 0; i < 256; i++) + pixels[i] = Ramp.Evaluate((float)i / 255f); + + m_RampTexture.SetPixels(pixels); + m_RampTexture.Apply(); + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Ramp == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetTexture("_RampTex", m_RampTexture); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs.meta b/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs.meta new file mode 100644 index 0000000..e6be2b5 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GradientRampDynamic.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 621b55d03df1b0941be31057afccdbef +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: c291a5524ced7fb47af87992cd9faf81, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs b/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs new file mode 100644 index 0000000..bfe6fbd --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/grainy-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Grainy Blur")] + public class GrainyBlur : BaseEffect + { + [Min(0f), Tooltip("Blur radius.")] + public float Radius = 32f; + + [Range(1, 32), Tooltip("Sample count. Higher means better quality but slower processing.")] + public int Samples = 16; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (CLib.Approximately(Radius, 0f, 0.001f)) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector2(Radius, Samples)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs.meta new file mode 100644 index 0000000..ad0afc2 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/GrainyBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 760aa1104f873f34a8812887a7e598a9 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 750ea95b557224d4e876b95f85697a97, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Grayscale.cs b/Assets/Colorful FX/Scripts/Effects/Grayscale.cs new file mode 100644 index 0000000..90c24f1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Grayscale.cs @@ -0,0 +1,38 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/grayscale.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Grayscale")] + public class Grayscale : BaseEffect + { + [Range(0f, 1f), Tooltip("Amount of red to contribute to the luminosity.")] + public float RedLuminance = 0.299f; + + [Range(0f, 1f), Tooltip("Amount of green to contribute to the luminosity.")] + public float GreenLuminance = 0.587f; + + [Range(0f, 1f), Tooltip("Amount of blue to contribute to the luminosity.")] + public float BlueLuminance = 0.114f; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector4(RedLuminance, GreenLuminance, BlueLuminance, Amount)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Grayscale.cs.meta b/Assets/Colorful FX/Scripts/Effects/Grayscale.cs.meta new file mode 100644 index 0000000..546c164 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Grayscale.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: befbe15c703f5f644a82e2e6c6ee90f4 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 1e730ad4434e6924dbb5c4fdd20a6f16, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Halftone.cs b/Assets/Colorful FX/Scripts/Effects/Halftone.cs new file mode 100644 index 0000000..ff7c3a0 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Halftone.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/halftone.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Halftone")] + public class Halftone : BaseEffect + { + [Min(0f), Tooltip("Global haltfoning scale.")] + public float Scale = 12f; + + [Min(0f), Tooltip("Individual dot size.")] + public float DotSize = 1.35f; + + [Tooltip("Rotates the dot placement according to the Center point.")] + public float Angle = 1.2f; + + [Range(0f, 1f), Tooltip("Dots antialiasing")] + public float Smoothness = 0.080f; + + [Tooltip("Center point to use for the rotation.")] + public Vector2 Center = new Vector2(0.5f, 0.5f); + + [Tooltip("Turns the effect black & white.")] + public bool Desaturate = false; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Center", new Vector2(Center.x * (float)source.width, Center.y * (float)source.height)); + Material.SetVector("_Params", new Vector3(Scale, DotSize, Smoothness)); + + // Precompute rotation matrices + Matrix4x4 m = new Matrix4x4(); + m.SetRow(0, CMYKRot(Angle + 0.261799388f)); // C + m.SetRow(1, CMYKRot(Angle + 1.30899694f)); // M + m.SetRow(2, CMYKRot(Angle)); // Y + m.SetRow(3, CMYKRot(Angle + 0.785398163f)); // K + Material.SetMatrix("_MatRot", m); + + Graphics.Blit(source, destination, Material, Desaturate ? 1 : 0); + } + + Vector4 CMYKRot(float angle) + { + float ca = Mathf.Cos(angle); + float sa = Mathf.Sin(angle); + return new Vector4(ca, -sa, sa, ca); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Halftone.cs.meta b/Assets/Colorful FX/Scripts/Effects/Halftone.cs.meta new file mode 100644 index 0000000..9b7bc66 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Halftone.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 747e71507dc923a48939d5eb54a54a25 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 496612e4443e0c74f82aad01c4d8e8c2, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Histogram.cs b/Assets/Colorful FX/Scripts/Effects/Histogram.cs new file mode 100644 index 0000000..1f8742e --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Histogram.cs @@ -0,0 +1,52 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + using System; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/utilities/histogram.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Utilities/Histogram")] + public class Histogram : MonoBehaviour + { + + public enum Channel + { + Luminance, + RGB, + Red, + Green, + Blue + } + + public Channel e_CurrentChannel = Channel.RGB; + public bool e_Logarithmic = false; + public bool e_AutoRefresh = false; + public Action e_OnFrameEnd; + + bool e_ForceRefresh = false; + + public void InternalForceRefresh() + { + e_ForceRefresh = true; + } + + protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (e_OnFrameEnd != null && (e_AutoRefresh || e_ForceRefresh)) + { + RenderTexture rt = RenderTexture.GetTemporary(160, Mathf.FloorToInt(160f * ((float)source.height / (float)source.height)), 0, RenderTextureFormat.ARGB32); + Graphics.Blit(source, rt); + e_OnFrameEnd(rt); + RenderTexture.ReleaseTemporary(rt); + e_ForceRefresh = false; + } + + Graphics.Blit(source, destination); + } + + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Histogram.cs.meta b/Assets/Colorful FX/Scripts/Effects/Histogram.cs.meta new file mode 100644 index 0000000..dff12e6 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Histogram.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d97ac868795b5554b9ac83596cf67725 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/HueFocus.cs b/Assets/Colorful FX/Scripts/Effects/HueFocus.cs new file mode 100644 index 0000000..47b80e9 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/HueFocus.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/hue-focus.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Hue Focus")] + public class HueFocus : BaseEffect + { + [Range(0f, 360f), Tooltip("Center hue.")] + public float Hue = 0f; + + [Range(1f, 180f), Tooltip("Hue range to focus on.")] + public float Range = 30f; + + [Range(0f, 1f), Tooltip("Makes the colored pixels more vibrant.")] + public float Boost = 0.5f; + + [Range(0f, 1f), Tooltip("Blending Factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float h = Hue / 360f; + float r = Range / 180f; + Material.SetVector("_Range", new Vector2(h - r, h + r)); + Material.SetVector("_Params", new Vector3(h, Boost + 1f, Amount)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/HueFocus.cs.meta b/Assets/Colorful FX/Scripts/Effects/HueFocus.cs.meta new file mode 100644 index 0000000..4c22fb6 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/HueFocus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94d79bfd8cb64234383156801889630f +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 552900fac0d27b6448ec836d923d985b, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs b/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs new file mode 100644 index 0000000..0003da6 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs @@ -0,0 +1,89 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/hue-saturation-value.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Hue, Saturation, Value")] + public class HueSaturationValue : BaseEffect + { + [Range(-180f, 180f)] + public float MasterHue = 0.0f; + [Range(-100f, 100f)] + public float MasterSaturation = 0.0f; + [Range(-100f, 100f)] + public float MasterValue = 0.0f; + + [Range(-180f, 180f)] + public float RedsHue = 0.0f; + [Range(-100f, 100f)] + public float RedsSaturation = 0.0f; + [Range(-100f, 100f)] + public float RedsValue = 0.0f; + + [Range(-180f, 180f)] + public float YellowsHue = 0.0f; + [Range(-100f, 100f)] + public float YellowsSaturation = 0.0f; + [Range(-100f, 100f)] + public float YellowsValue = 0.0f; + + [Range(-180f, 180f)] + public float GreensHue = 0.0f; + [Range(-100f, 100f)] + public float GreensSaturation = 0.0f; + [Range(-100f, 100f)] + public float GreensValue = 0.0f; + + [Range(-180f, 180f)] + public float CyansHue = 0.0f; + [Range(-100f, 100f)] + public float CyansSaturation = 0.0f; + [Range(-100f, 100f)] + public float CyansValue = 0.0f; + + [Range(-180f, 180f)] + public float BluesHue = 0.0f; + [Range(-100f, 100f)] + public float BluesSaturation = 0.0f; + [Range(-100f, 100f)] + public float BluesValue = 0.0f; + + [Range(-180f, 180f)] + public float MagentasHue = 0.0f; + [Range(-100f, 100f)] + public float MagentasSaturation = 0.0f; + [Range(-100f, 100f)] + public float MagentasValue = 0.0f; + + public bool AdvancedMode = false; + +#if UNITY_EDITOR + public int e_CurrentChannel = 0; +#endif + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Master", new Vector3(MasterHue / 360f, MasterSaturation * 0.01f, MasterValue * 0.01f)); + + if (AdvancedMode) + { + Material.SetVector("_Reds", new Vector3(RedsHue / 360f, RedsSaturation * 0.01f, RedsValue * 0.01f)); + Material.SetVector("_Yellows", new Vector3(YellowsHue / 360f, YellowsSaturation * 0.01f, YellowsValue * 0.01f)); + Material.SetVector("_Greens", new Vector3(GreensHue / 360f, GreensSaturation * 0.01f, GreensValue * 0.01f)); + Material.SetVector("_Cyans", new Vector3(CyansHue / 360f, CyansSaturation * 0.01f, CyansValue * 0.01f)); + Material.SetVector("_Blues", new Vector3(BluesHue / 360f, BluesSaturation * 0.01f, BluesValue * 0.01f)); + Material.SetVector("_Magentas", new Vector3(MagentasHue / 360f, MagentasSaturation * 0.01f, MagentasValue * 0.01f)); + Graphics.Blit(source, destination, Material, 1); + } + else + { + Graphics.Blit(source, destination, Material, 0); + } + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs.meta b/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs.meta new file mode 100644 index 0000000..3cb94ff --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/HueSaturationValue.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07da71ac68eb82745b717ba672e527d6 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 0b332438591134c46ada56177c061e99, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs b/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs new file mode 100644 index 0000000..85161d1 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs @@ -0,0 +1,24 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/kuwahara.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Kuwahara")] + public class Kuwahara : BaseEffect + { + [Range(1, 6), Tooltip("Larger radius will give a more abstract look but will lower performances.")] + public int Radius = 3; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Radius = Mathf.Clamp(Radius, 1, 6); + Material.SetVector("_PSize", new Vector2(1f / (float)source.width, 1f / (float)source.height)); + Graphics.Blit(source, destination, Material, Radius - 1); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs.meta b/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs.meta new file mode 100644 index 0000000..85e7258 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Kuwahara.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: adb0f17fe5138d54c8677968d83d98a7 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: be6f87201eefa9b4a81cb9d12d55f76b, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Led.cs b/Assets/Colorful FX/Scripts/Effects/Led.cs new file mode 100644 index 0000000..4512ddf --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Led.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/led.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/LED")] + public class Led : BaseEffect + { + public enum SizeMode + { + ResolutionIndependent, + PixelPerfect + } + + [Range(1f, 255f), Tooltip("Scale of an individual LED. Depends on the Mode used.")] + public float Scale = 80.0f; + + [Range(0f, 10f), Tooltip("LED brightness booster.")] + public float Brightness = 1.0f; + + [Range(1f, 3f), Tooltip("LED shape, from softer to harsher.")] + public float Shape = 1.5f; + + [Tooltip("Turn this on to automatically compute the aspect ratio needed for squared LED.")] + public bool AutomaticRatio = true; + + [Tooltip("Custom aspect ratio.")] + public float Ratio = 1.0f; + + [Tooltip("Used for the Scale field.")] + public SizeMode Mode = SizeMode.ResolutionIndependent; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float scale = Scale; + + if (Mode == SizeMode.PixelPerfect) + scale = (float)source.width / Scale; + + Material.SetVector("_Params", new Vector4( + scale, + AutomaticRatio ? ((float)source.width / (float)source.height) : Ratio, + Brightness, + Shape + )); + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Led.cs.meta b/Assets/Colorful FX/Scripts/Effects/Led.cs.meta new file mode 100644 index 0000000..4ba6500 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Led.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a76d9b47ee5dec4fb0672e79ab4172f +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 119bab05aa029d148a8ed3483cb1cd62, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs b/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs new file mode 100644 index 0000000..1978953 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs @@ -0,0 +1,44 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/lens-distortion-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Lens Distortion Blur")] + public class LensDistortionBlur : BaseEffect + { + public enum QualityPreset + { + Low = 4, + Medium = 8, + High = 12, + Custom + } + + [Tooltip("Quality preset. Higher means better quality but slower processing.")] + public QualityPreset Quality = QualityPreset.Medium; + + [Range(2, 32), Tooltip("Sample count. Higher means better quality but slower processing.")] + public int Samples = 10; + + [Range(-2f, 2f), Tooltip("Spherical distortion factor.")] + public float Distortion = 0.2f; + + [Range(-2f, 2f), Tooltip("Cubic distortion factor.")] + public float CubicDistortion = 0.6f; + + [Range(0.01f, 2f), Tooltip("Helps avoid screen streching on borders when working with heavy distortions.")] + public float Scale = 0.8f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + int samples = Quality == QualityPreset.Custom ? Samples : (int)Quality; + Material.SetVector("_Params", new Vector4(samples, Distortion / samples, CubicDistortion / samples, Scale)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs.meta new file mode 100644 index 0000000..30d53c9 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LensDistortionBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b77b44e65f026d7459ca01c999a9a014 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 27362376390dd5b4a84e636ebeb50eb8, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Letterbox.cs b/Assets/Colorful FX/Scripts/Effects/Letterbox.cs new file mode 100644 index 0000000..f4c99c3 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Letterbox.cs @@ -0,0 +1,49 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/letterbox.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Letterbox")] + public class Letterbox : BaseEffect + { + [Min(0f), Tooltip("Crop the screen to the given aspect ratio.")] + public float Aspect = 21f / 9f; + + [Tooltip("Letter/Pillar box color. Alpha is transparency.")] + public Color FillColor = Color.black; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float w = (float)source.width; + float h = (float)source.height; + float currentAspect = w / h; + float offset = 0f; + int pass = 0; + + Material.SetColor("_FillColor", FillColor); + + if (currentAspect < Aspect) + { + offset = (h - w / Aspect) * 0.5f / h; + } + else if (currentAspect > Aspect) + { + offset = (w - h * Aspect) * 0.5f / w; + pass = 1; + } + else + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Offsets", new Vector2(offset, 1f - offset)); + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Letterbox.cs.meta b/Assets/Colorful FX/Scripts/Effects/Letterbox.cs.meta new file mode 100644 index 0000000..63650f0 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Letterbox.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 23c80b3cab5ae9141a030dbd1e0fd574 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: d492310e63ec9264b892cb8ae4896275, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Levels.cs b/Assets/Colorful FX/Scripts/Effects/Levels.cs new file mode 100644 index 0000000..2f4663c --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Levels.cs @@ -0,0 +1,87 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + using System; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/levels.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Levels")] + public class Levels : BaseEffect + { + public enum ColorMode + { + Monochrome, + RGB + } + + public ColorMode Mode = ColorMode.Monochrome; + + public Vector3 InputL = new Vector3(0f, 255f, 1f); + public Vector3 InputR = new Vector3(0f, 255f, 1f); + public Vector3 InputG = new Vector3(0f, 255f, 1f); + public Vector3 InputB = new Vector3(0f, 255f, 1f); + + public Vector2 OutputL = new Vector2(0f, 255f); + public Vector2 OutputR = new Vector2(0f, 255f); + public Vector2 OutputG = new Vector2(0f, 255f); + public Vector2 OutputB = new Vector2(0f, 255f); + + + public enum Channel + { + Red, + Green, + Blue + } + + public Channel e_CurrentChannel = 0; + public bool e_Logarithmic = false; + public bool e_AutoRefresh = false; + public Action e_OnFrameEnd; + + bool e_ForceRefresh = false; + + public void InternalForceRefresh() + { + e_ForceRefresh = true; + } + + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { +#if UNITY_EDITOR + if (e_OnFrameEnd != null && (e_AutoRefresh || e_ForceRefresh)) + { + RenderTexture rt = RenderTexture.GetTemporary(160, Mathf.FloorToInt(160f * ((float)source.height / (float)source.height)), 0, RenderTextureFormat.ARGB32); + Graphics.Blit(source, rt); + e_OnFrameEnd(rt); + RenderTexture.ReleaseTemporary(rt); + e_ForceRefresh = false; + } +#endif + + if (Mode == ColorMode.Monochrome) + { + Material.SetVector("_InputMin", new Vector4(InputL.x / 255f, InputL.x / 255f, InputL.x / 255f, 1.0f)); + Material.SetVector("_InputMax", new Vector4(InputL.y / 255f, InputL.y / 255f, InputL.y / 255f, 1.0f)); + Material.SetVector("_InputGamma", new Vector4(InputL.z, InputL.z, InputL.z, 1.0f)); + Material.SetVector("_OutputMin", new Vector4(OutputL.x / 255f, OutputL.x / 255f, OutputL.x / 255f, 1.0f)); + Material.SetVector("_OutputMax", new Vector4(OutputL.y / 255f, OutputL.y / 255f, OutputL.y / 255f, 1.0f)); + } + else + { + Material.SetVector("_InputMin", new Vector4(InputR.x / 255f, InputG.x / 255f, InputB.x / 255f, 1.0f)); + Material.SetVector("_InputMax", new Vector4(InputR.y / 255f, InputG.y / 255f, InputB.y / 255f, 1.0f)); + Material.SetVector("_InputGamma", new Vector4(InputR.z, InputG.z, InputB.z, 1.0f)); + Material.SetVector("_OutputMin", new Vector4(OutputR.x / 255f, OutputG.x / 255f, OutputB.x / 255f, 1.0f)); + Material.SetVector("_OutputMax", new Vector4(OutputR.y / 255f, OutputG.y / 255f, OutputB.y / 255f, 1.0f)); + } + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Levels.cs.meta b/Assets/Colorful FX/Scripts/Effects/Levels.cs.meta new file mode 100644 index 0000000..36eb69b --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Levels.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f423fc6d541e1de4086b6880994b270c +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 3d484a9bd98669a4bae065117cfefa62, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs b/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs new file mode 100644 index 0000000..0ada7e6 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs @@ -0,0 +1,119 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/lofi-palette.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/LoFi Palette")] + public class LoFiPalette : LookupFilter3D + { + public enum Preset + { + None = 0, + + AmstradCPC = 2, + CGA = 3, + Commodore64 = 4, + CommodorePlus = 5, + EGA = 6, + GameBoy = 7, + MacOS16 = 8, + MacOS256 = 9, + MasterSystem = 10, + RiscOS16 = 11, + Teletex = 12, + Windows16 = 13, + Windows256 = 14, + ZXSpectrum = 15, + + Andrae = 17, + Anodomani = 18, + Crayolo = 19, + DB16 = 20, + DB32 = 21, + DJinn = 22, + DrazileA = 23, + DrazileB = 24, + DrazileC = 25, + Eggy = 26, + FinlalA = 27, + FinlalB = 28, + Hapiel = 29, + PavanzA = 30, + PavanzB = 31, + Peyton = 32, + SpeedyCube = 33 + } + + public Preset Palette = Preset.None; + + [Tooltip("Pixelize the display.")] + public bool Pixelize = true; + + [Tooltip("The display height in pixels.")] + public float PixelSize = 128f; + + protected Preset m_CurrentPreset = Preset.None; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Palette != m_CurrentPreset) + { + m_CurrentPreset = Palette; + + if (Palette == Preset.None) + LookupTexture = null; + else + LookupTexture = Resources.Load("LoFiPalettes/" + Palette.ToString()); + } + + if (LookupTexture == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + if (m_Use2DLut || ForceCompatibility) + RenderLut2D(source, destination); + else + RenderLut3D(source, destination); + } + + protected override void RenderLut2D(RenderTexture source, RenderTexture destination) + { + float tileSize = Mathf.Sqrt((float)LookupTexture.width); + Material.SetTexture("_LookupTex", LookupTexture); + Material.SetVector("_Params1", new Vector3(1f / (float)LookupTexture.width, 1f / (float)LookupTexture.height, tileSize - 1f)); + Material.SetVector("_Params2", new Vector2(Amount, PixelSize)); + + int pass = (Pixelize ? 6 : 4) + (CLib.IsLinearColorSpace() ? 1 : 0); + Graphics.Blit(source, destination, Material, pass); + } + + protected override void RenderLut3D(RenderTexture source, RenderTexture destination) + { + if (LookupTexture.name != m_BaseTextureName) + ConvertBaseTexture(); + + if (m_Lut3D == null) + SetIdentityLut(); + + m_Lut3D.filterMode = FilterMode.Point; + Material.SetTexture("_LookupTex", m_Lut3D); + float lutSize = (float)m_Lut3D.width; + Material.SetVector("_Params", new Vector4( + (lutSize - 1f) / (1f * lutSize), + 1f / (2f * lutSize), + Amount, + PixelSize + )); + + int pass = (Pixelize ? 2 : 0) + (CLib.IsLinearColorSpace() ? 1 : 0); + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs.meta b/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs.meta new file mode 100644 index 0000000..81c85b7 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LoFiPalette.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0ca97f3385a96b140b060f6025abe220 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - LookupTexture: {instanceID: 0} + - Shader2D: {fileID: 4800000, guid: b5b3d4fe7139a7141be9b1475ea1127f, type: 3} + - Shader3D: {fileID: 4800000, guid: c356d31be0868c94d8c3eb943516cb8a, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs b/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs new file mode 100644 index 0000000..a45699d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/lookup-filter.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Lookup Filter (Deprecated)")] + public class LookupFilter : BaseEffect + { + [Tooltip("The lookup texture to apply. Read the documentation to learn how to create one.")] + public Texture LookupTexture; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (LookupTexture == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetTexture("_LookupTex", LookupTexture); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, CLib.IsLinearColorSpace() ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs.meta b/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs.meta new file mode 100644 index 0000000..0a6c881 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LookupFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9adb2be4a98e6d14bb47dc747ce80219 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 37ae258c1f4d15140b45318637b0c532, type: 3} + - lookupTexture: {instanceID: 0} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs b/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs new file mode 100644 index 0000000..67eda1a --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs @@ -0,0 +1,230 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/lookup-filter-3d.html")] + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [AddComponentMenu("Colorful FX/Color Correction/Lookup Filter 3D")] + public class LookupFilter3D : MonoBehaviour + { + [Tooltip("The lookup texture to apply. Read the documentation to learn how to create one.")] + public Texture2D LookupTexture; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + [Tooltip("The effect will automatically detect the correct shader to use for the device but you can force it to only use the compatibility shader.")] + public bool ForceCompatibility = false; + + protected Texture3D m_Lut3D; + protected string m_BaseTextureName; + protected bool m_Use2DLut = false; + + public Shader Shader2D; + public Shader Shader3D; + protected Material m_Material2D; + protected Material m_Material3D; + public Material Material + { + get + { + if (m_Use2DLut || ForceCompatibility) + { + if (m_Material2D == null) + { + m_Material2D = new Material(Shader2D); + m_Material2D.hideFlags = HideFlags.HideAndDontSave; + } + + return m_Material2D; + } + else + { + if (m_Material3D == null) + { + m_Material3D = new Material(Shader3D); + m_Material3D.hideFlags = HideFlags.HideAndDontSave; + } + + return m_Material3D; + } + } + } + + protected virtual void Start() + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) + { + Debug.LogWarning("Image effects aren't supported on this device"); + enabled = false; + return; + } + + // Switch to the 2D lut if the platform doesn't support 3D textures + if (!SystemInfo.supports3DTextures) + m_Use2DLut = true; + + // Disable the image effect if the shader can't run on the users graphics card + if ((!m_Use2DLut && (!Shader3D || !Shader3D.isSupported)) || + (m_Use2DLut && (!Shader2D || !Shader2D.isSupported))) + { + Debug.LogWarning("The shader is null or unsupported on this device"); + enabled = false; + } + } + + protected virtual void OnDisable() + { + if (m_Material2D) + DestroyImmediate(m_Material2D); + + if (m_Material3D) + DestroyImmediate(m_Material3D); + + if (m_Lut3D) + DestroyImmediate(m_Lut3D); + + m_BaseTextureName = ""; + } + + protected virtual void Reset() + { + m_BaseTextureName = ""; + } + + protected void SetIdentityLut() + { + int dim = 16; + Color[] newC = new Color[dim * dim * dim]; + float oneOverDim = 1.0f / (1.0f * dim - 1.0f); + + for (int i = 0; i < dim; i++) + { + for (int j = 0; j < dim; j++) + { + for (int k = 0; k < dim; k++) + { + newC[i + (j * dim) + (k * dim * dim)] = new Color((i * 1.0f) * oneOverDim, (j * 1.0f) * oneOverDim, (k * 1.0f) * oneOverDim, 1.0f); + } + } + } + + if (m_Lut3D) + DestroyImmediate(m_Lut3D); + + m_Lut3D = new Texture3D(dim, dim, dim, TextureFormat.ARGB32, false); + m_Lut3D.hideFlags = HideFlags.HideAndDontSave; + m_Lut3D.SetPixels(newC); + m_Lut3D.Apply(); + m_BaseTextureName = ""; + } + + public bool ValidDimensions(Texture2D tex2D) + { + if (tex2D == null || tex2D.height != Mathf.FloorToInt(Mathf.Sqrt(tex2D.width))) + return false; + + return true; + } + + protected void ConvertBaseTexture() + { + if (!ValidDimensions(LookupTexture)) + { + Debug.LogWarning("The given 2D texture " + LookupTexture.name + " cannot be used as a 3D LUT. Pick another texture or adjust dimension to e.g. 256x16."); + return; + } + + m_BaseTextureName = LookupTexture.name; + + int dim = LookupTexture.height; + + Color[] c = LookupTexture.GetPixels(); + Color[] newC = new Color[c.Length]; + + for (int i = 0; i < dim; i++) + { + for (int j = 0; j < dim; j++) + { + for (int k = 0; k < dim; k++) + { + int j_ = dim - j - 1; + newC[i + (j * dim) + (k * dim * dim)] = c[k * dim + i + j_ * dim * dim]; + } + } + } + + if (m_Lut3D) + DestroyImmediate(m_Lut3D); + + m_Lut3D = new Texture3D(dim, dim, dim, TextureFormat.ARGB32, false); + m_Lut3D.hideFlags = HideFlags.HideAndDontSave; + m_Lut3D.wrapMode = TextureWrapMode.Clamp; + m_Lut3D.SetPixels(newC); + m_Lut3D.Apply(); + } + + public void Apply(Texture source, RenderTexture destination) + { + if (source is RenderTexture) + { + OnRenderImage(source as RenderTexture, destination); + return; + } + + RenderTexture rt = RenderTexture.GetTemporary(source.width, source.height); + Graphics.Blit(source, rt); + OnRenderImage(rt, destination); + RenderTexture.ReleaseTemporary(rt); + } + + protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (LookupTexture == null || Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + if (m_Use2DLut || ForceCompatibility) + RenderLut2D(source, destination); + else + RenderLut3D(source, destination); + } + + protected virtual void RenderLut2D(RenderTexture source, RenderTexture destination) + { + float tileSize = Mathf.Sqrt((float)LookupTexture.width); + Material.SetTexture("_LookupTex", LookupTexture); + Material.SetVector("_Params1", new Vector3(1f / (float)LookupTexture.width, 1f / (float)LookupTexture.height, tileSize - 1f)); + Material.SetVector("_Params2", new Vector2(Amount, 0f)); + + Graphics.Blit(source, destination, Material, CLib.IsLinearColorSpace() ? 1 : 0); + } + + protected virtual void RenderLut3D(RenderTexture source, RenderTexture destination) + { + if (LookupTexture.name != m_BaseTextureName) + ConvertBaseTexture(); + + if (m_Lut3D == null) + SetIdentityLut(); + + Material.SetTexture("_LookupTex", m_Lut3D); + float lutSize = (float)m_Lut3D.width; + Material.SetVector("_Params", new Vector3( + (lutSize - 1f) / (1f * lutSize), + 1f / (2f * lutSize), + Amount + )); + + Graphics.Blit(source, destination, Material, CLib.IsLinearColorSpace() ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs.meta b/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs.meta new file mode 100644 index 0000000..c5840f2 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/LookupFilter3D.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 1222701696bce8f41a07d077b281118e +MonoImporter: + serializedVersion: 2 + defaultReferences: + - LookupTexture: {instanceID: 0} + - Shader2D: {fileID: 4800000, guid: b5b3d4fe7139a7141be9b1475ea1127f, type: 3} + - Shader3D: {fileID: 4800000, guid: c356d31be0868c94d8c3eb943516cb8a, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Negative.cs b/Assets/Colorful FX/Scripts/Effects/Negative.cs new file mode 100644 index 0000000..757713d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Negative.cs @@ -0,0 +1,29 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/negative.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Negative")] + public class Negative : BaseEffect + { + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1.0f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material, CLib.IsLinearColorSpace() ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Negative.cs.meta b/Assets/Colorful FX/Scripts/Effects/Negative.cs.meta new file mode 100644 index 0000000..9481832 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Negative.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbed2c7d9f2a38a4b821e762954e38e8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 4d5f7df60d1ccbe44b611aec3822b801, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Noise.cs b/Assets/Colorful FX/Scripts/Effects/Noise.cs new file mode 100644 index 0000000..9a13147 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Noise.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/noise.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Noise")] + public class Noise : BaseEffect + { + public enum ColorMode + { + Monochrome, + RGB + } + + [Tooltip("Black & white or colored noise.")] + public ColorMode Mode = ColorMode.Monochrome; + + [Tooltip("Automatically increment the seed to animate the noise.")] + public bool Animate = true; + + [Tooltip("A number used to initialize the noise generator.")] + public float Seed = 0.5f; + + [Range(0f, 1f), Tooltip("Strength used to apply the noise. 0 means no noise at all, 1 is full noise.")] + public float Strength = 0.12f; + + [Range(0f, 1f), Tooltip("Reduce the noise visibility in luminous areas.")] + public float LumContribution = 0f; + + protected virtual void Update() + { + if (Animate) + { + // Reset the Seed after a while, some GPUs don't like big numbers + if (Seed > 1000f) + Seed = 0.5f; + + Seed += Time.deltaTime * 0.25f; + } + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector3(Seed, Strength, LumContribution)); + int pass = (Mode == ColorMode.Monochrome) ? 0 : 1; + pass += (LumContribution > 0f) ? 2 : 0; + Graphics.Blit(source, destination, Material, pass); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Noise.cs.meta b/Assets/Colorful FX/Scripts/Effects/Noise.cs.meta new file mode 100644 index 0000000..59f8a50 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Noise.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e8893002c9340b4c9dfb35503a523f1 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 89ef061699807394a9d296d8ada383cb, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs b/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs new file mode 100644 index 0000000..44cb56a --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/photo-filter.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Photo Filter")] + public class PhotoFilter : BaseEffect + { + [ColorUsage(false), Tooltip("Lens filter color.")] + public Color Color = new Color(1.0f, 0.5f, 0.2f, 1.0f); + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Density = 0.35f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Density <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetColor("_RGB", Color); + Material.SetFloat("_Density", Density); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs.meta b/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs.meta new file mode 100644 index 0000000..1321786 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/PhotoFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb697cfaa11881546a01edd0eb62fd76 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: d4cf7d0874af43d489d668369b513fd1, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs b/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs new file mode 100644 index 0000000..2ab3f91 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs @@ -0,0 +1,35 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/pixel-matrix.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Pixel Matrix")] + public class PixelMatrix : BaseEffect + { + [Min(3), Tooltip("Tile size. Works best with multiples of 3.")] + public int Size = 9; + + [Range(0f, 10f), Tooltip("Tile brightness booster.")] + public float Brightness = 1.4f; + + [Tooltip("Show / hide black borders on every tile.")] + public bool BlackBorder = true; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector4( + Size, + Mathf.Floor((float)Size / 3f), + Size - Mathf.Floor((float)Size / 3f), + Brightness + )); + + Graphics.Blit(source, destination, Material, BlackBorder ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs.meta b/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs.meta new file mode 100644 index 0000000..8e3e740 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/PixelMatrix.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b1024d011da8dd488b260d3e0e7945d +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 58e2980581a9e9b45a6bf05fb06dab5d, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Pixelate.cs b/Assets/Colorful FX/Scripts/Effects/Pixelate.cs new file mode 100644 index 0000000..aa44992 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Pixelate.cs @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/pixelate.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Pixelate")] + public class Pixelate : BaseEffect + { + public enum SizeMode + { + ResolutionIndependent, + PixelPerfect + } + + [Range(1f, 1024f), Tooltip("Scale of an individual pixel. Depends on the Mode used.")] + public float Scale = 80.0f; + + [Tooltip("Turn this on to automatically compute the aspect ratio needed for squared pixels.")] + public bool AutomaticRatio = true; + + [Tooltip("Custom aspect ratio.")] + public float Ratio = 1.0f; + + [Tooltip("Used for the Scale field.")] + public SizeMode Mode = SizeMode.ResolutionIndependent; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float scale = Scale; + + if (Mode == SizeMode.PixelPerfect) + scale = (float)source.width / Scale; + + Material.SetVector("_Params", new Vector2( + scale, + AutomaticRatio ? ((float)source.width / (float)source.height) : Ratio + )); + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Pixelate.cs.meta b/Assets/Colorful FX/Scripts/Effects/Pixelate.cs.meta new file mode 100644 index 0000000..b8b354e --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Pixelate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2628181c809ee474485cc45322ff644f +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 728ffb8a91a4a0a498b4795a6e1d78a1, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Posterize.cs b/Assets/Colorful FX/Scripts/Effects/Posterize.cs new file mode 100644 index 0000000..8af2a74 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Posterize.cs @@ -0,0 +1,26 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/posterize.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Posterize")] + public class Posterize : BaseEffect + { + [Range(2, 255), Tooltip("Number of tonal levels (brightness values) for each channel.")] + public int Levels = 16; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector2((float)Levels, Amount)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Posterize.cs.meta b/Assets/Colorful FX/Scripts/Effects/Posterize.cs.meta new file mode 100644 index 0000000..caa14fd --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Posterize.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8ff44335507f4749aa70099c187a8c4 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 5675fc85342982e4aa19f32d906706e4, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs b/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs new file mode 100644 index 0000000..5837b36 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs @@ -0,0 +1,37 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/rgb-split.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/RGB Split")] + public class RGBSplit : BaseEffect + { + [Tooltip("RGB shifting amount.")] + public float Amount = 0f; + + [Tooltip("Shift direction in radians.")] + public float Angle = 0f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount == 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector3( + Amount * 0.001f, + Mathf.Sin(Angle), + Mathf.Cos(Angle) + )); + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs.meta b/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs.meta new file mode 100644 index 0000000..bee25e8 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/RGBSplit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68cd54ea1964189429cf8078ee8d5fd5 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 9d2e55392c5688b41a28c877a8c935c6, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs b/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs new file mode 100644 index 0000000..77fb428 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs @@ -0,0 +1,59 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/blur-effects/radial-blur.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Blur Effects/Radial Blur")] + public class RadialBlur : BaseEffect + { + public enum QualityPreset + { + Low = 4, + Medium = 8, + High = 12, + Custom + } + + [Range(0f, 1f), Tooltip("Blur strength.")] + public float Strength = 0.1f; + + [Range(2, 32), Tooltip("Sample count. Higher means better quality but slower processing.")] + public int Samples = 10; + + [Tooltip("Focus point.")] + public Vector2 Center = new Vector2(0.5f, 0.5f); + + [Tooltip("Quality preset. Higher means better quality but slower processing.")] + public QualityPreset Quality = QualityPreset.Medium; + + [Range(-100f, 100f), Tooltip("Smoothness of the vignette effect.")] + public float Sharpness = 40f; + + [Range(0f, 100f), Tooltip("Amount of vignetting on screen.")] + public float Darkness = 35f; + + [Tooltip("Should the effect be applied like a vignette ?")] + public bool EnableVignette = true; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Strength <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + int samples = Quality == QualityPreset.Custom ? Samples : (int)Quality; + + Material.SetVector("_Center", Center); + Material.SetVector("_Params", new Vector4(Strength, samples, Sharpness * 0.01f, Darkness * 0.02f)); + + Graphics.Blit(source, destination, Material, EnableVignette ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs.meta b/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs.meta new file mode 100644 index 0000000..256e574 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/RadialBlur.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75d0b0053075b424f96072721dfe5733 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 93166fbefe89e6b45afb840b49fc59ae, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs b/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs new file mode 100644 index 0000000..f767184 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs @@ -0,0 +1,33 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/s-curve-contrast.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/S-Curve Contrast")] + public class SCurveContrast : BaseEffect + { + public float RedSteepness = 1f; + public float RedGamma = 1f; + public float GreenSteepness = 1f; + public float GreenGamma = 1f; + public float BlueSteepness = 1f; + public float BlueGamma = 1f; + +#if UNITY_EDITOR + public bool e_ShowCurves = true; +#endif + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Red", new Vector2(RedSteepness, RedGamma)); + Material.SetVector("_Green", new Vector2(GreenSteepness, GreenGamma)); + Material.SetVector("_Blue", new Vector2(BlueSteepness, BlueGamma)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs.meta b/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs.meta new file mode 100644 index 0000000..97e6397 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/SCurveContrast.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 934871e03470f2048a86d4da39cca2dc +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: bb3f4da25a5c9184697fb2b1c1ea8c68, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs b/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs new file mode 100644 index 0000000..f256406 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/shadows-midtones-highlights.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Shadows, Midtones, Highlights")] + public class ShadowsMidtonesHighlights : BaseEffect + { + public enum ColorMode + { + LiftGammaGain = 0, + OffsetGammaSlope = 1 + } + + [Tooltip("Color mode. The difference between these two modes is the way shadows are handled.")] + public ColorMode Mode = ColorMode.LiftGammaGain; + + [Tooltip("Adds density or darkness, raises or lowers the shadow levels with its alpha value and offset the color balance in the dark regions with the hue point.")] + public Color Shadows = new Color(1f, 1f, 1f, 0.5f); + + [Tooltip("Shifts the middle tones to be brighter or darker. For instance, to make your render more warm, just move the midtone color toward the yellow/red range. The more saturated the color is, the warmer the render becomes.")] + public Color Midtones = new Color(1f, 1f, 1f, 0.5f); + + [Tooltip("Brightens and tints the entire render but mostly affects the highlights.")] + public Color Highlights = new Color(1f, 1f, 1f, 0.5f); + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 1f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + float multiplier; + Material.SetVector("_Shadows", Shadows * (Shadows.a * 2)); + multiplier = 1f + (1f - (Midtones.r * 0.299f + Midtones.g * 0.587f + Midtones.b * 0.114f)); + Material.SetVector("_Midtones", (Midtones * multiplier) * (Midtones.a * 2f)); + multiplier = 1f + (1f - (Highlights.r * 0.299f + Highlights.g * 0.587f + Highlights.b * 0.114f)); + Material.SetVector("_Highlights", (Highlights * multiplier) * (Highlights.a * 2f)); + + Material.SetFloat("_Amount", Amount); + + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs.meta b/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs.meta new file mode 100644 index 0000000..bef06b7 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/ShadowsMidtonesHighlights.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a1e5796c9ae6d4458ba6002cb9d95d8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: f1c2bf98023ec1d49a324ffb4746f895, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Sharpen.cs b/Assets/Colorful FX/Scripts/Effects/Sharpen.cs new file mode 100644 index 0000000..5537cbb --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Sharpen.cs @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/other-effects/sharpen.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Other Effects/Sharpen")] + public class Sharpen : BaseEffect + { + public enum Algorithm + { + TypeA, + TypeB + } + + [Tooltip("Sharpening algorithm to use.")] + public Algorithm Mode = Algorithm.TypeB; + + [Range(0f, 5f), Tooltip("Sharpening Strength.")] + public float Strength = 0.6f; + + [Range(0f, 1f), Tooltip("Limits the amount of sharpening a pixel will receive.")] + public float Clamp = 0.05f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Strength == 0f || Clamp == 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector4( + Strength, + Clamp, + 1f / (float)source.width, + 1f / (float)source.height + )); + + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Sharpen.cs.meta b/Assets/Colorful FX/Scripts/Effects/Sharpen.cs.meta new file mode 100644 index 0000000..9ccfb9f --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Sharpen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 23bf7bfb88d65c14f9588701ff10a068 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: b4f0a5d3f2f4d3d4e80600230efdfe68, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs b/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs new file mode 100644 index 0000000..539fcfe --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs @@ -0,0 +1,81 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/smart-saturation.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Smart Saturation")] + public class SmartSaturation : BaseEffect + { + [Range(0f, 2f), Tooltip("Saturation boost. Default: 1 (no boost).")] + public float Boost = 1f; + + public AnimationCurve Curve; + + Texture2D _CurveTexture; + protected Texture2D m_CurveTexture + { + get + { + if (_CurveTexture == null) + UpdateCurve(); + + return _CurveTexture; + } + } + + protected virtual void Reset() + { + Curve = new AnimationCurve(new Keyframe(0f, 0.5f, 0f, 0f), new Keyframe(1f, 0.5f, 0f, 0f)); + } + + protected virtual void OnEnable() + { + if (Curve == null) + Reset(); + } + + protected override void OnDisable() + { + base.OnDisable(); + + if (_CurveTexture != null) + DestroyImmediate(_CurveTexture); + } + + public virtual void UpdateCurve() + { + if (_CurveTexture == null) + { + _CurveTexture = new Texture2D(256, 1, TextureFormat.Alpha8, false); + _CurveTexture.name = "Saturation Curve Texture"; + _CurveTexture.wrapMode = TextureWrapMode.Clamp; + _CurveTexture.anisoLevel = 0; + _CurveTexture.filterMode = FilterMode.Bilinear; + _CurveTexture.hideFlags = HideFlags.DontSave; + } + + Color[] pixels = _CurveTexture.GetPixels(); + + for (int i = 0; i < 256; i++) + { + float z = Mathf.Clamp01(Curve.Evaluate((float)i / 255f)); + pixels[i] = new Color(z, z, z, z); + } + + _CurveTexture.SetPixels(pixels); + _CurveTexture.Apply(); + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetTexture("_Curve", m_CurveTexture); + Material.SetFloat("_Boost", Boost); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs.meta b/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs.meta new file mode 100644 index 0000000..eef638b --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/SmartSaturation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d41c435432e8be846ab24f5ea10848ef +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: a13a4f89750fabf45a06af8796a9bbe6, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Strokes.cs b/Assets/Colorful FX/Scripts/Effects/Strokes.cs new file mode 100644 index 0000000..42e7df0 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Strokes.cs @@ -0,0 +1,62 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/artistic-effects/strokes.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Artistic Effects/Strokes")] + public class Strokes : BaseEffect + { + public enum ColorMode + { + BlackAndWhite, + WhiteAndBlack, + ColorAndWhite, + ColorAndBlack, + WhiteAndColor, + BlackAndColor + } + + public ColorMode Mode = ColorMode.BlackAndWhite; + + [Range(0f, 0.04f), Tooltip("Stroke rotation, or wave pattern amplitude.")] + public float Amplitude = 0.025f; + + [Range(0f, 20f), Tooltip("Wave pattern frequency (higher means more waves).")] + public float Frequency = 10f; + + [Range(4f, 12f), Tooltip("Global scaling.")] + public float Scaling = 7.5f; + + [Range(0.1f, 0.5f), Tooltip("Stroke maximum thickness.")] + public float MaxThickness = 0.2f; + + [Range(0f, 1f), Tooltip("Contribution threshold (higher means more continous strokes).")] + public float Threshold = 0.7f; + + [Range(-0.3f, 0.3f), Tooltip("Stroke pressure.")] + public float Harshness = 0f; + + [Range(0f, 1f), Tooltip("Amount of red to contribute to the strokes.")] + public float RedLuminance = 0.299f; + + [Range(0f, 1f), Tooltip("Amount of green to contribute to the strokes.")] + public float GreenLuminance = 0.587f; + + [Range(0f, 1f), Tooltip("Amount of blue to contribute to the strokes.")] + public float BlueLuminance = 0.114f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float scale = Scaling / (float)source.height; + Material.SetVector("_Params1", new Vector4(Amplitude, Frequency, scale, MaxThickness * scale)); + Material.SetVector("_Params2", new Vector3(RedLuminance, GreenLuminance, BlueLuminance)); + Material.SetVector("_Params3", new Vector2(Threshold, Harshness)); + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Strokes.cs.meta b/Assets/Colorful FX/Scripts/Effects/Strokes.cs.meta new file mode 100644 index 0000000..123b6e6 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Strokes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91fe5838a9fc42d449149118120a80a8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: fcfe9bb61d41be54db37021f6228a5a2, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/TVVignette.cs b/Assets/Colorful FX/Scripts/Effects/TVVignette.cs new file mode 100644 index 0000000..9d2f23b --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/TVVignette.cs @@ -0,0 +1,32 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/tv-vignette.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/TV Vignette")] + public class TVVignette : BaseEffect + { + [Min(0f)] + public float Size = 25f; + + [Range(0f, 1f)] + public float Offset = 0.2f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Offset >= 1f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector2(Size, Offset)); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/TVVignette.cs.meta b/Assets/Colorful FX/Scripts/Effects/TVVignette.cs.meta new file mode 100644 index 0000000..c717553 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/TVVignette.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8dc5284f20376c48a179856ec3388a6 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 3bdb37fb89bbc244eb7dc17f946b34e5, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Technicolor.cs b/Assets/Colorful FX/Scripts/Effects/Technicolor.cs new file mode 100644 index 0000000..f568d76 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Technicolor.cs @@ -0,0 +1,30 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/technicolor.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Technicolor")] + public class Technicolor : BaseEffect + { + [Range(0f, 8f)] + public float Exposure = 4f; + + public Vector3 Balance = new Vector3(0.25f, 0.25f, 0.25f); + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float Amount = 0.5f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetFloat("_Exposure", 8f - Exposure); + Material.SetVector("_Balance", Vector3.one - Balance); + Material.SetFloat("_Amount", Amount); + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Technicolor.cs.meta b/Assets/Colorful FX/Scripts/Effects/Technicolor.cs.meta new file mode 100644 index 0000000..db95201 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Technicolor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e79d607a782dc7d4a931f5e6eb240e79 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 4c81e0318e9055a45a291da31fdd8edd, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Threshold.cs b/Assets/Colorful FX/Scripts/Effects/Threshold.cs new file mode 100644 index 0000000..846a01d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Threshold.cs @@ -0,0 +1,30 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/threshold.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Threshold")] + public class Threshold : BaseEffect + { + [Range(1f, 255f), Tooltip("Luminosity threshold.")] + public float Value = 128f; + + [Range(0f, 128f), Tooltip("Aomunt of randomization.")] + public float NoiseRange = 24f; + + [Tooltip("Adds some randomization to the threshold value.")] + public bool UseNoise = false; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetFloat("_Threshold", Value / 255f); + Material.SetFloat("_Range", NoiseRange / 255f); + Graphics.Blit(source, destination, Material, UseNoise ? 1 : 0); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Threshold.cs.meta b/Assets/Colorful FX/Scripts/Effects/Threshold.cs.meta new file mode 100644 index 0000000..88a39c4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Threshold.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ee27dcf977a2a6e49bd0321a3d326cd8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 601d83f113eed6c4e9ee285c9f69b171, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Vibrance.cs b/Assets/Colorful FX/Scripts/Effects/Vibrance.cs new file mode 100644 index 0000000..e3c9d51 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Vibrance.cs @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/vibrance.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Vibrance")] + public class Vibrance : BaseEffect + { + [Range(-100f, 100f), Tooltip("Adjusts the saturation so that clipping is minimized as colors approach full saturation.")] + public float Amount = 0.0f; + + [Range(-5f, 5f)] + public float RedChannel = 1.0f; + [Range(-5f, 5f)] + public float GreenChannel = 1.0f; + [Range(-5f, 5f)] + public float BlueChannel = 1.0f; + + public bool AdvancedMode = false; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Amount <= 0f) + { + Graphics.Blit(source, destination); + return; + } + + if (AdvancedMode) + { + Material.SetFloat("_Amount", Amount * 0.01f); + Material.SetVector("_Channels", new Vector3(RedChannel, GreenChannel, BlueChannel)); + Graphics.Blit(source, destination, Material, 1); + } + else + { + Material.SetFloat("_Amount", Amount * 0.02f); + Graphics.Blit(source, destination, Material, 0); + } + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Vibrance.cs.meta b/Assets/Colorful FX/Scripts/Effects/Vibrance.cs.meta new file mode 100644 index 0000000..71a0a4d --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Vibrance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 19618ea32564c524da32f929ef2de8d8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: bb0e827449f1caa4bbd6dd91a05d702b, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Vintage.cs b/Assets/Colorful FX/Scripts/Effects/Vintage.cs new file mode 100644 index 0000000..71df88e --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Vintage.cs @@ -0,0 +1,65 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/vintage.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Vintage (Deprecated)")] + public class Vintage : LookupFilter + { + public enum InstragramFilter + { + None, + F1977, + Aden, + Amaro, + Brannan, + Crema, + Earlybird, + Hefe, + Hudson, + Inkwell, + Juno, + Kelvin, + Lark, + LoFi, + Ludwig, + Mayfair, + Nashville, + Perpetua, + Reyes, + Rise, + Sierra, + Slumber, + Sutro, + Toaster, + Valencia, + Walden, + Willow, + XProII + } + + public InstragramFilter Filter = InstragramFilter.None; + + protected InstragramFilter m_CurrentFilter = InstragramFilter.None; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Filter != m_CurrentFilter) + { + m_CurrentFilter = Filter; + + if (Filter == InstragramFilter.None) + LookupTexture = null; + else + LookupTexture = Resources.Load("Instagram/" + Filter.ToString()); + } + + base.OnRenderImage(source, destination); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Vintage.cs.meta b/Assets/Colorful FX/Scripts/Effects/Vintage.cs.meta new file mode 100644 index 0000000..ce676f4 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Vintage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c7f5cffe1304732428428379c1126d90 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 37ae258c1f4d15140b45318637b0c532, type: 3} + - lookupTexture: {instanceID: 0} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/VintageFast.cs b/Assets/Colorful FX/Scripts/Effects/VintageFast.cs new file mode 100644 index 0000000..dc1f7ba --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/VintageFast.cs @@ -0,0 +1,34 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + using InstragramFilter = Vintage.InstragramFilter; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/vintage-fast.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/Vintage")] + public class VintageFast : LookupFilter3D + { + public InstragramFilter Filter = InstragramFilter.None; + + protected InstragramFilter m_CurrentFilter = InstragramFilter.None; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (Filter != m_CurrentFilter) + { + m_CurrentFilter = Filter; + + if (Filter == InstragramFilter.None) + LookupTexture = null; + else + LookupTexture = Resources.Load("InstagramFast/" + Filter.ToString()); + } + + base.OnRenderImage(source, destination); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/VintageFast.cs.meta b/Assets/Colorful FX/Scripts/Effects/VintageFast.cs.meta new file mode 100644 index 0000000..bc6f5c0 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/VintageFast.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 1c17a664134eb954aa7219d2d88c3bfb +MonoImporter: + serializedVersion: 2 + defaultReferences: + - LookupTexture: {instanceID: 0} + - Shader2D: {fileID: 4800000, guid: b5b3d4fe7139a7141be9b1475ea1127f, type: 3} + - Shader3D: {fileID: 4800000, guid: c356d31be0868c94d8c3eb943516cb8a, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs b/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs new file mode 100644 index 0000000..49f73bc --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs @@ -0,0 +1,46 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/wave-distortion.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Wave Distortion")] + public class WaveDistortion : BaseEffect + { + [Range(0f, 1f), Tooltip("Wave amplitude.")] + public float Amplitude = 0.6f; + + [Tooltip("Amount of waves.")] + public float Waves = 5f; + + [Range(0f, 5f), Tooltip("Amount of color shifting.")] + public float ColorGlitch = 0.35f; + + [Tooltip("Distortion state. Think of it as a bell curve going from 0 to 1, with 0.5 being the highest point.")] + public float Phase = 0.35f; + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + float fp = CLib.Frac(Phase); + + if (fp == 0f) + { + Graphics.Blit(source, destination); + return; + } + + Material.SetVector("_Params", new Vector4( + Amplitude, + Waves, + ColorGlitch, + fp + )); + + Graphics.Blit(source, destination, Material); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs.meta b/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs.meta new file mode 100644 index 0000000..d50bbfa --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/WaveDistortion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 429380907452a0b4091607a6e92d2bb8 +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: a43350e669209cb4098e9297891a1ffd, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs b/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs new file mode 100644 index 0000000..20c26dd --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs @@ -0,0 +1,39 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/color-correction/white-balance.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Color Correction/White Balance")] + public class WhiteBalance : BaseEffect + { + public enum BalanceMode + { + Simple, + Complex + } + + [ColorUsage(false), Tooltip("Reference white point or midtone value.")] + public Color White = new Color(0.5f, 0.5f, 0.5f); + + [Tooltip("Algorithm used.")] + public BalanceMode Mode = BalanceMode.Complex; + + protected virtual void Reset() + { + White = CLib.IsLinearColorSpace() ? + new Color(0.72974005284f, 0.72974005284f, 0.72974005284f) : + new Color(0.5f, 0.5f, 0.5f); + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetColor("_White", White); + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs.meta b/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs.meta new file mode 100644 index 0000000..e8d3b74 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/WhiteBalance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b87ea445a48e9f44ab51e80325d56b0a +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 36a3aa3217d66c645a4665ff1490cb28, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Scripts/Effects/Wiggle.cs b/Assets/Colorful FX/Scripts/Effects/Wiggle.cs new file mode 100644 index 0000000..ad96dc7 --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Wiggle.cs @@ -0,0 +1,55 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +namespace Colorful +{ + using UnityEngine; + + [UnityEngine.HelpURL("http://www.thomashourdel.com/colorful/doc/camera-effects/wiggle.html")] + [ExecuteInEditMode] + [AddComponentMenu("Colorful FX/Camera Effects/Wiggle")] + public class Wiggle : BaseEffect + { + public enum Algorithm + { + Simple, + Complex + } + + [Tooltip("Animation type. Complex is slower but looks more natural.")] + public Algorithm Mode = Algorithm.Complex; + + public float Timer = 0f; + + [Tooltip("Wave animation speed.")] + public float Speed = 1f; + + [Tooltip("Wave frequency (higher means more waves).")] + public float Frequency = 12f; + + [Tooltip("Wave amplitude (higher means bigger waves).")] + public float Amplitude = 0.01f; + + [Tooltip("Automatically animate this effect at runtime.")] + public bool AutomaticTimer = true; + + protected virtual void Update() + { + if (AutomaticTimer) + { + // Reset the timer after a while, some GPUs don't like big numbers + if (Timer > 1000f) + Timer -= 1000f; + + Timer += Speed * Time.deltaTime; + } + } + + protected override void OnRenderImage(RenderTexture source, RenderTexture destination) + { + Material.SetVector("_Params", new Vector3(Frequency, Amplitude, Timer * (Mode == Algorithm.Complex ? 0.1f : 1f))); + Graphics.Blit(source, destination, Material, (int)Mode); + } + } +} diff --git a/Assets/Colorful FX/Scripts/Effects/Wiggle.cs.meta b/Assets/Colorful FX/Scripts/Effects/Wiggle.cs.meta new file mode 100644 index 0000000..294021e --- /dev/null +++ b/Assets/Colorful FX/Scripts/Effects/Wiggle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03a36ef005a80844b8e0ffada3adad9b +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Shader: {fileID: 4800000, guid: 22fe62a5d4de91a4995c1363cbc2492e, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: e7f8a1ed59e3e914f8e50295c1130bc1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders.meta b/Assets/Colorful FX/Shaders.meta new file mode 100644 index 0000000..4173c59 --- /dev/null +++ b/Assets/Colorful FX/Shaders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 758afc34556c53846b1fe519720b5153 +folderAsset: yes +timeCreated: 1466165647 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/AnalogTV.shader b/Assets/Colorful FX/Shaders/AnalogTV.shader new file mode 100644 index 0000000..53624b0 --- /dev/null +++ b/Assets/Colorful FX/Shaders/AnalogTV.shader @@ -0,0 +1,142 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Analog TV" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params1 ("Noise Intensity (X) Scanlines Intensity (Y) Scanlines Count (Z) Scanlines Offset (W)", Vector) = (0.5, 2.0, 768, 0.0) + _Params2 ("Phase (X) Distortion (Y) Cubic Distortion (Z) Scale (W)", Vector) = (0.05, 0.2, 0.6, 0.8) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params1; + half4 _Params2; + + half4 filter_pass_h(half2 uv) + { + half2 coord = barrelDistortion(uv, _Params2.y, _Params2.z, _Params2.w); + half4 color = tex2D(_MainTex, coord); + + float n = simpleNoise(coord.xy * _Params2.x); + float dx = mod(n, 0.01); + + half3 result = color.rgb + color.rgb * saturate(0.1 + dx * 100.0); + half2 sc = half2(sin(coord.y * _Params1.z + _Params1.w), cos(coord.y * _Params1.z + _Params1.w)); + result += color.rgb * sc.xyx * _Params1.y; + result = color.rgb + saturate(_Params1.x) * (result - color.rgb); + + return half4(result, color.a); + } + + half4 filter_pass_v(half2 uv) + { + half2 coord = barrelDistortion(uv, _Params2.y, _Params2.z, _Params2.w); + half4 color = tex2D(_MainTex, coord); + + float n = simpleNoise(coord.xy * _Params2.x); + float dx = mod(n, 0.01); + + half3 result = color.rgb + color.rgb * saturate(0.1 + dx * 100.0); + half2 sc = half2(sin(coord.x * _Params1.z + _Params1.w), cos(coord.x * _Params1.z + _Params1.w)); + result += color.rgb * sc.xyx * _Params1.y; + result = color.rgb + saturate(_Params1.x) * (result - color.rgb); + + return half4(result, color.a); + } + + half4 frag(v2f_img i) : SV_Target + { + return filter_pass_h(i.uv); + } + + half4 frag_grayscale(v2f_img i) : SV_Target + { + half4 result = filter_pass_h(i.uv); + half lum = luminance(result.rgb); + result = half4(lum, lum, lum, result.a); + return result; + } + + half4 frag_vertical(v2f_img i) : SV_Target + { + return filter_pass_v(i.uv); + } + + half4 frag_grayscale_vertical(v2f_img i) : SV_Target + { + half4 result = filter_pass_v(i.uv); + half lum = luminance(result.rgb); + result = half4(lum, lum, lum, result.a); + return result; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Horizontal scanlines + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + + // (1) Horizontal scanlines + grayscale + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_grayscale + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + + // (2) Vertical scanlines + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_vertical + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + + // (3) Vertical scanlines + grayscale + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_grayscale_vertical + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/AnalogTV.shader.meta b/Assets/Colorful FX/Shaders/AnalogTV.shader.meta new file mode 100644 index 0000000..f90be40 --- /dev/null +++ b/Assets/Colorful FX/Shaders/AnalogTV.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b426a8c366d0584dadb551db862ddeb +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader b/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader new file mode 100644 index 0000000..4a64a2f --- /dev/null +++ b/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader @@ -0,0 +1,111 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Bilateral Gaussian Blur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Direction ("Direction (XY)", Vector) = (0, 0, 0, 0) + _Threshold ("Threshold", Float) = 0 + _Amount ("Blend factor (Float)", Float) = 1.0 + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Blur + Pass + { + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _CameraDepthTexture; + half2 _Direction; + half _Threshold; + + struct fInput + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uv1 : TEXCOORD1; + float4 uv2 : TEXCOORD2; + }; + + fInput vert(appdata_img v) + { + fInput o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + float2 d1 = 1.3846153846 * _Direction; + float2 d2 = 3.2307692308 * _Direction; + o.uv1 = float4(o.uv + d1, o.uv - d1); + o.uv2 = float4(o.uv + d2, o.uv - d2); + return o; + } + + half4 frag(fInput i) : SV_Target + { + const half2 uvs[4] = { i.uv1.xy, i.uv1.zw, i.uv2.xy, i.uv2.zw }; + + half depth = Linear01Depth(tex2D(_CameraDepthTexture, i.uv).x); + half4 accum = tex2D(_MainTex, i.uv) * 0.2270270270; + half accumWeight = 0.2270270270; + + half4 depthTmp; + depthTmp.x = Linear01Depth(tex2D(_CameraDepthTexture, uvs[0]).x); + depthTmp.y = Linear01Depth(tex2D(_CameraDepthTexture, uvs[1]).x); + depthTmp.z = Linear01Depth(tex2D(_CameraDepthTexture, uvs[2]).x); + depthTmp.w = Linear01Depth(tex2D(_CameraDepthTexture, uvs[3]).x); + half4 diff = abs(depth - depthTmp); + half4 weight = (1.0 - step(_Threshold, diff)) * half4(0.3162162162, 0.3162162162, 0.0702702703, 0.0702702703); + + for (int i = 0; i < 4; i++) + { + accum += weight[i] * tex2D(_MainTex, uvs[i]); + accumWeight += weight[i]; + } + + return accum / accumWeight; + } + + ENDCG + } + + // (1) Composite if _Amount is in ]0;1[ + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _Blurred; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + half4 bc = tex2D(_Blurred, i.uv); + return lerp(oc, bc, _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader.meta b/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader.meta new file mode 100644 index 0000000..b7bf8c6 --- /dev/null +++ b/Assets/Colorful FX/Shaders/BilateralGaussianBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a8686488660cc994aa7b3197735727dc +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/BleachBypass.shader b/Assets/Colorful FX/Shaders/BleachBypass.shader new file mode 100644 index 0000000..144ccc2 --- /dev/null +++ b/Assets/Colorful FX/Shaders/BleachBypass.shader @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Bleach Bypass" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Amount ("Amount", Range(0.0, 1.0)) = 1.0 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half lum = luminance(color.rgb); + half3 blend = half3(lum, lum, lum); + half L = min(1.0, max(0.0, 10.0 * (lum - 0.45))); + half3 nc = lerp(2.0 * color.rgb * blend, + 1.0 - 2.0 * (1.0 - blend) * (1.0 - color.rgb), + L); + + return lerp(color, half4(nc, color.a), _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/BleachBypass.shader.meta b/Assets/Colorful FX/Shaders/BleachBypass.shader.meta new file mode 100644 index 0000000..ea99bf2 --- /dev/null +++ b/Assets/Colorful FX/Shaders/BleachBypass.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db51fb80780ef714492de6fd9a5b3748 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Blend.shader b/Assets/Colorful FX/Shaders/Blend.shader new file mode 100644 index 0000000..4461482 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Blend.shader @@ -0,0 +1,489 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Blend" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _OverlayTex ("Overlay (RGB)", 2D) = "white" {} + _Amount ("Amount", Range(0.0, 1.0)) = 1.0 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + #define half4_one half4(1.0, 1.0, 1.0, 1.0) + + sampler2D _MainTex; + sampler2D _OverlayTex; + half _Amount; + + // Darken + half4 frag_darken(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, min(c, o), _Amount); + } + + // Multiply + half4 frag_multiply(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, c * o, _Amount); + } + + // Color Burn + half4 frag_colorburn(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, half4_one - (half4_one - c) / o, _Amount); + } + + // Linear Burn + half4 frag_linearburn(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, o + c - half4_one, _Amount); + } + + // Darker Color + half4 frag_darkercolor(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 result = luminance(c.rgb) < luminance(o.rgb) ? c : o; + return lerp(c, result, _Amount); + } + + // Lighten + half4 frag_lighten(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, max(c, o), _Amount); + } + + // Screen + half4 frag_screen(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, half4_one - ((half4_one - o) * (half4_one - c)), _Amount); + } + + // Color Dodge + half4 frag_colordodge(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, c / (half4_one - o), _Amount); // Should check for div by 0 but GPU drivers apparently don't care + } + + // Linear Dodge (Add) + half4 frag_add(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, c + o, _Amount); + } + + // Lighter Color + half4 frag_lightercolor(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 result = luminance(c.rgb) > luminance(o.rgb) ? c : o; + return lerp(c, result, _Amount); + } + + // Overlay + half4 frag_overlay(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, c); + half4 result = check * (half4_one - ((half4_one - 2.0 * (c - 0.5)) * (half4_one - o))); + result += (half4_one - check) * (2.0 * c * o); + return lerp(c, result, _Amount); + } + + // Soft Light + half4 frag_softlight(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, o); + half4 result = check * (2.0 * c * o + c * c - 2.0 * c * c * o); + result += (half4_one - check) * (2.0 * sqrt(c) * o - sqrt(c) + 2.0 * c - 2.0 * c * o); + return lerp(c, result, _Amount); + } + + // Hard Light + half4 frag_hardlight(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, o); + half4 result = check * (half4_one - ((half4_one - 2.0 * (c - 0.5)) * (half4_one - o))); + result += (half4_one - check) * (2.0 * c * o); + return lerp(c, result, _Amount); + } + + // Vivid Light + half4 frag_vividlight(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, o); + half4 result = check * (c / (half4_one - 2.0 * (o - 0.5))); + result += (half4_one - check) * (half4_one - (half4_one - c) / (2.0 * o)); + return lerp(c, result, _Amount); + } + + // Linear Light + half4 frag_linearlight(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, o); + half4 result = check * (c + (2.0 * (o - 0.5))); + result += (half4_one - check) * (c + 2.0 * o - half4_one); + return lerp(c, result, _Amount); + } + + // Pin Light + half4 frag_pinlight(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 check = step(0.5, o); + half4 result = check * max(2.0 * (o - 0.5), c); + result += (half4_one - check) * min(2 * o, c); + return lerp(c, result, _Amount); + } + + // Hard Mix + half4 frag_hardmix(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + half4 result = half4(0.0, 0.0, 0.0, 0.0); + result.r = o.r > 1.0 - c.r ? 1.0 : 0.0; + result.g = o.g > 1.0 - c.g ? 1.0 : 0.0; + result.b = o.b > 1.0 - c.b ? 1.0 : 0.0; + result.a = o.a > 1.0 - c.a ? 1.0 : 0.0; + return lerp(c, result, _Amount); + } + + // Difference + half4 frag_difference(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, abs(c - o), _Amount); + } + + // Exclusion + half4 frag_exclusion(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, c + o - (2 * c * o), _Amount); + } + + // Subtract + half4 frag_subtract(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, saturate(c - o), _Amount); + } + + // Divide + half4 frag_divide(v2f_img i) : SV_Target + { + half4 o = tex2D(_OverlayTex, i.uv); + half4 c = tex2D(_MainTex, i.uv); + return lerp(c, c / o, _Amount); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Darken + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_darken + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Multiply + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_multiply + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (2) Color Burn + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_colorburn + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (3) Linear Burn + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linearburn + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (4) Darker Color + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_darkercolor + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // Separator + Pass {} + + // (6) Lighten + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_lighten + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (7) Screen + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_screen + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (8) Color Dodge + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_colordodge + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (9) Linear Dodge (add) + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_add + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (10) Lighter Color + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_lightercolor + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // Separator + Pass {} + + // (12) Overlay + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_overlay + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (13) Soft Light + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_softlight + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + ENDCG + } + + // (14) Hard Light + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_hardlight + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (15) Vivid Light + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_vividlight + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (16) Linear Light + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linearlight + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (17) Pin Light + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_pinlight + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (18) Hard Mix + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_hardmix + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // Separator + Pass {} + + // (20) Difference + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_difference + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (21) Exclusion + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_exclusion + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (22) Subtract + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_subtract + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (23) Divide + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_divide + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Blend.shader.meta b/Assets/Colorful FX/Shaders/Blend.shader.meta new file mode 100644 index 0000000..7c6c0ef --- /dev/null +++ b/Assets/Colorful FX/Shaders/Blend.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 753c5a4449b3c184b85015dea8325051 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader b/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader new file mode 100644 index 0000000..2d54dbd --- /dev/null +++ b/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Brightness Contrast Gamma" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _BCG ("Brightness (X) Contrast (Y) Gamma (Z)", Vector) = (0.0, 1.0, 1.0, 1.0) + _Coeffs ("Contrast coeffs (RGB)", Vector) = (0.5, 0.5, 0.5, 1.0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _BCG; + half3 _Coeffs; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 factor = half4(_Coeffs, color.a); + + color *= _BCG.x; + color = (color - factor) * _BCG.y + factor; + color = clamp(color, 0.0, 1.0); + color = pow(color, _BCG.z); + + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader.meta b/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader.meta new file mode 100644 index 0000000..a7ba621 --- /dev/null +++ b/Assets/Colorful FX/Shaders/BrightnessContrastGamma.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c1ffdcaa7728ced4fa68c999e5e7f2de +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ChannelClamper.shader b/Assets/Colorful FX/Shaders/ChannelClamper.shader new file mode 100644 index 0000000..248e99c --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelClamper.shader @@ -0,0 +1,48 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Channel Clamper" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _RedClamp ("Red Clamp (XY)", Vector) = (0.0, 1.0, 0.0, 0.0) + _GreenClamp ("Green Clamp (XY)", Vector) = (0.0, 1.0, 0.0, 0.0) + _BlueClamp ("Blue Clamp (XY)", Vector) = (0.0, 1.0, 0.0, 0.0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _RedClamp; + half2 _GreenClamp; + half2 _BlueClamp; + + half4 frag(v2f_img i) : SV_Target + { + half3 color = tex2D(_MainTex, i.uv).rgb; + color.r = clamp(color.r, _RedClamp.x, _RedClamp.y); + color.g = clamp(color.g, _GreenClamp.x, _GreenClamp.y); + color.b = clamp(color.b, _BlueClamp.x, _BlueClamp.y); + return half4(color, 1.0); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ChannelClamper.shader.meta b/Assets/Colorful FX/Shaders/ChannelClamper.shader.meta new file mode 100644 index 0000000..b763bfe --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelClamper.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4066b90a1d8ac540b9994745a496312 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ChannelMixer.shader b/Assets/Colorful FX/Shaders/ChannelMixer.shader new file mode 100644 index 0000000..79e4c4b --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelMixer.shader @@ -0,0 +1,53 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Channel Mixer" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Red ("Red Channel", Vector) = (1, 0, 0, 1) + _Green ("Green Channel", Vector) = (0, 1, 0, 1) + _Blue ("Blue Channel", Vector) = (0, 0, 1, 1) + _Constant ("Constant", Vector) = (0, 0, 0, 1) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _Red; + half4 _Green; + half4 _Blue; + half4 _Constant; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half3 result = (color.rrr * _Red) + + (color.ggg * _Green) + + (color.bbb * _Blue) + + _Constant; + + return half4(result, color.a); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ChannelMixer.shader.meta b/Assets/Colorful FX/Shaders/ChannelMixer.shader.meta new file mode 100644 index 0000000..6409daa --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelMixer.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5203c49c0e949f4e9b53909003b6b8f +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ChannelSwapper.shader b/Assets/Colorful FX/Shaders/ChannelSwapper.shader new file mode 100644 index 0000000..22ea5c7 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelSwapper.shader @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Channel Swapper" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Red ("Red Source Channel (RGB)", Vector) = (1, 0, 0, 0) + _Green ("Green Source Channel (RGB)", Vector) = (0, 1, 0, 0) + _Blue ("Blue Source Channel (RGB)", Vector) = (0, 0, 1, 0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _Red; + half4 _Green; + half4 _Blue; + + half4 frag(v2f_img i) : SV_Target + { + half3 color = tex2D(_MainTex, i.uv).rgb; + + half3 red = color * _Red.rgb; + half3 green = color * _Green.rgb; + half3 blue = color * _Blue.rgb; + + half3 result = half3( + red.x + red.y + red.z, + green.x + green.y + green.z, + blue.x + blue.y + blue.z + ); + + return half4(result, 1.0); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ChannelSwapper.shader.meta b/Assets/Colorful FX/Shaders/ChannelSwapper.shader.meta new file mode 100644 index 0000000..61d40ac --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChannelSwapper.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 382b6d6c7bf6b3b49b364517c68bb0d2 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ChromaticAberration.shader b/Assets/Colorful FX/Shaders/ChromaticAberration.shader new file mode 100644 index 0000000..6a77d7d --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChromaticAberration.shader @@ -0,0 +1,76 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Chromatic Aberration" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Refraction ("Refraction Index (RGB)", Vector) = (1.0, 1.005, 1.01, 0.0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half3 _Refraction; + + half3 compute(half2 uv) + { + half3 incidence = half3(2.0 * uv - 1.0, 1.0); + half3 normal = half3(0.0, 0.0, -1.0); + half3 refract_r = refract(incidence, normal, _Refraction.r); + half3 refract_g = refract(incidence, normal, _Refraction.g); + half3 refract_b = refract(incidence, normal, _Refraction.b); + half2 uv_r = ((refract_r / refract_r.z).xy + 1.0) / 2.0; + half2 uv_g = ((refract_g / refract_g.z).xy + 1.0) / 2.0; + half2 uv_b = ((refract_b / refract_b.z).xy + 1.0) / 2.0; + return half3(tex2D(_MainTex, uv_r).r, tex2D(_MainTex, uv_g).g, tex2D(_MainTex, uv_b).b); + } + + half4 frag(v2f_img i) : SV_Target + { + return half4(compute(i.uv), 1.0); + } + + half4 frag_alpha(v2f_img i) : SV_Target + { + return half4(compute(i.uv), tex2D(_MainTex, i.uv).a); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Preserve alpha = false + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Preserve alpha = true + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_alpha + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ChromaticAberration.shader.meta b/Assets/Colorful FX/Shaders/ChromaticAberration.shader.meta new file mode 100644 index 0000000..d7682aa --- /dev/null +++ b/Assets/Colorful FX/Shaders/ChromaticAberration.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 447e63f892fae1d49b961d2132c02b5a +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Colorful.cginc b/Assets/Colorful FX/Shaders/Colorful.cginc new file mode 100644 index 0000000..d5dea3b --- /dev/null +++ b/Assets/Colorful FX/Shaders/Colorful.cginc @@ -0,0 +1,182 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +/* Constants */ +#define PI 3.14159265 + +/* Maths */ +half luminance(half3 color) +{ + return dot(color, half3(0.222, 0.707, 0.071)); +} + +half3 mod(half3 x, half3 y) // OpenGL version, different from CG/HLSL's fmod +{ + return x - y * floor(x / y); +} + +half2 mod(half2 x, half2 y) +{ + return x - y * floor(x / y); +} + +half mod(half x, half y) +{ + return x - y * floor(x / y); +} + +half rot(half value, half low, half hi) +{ + return (value < low) ? value + hi : (value > hi) ? value - hi : value; +} + +half rot10(half value) +{ + return rot(value, 0.0, 1.0); +} + +float simpleNoise(float2 uv) +{ + return frac(sin(dot(uv, float2(12.9898, 78.233))) * 43758.5453); +} + +float simpleNoise_fracLess(float2 uv) +{ + return sin(dot(uv, float2(12.9898, 78.233))) * 43758.5453; +} + +half invlerp(half from, half to, half value) +{ + return (value - from) / (to - from); +} + +/* Distortions */ +half4 pixelate(sampler2D tex, half2 uv, half scale, half ratio) +{ + half ds = 1.0 / scale; + half2 coord = half2(ds * ceil(uv.x / ds), (ds * ratio) * ceil(uv.y / ds / ratio)); + return half4(tex2D(tex, coord).xyzw); +} + +half4 pixelate(sampler2D tex, half2 uv, half2 scale) +{ + half2 ds = 1.0 / scale; + half2 coord = ds * ceil(uv / ds); + return half4(tex2D(tex, coord).xyzw); +} + +half2 barrelDistortion(half2 coord, half spherical, half barrel, half scale) +{ + // Inspired by SynthEyes lens distortion algorithm + // See http://www.ssontech.com/content/lensalg.htm + half2 h = coord.xy - half2(0.5, 0.5); + half r2 = dot(h, h); + half f = 1.0 + r2 * (spherical + barrel * sqrt(r2)); + return f * scale * h + 0.5; +} + +/* Color conversion */ +half3 HSVtoRGB(half3 c) +{ + half4 K = half4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + half3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * lerp(K.xxx, saturate(p - K.xxx), c.y); +} + +half3 RGBtoHSV(half3 c) +{ + half4 K = half4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + half4 p = lerp(half4(c.bg, K.wz), half4(c.gb, K.xy), step(c.b, c.g)); + half4 q = lerp(half4(p.xyw, c.r), half4(c.r, p.yzx), step(p.x, c.r)); + + half d = q.x - min(q.w, q.y); + half e = 1.0e-10; + return half3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} + +half RGBtoHUE(half3 c) +{ + half4 K = half4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + half4 p = lerp(half4(c.bg, K.wz), half4(c.gb, K.xy), step(c.b, c.g)); + half4 q = lerp(half4(p.xyw, c.r), half4(c.r, p.yzx), step(p.x, c.r)); + + half d = q.x - min(q.w, q.y); + return abs(q.z + (q.w - q.y) / (6.0 * d + 1.0e-10)); +} + +half3 HUEtoRGB(half h) +{ + half h6 = h * 6.0; + half r = abs(h6 - 3.0) - 1.0; + half g = 2.0 - abs(h6 - 2.0); + half b = 2.0 - abs(h6 - 4.0); + return saturate(half3(r, g, b)); +} + +half3 RGBtoHSL(half3 c) +{ + half3 hsv = RGBtoHSV(c); + half l = hsv.z - hsv.y * 0.5; + half s = hsv.y / (1.0 - abs(l * 2.0 - 1.0) + 1e-10); + return half3(hsv.x, s, l); +} + +half3 HSLtoRGB(half3 c) +{ + half3 rgb = HUEtoRGB(c.x); + half C = (1.0 - abs(2.0 * c.z - 1.0)) * c.y; + return (rgb - 0.5) * C + c.z; +} + +half3 RGBtoYUV(half3 c) +{ + half3 yuv; + yuv.x = dot(c, half3(0.299, 0.587, 0.114)); + yuv.y = dot(c, half3(-0.14713, -0.28886, 0.436)); + yuv.z = dot(c, half3(0.615, -0.51499, -0.10001)); + return yuv; +} + +half3 YUVtoRGB(half3 c) +{ + half3 rgb; + rgb.r = c.x + c.z * 1.13983; + rgb.g = c.x + dot(half2(-0.39465, -0.58060), c.yz); + rgb.b = c.x + c.y * 2.03211; + return rgb; +} + +half4 RGBtoCMYK(half3 c) +{ + half k = max(max(c.r, c.g), c.b); + return min(half4(c.rgb / k, k), 1.0); +} + +half3 CMYKtoRGB(half4 c) +{ + return c.rgb * c.a; +} + +/* + * sRGB <-> Linear from http://entropymine.com/imageworsener/srgbformula/ + * using a bit more precise values than the IEC 61966-2-1 standard + * see http://en.wikipedia.org/wiki/SRGB for more information + */ +half3 sRGB(half3 color) +{ + color = (color <= half3(0.0031308, 0.0031308, 0.0031308)) ? color * 12.9232102 : 1.055 * pow(color, 0.41666) - 0.055; + return color; +} + +half4 sRGB(half4 color) +{ + color.rgb = (color.rgb <= half3(0.0031308, 0.0031308, 0.0031308)) ? color.rgb * 12.9232102 : 1.055 * pow(color.rgb, 0.41666) - 0.055; + return color; +} + +half4 Linear(half4 color) +{ + color.rgb = (color.rgb <= half3(0.0404482, 0.0404482, 0.0404482)) ? color.rgb / 12.9232102 : pow((color.rgb + 0.055) * 0.9478672, 2.4); + return color; +} diff --git a/Assets/Colorful FX/Shaders/Colorful.cginc.meta b/Assets/Colorful FX/Shaders/Colorful.cginc.meta new file mode 100644 index 0000000..b876c50 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Colorful.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3db28f87c4ae8cc48a6815cbd2dcef86 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ComicBook.shader b/Assets/Colorful FX/Shaders/ComicBook.shader new file mode 100644 index 0000000..8e9a357 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ComicBook.shader @@ -0,0 +1,138 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Comic Book" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _StripParams; + half3 _StripParams2; + half3 _StripInnerColor; + half3 _StripOuterColor; + + half3 _FillColor; + half3 _BackgroundColor; + + half _EdgeThreshold; + half3 _EdgeColor; + + struct fInput + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uvs[4] : TEXCOORD1; + }; + + fInput vert_edge(appdata_img v) + { + fInput o; + o.pos = UnityObjectToClipPos(v.vertex); + float2 uv = v.texcoord.xy; + o.uv = uv; + o.uvs[0] = float4(uv.x - _EdgeThreshold, uv.y + _EdgeThreshold, uv.x - _EdgeThreshold, uv.y ); + o.uvs[1] = float4(uv.x - _EdgeThreshold, uv.y - _EdgeThreshold, uv.x , uv.y + _EdgeThreshold); + o.uvs[2] = float4(uv.x , uv.y - _EdgeThreshold, uv.x + _EdgeThreshold, uv.y + _EdgeThreshold); + o.uvs[3] = float4(uv.x + _EdgeThreshold, uv.y , uv.x + _EdgeThreshold, uv.y - _EdgeThreshold); + return o; + } + + half3 strip_color(half2 uv) + { + half2 p = (uv - 0.5) * _StripParams2.x; + half brightness = cos(dot(p, _StripParams.xy)); + half lum_strip = luminance(1.0 - brightness); + return lerp(_StripOuterColor, _StripInnerColor, step(lum_strip, _StripParams2.y)); + } + + half4 frag_edge(fInput i) : SV_Target + { + half3 color = _BackgroundColor; + + half3 sample0 = tex2D(_MainTex, i.uvs[0].xy).rgb; + half3 sample1 = tex2D(_MainTex, i.uvs[0].zw).rgb; + half3 sample2 = tex2D(_MainTex, i.uvs[1].xy).rgb; + half3 sample3 = tex2D(_MainTex, i.uvs[1].zw).rgb; + half3 sample4 = tex2D(_MainTex, i.uv).rgb; + half3 sample5 = tex2D(_MainTex, i.uvs[2].xy).rgb; + half3 sample6 = tex2D(_MainTex, i.uvs[2].zw).rgb; + half3 sample7 = tex2D(_MainTex, i.uvs[3].xy).rgb; + half3 sample8 = tex2D(_MainTex, i.uvs[3].zw).rgb; + + half3 hEdge = sample2 + sample5 + sample8 - (sample0 + sample3 + sample6); + half3 vEdge = sample0 + sample1 + sample2 - (sample6 + sample7 + sample8); + half3 edge = sqrt(hEdge * hEdge + vEdge * vEdge); + + if (edge.r > 0.5 || edge.g > 0.5 || edge.b > 0.5) // Flattened by Unity's shader compiler on DX9 and GL + { + color = _EdgeColor; + } + else + { + half lum = luminance(tex2D(_MainTex, i.uv).rgb); + half s1 = step(lum, _StripParams.z); + half s2 = step(_StripParams.z, lum) * step(lum, _StripParams.w); + color = lerp(lerp(_BackgroundColor, strip_color(i.uv), s2), _FillColor, s1); + } + + return half4(lerp(sample4, color, _StripParams2.z), 1.0); + } + + half4 frag(v2f_img i) : SV_Target + { + half3 color = _BackgroundColor; + + half lum = luminance(tex2D(_MainTex, i.uv).rgb); + half s1 = step(lum, _StripParams.z); + half s2 = step(_StripParams.z, lum) * step(lum, _StripParams.w); + color = lerp(lerp(_BackgroundColor, strip_color(i.uv), s2), _FillColor, s1); + + return half4(lerp(tex2D(_MainTex, i.uv).rgb, color, _StripParams2.z), 1.0); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) No edge detection + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Edge detection + Pass + { + CGPROGRAM + + #pragma vertex vert_edge + #pragma fragment frag_edge + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ComicBook.shader.meta b/Assets/Colorful FX/Shaders/ComicBook.shader.meta new file mode 100644 index 0000000..0b5a381 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ComicBook.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 589797c62ca68254ea3643767841da50 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ContrastGain.shader b/Assets/Colorful FX/Shaders/ContrastGain.shader new file mode 100644 index 0000000..21fd67c --- /dev/null +++ b/Assets/Colorful FX/Shaders/ContrastGain.shader @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Contrast Gain" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Gain ("Contrast Gain (Float)", Float) = 1.0 + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half _Gain; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = saturate(tex2D(_MainTex, i.uv)); + half g = pow(2.0, _Gain) * 0.5; + + // The following code fails for some reason on Unity 4.6/DX9 + //color.rgb = (color.rgb < 0.5) ? pow(color.rgb, _Gain) * g : 1.0 - pow(1.0 - color.rgb, _Gain) * g; + // So use a classic lerp/step combo instead + half3 c1 = pow(color.rgb, _Gain) * g; + half3 c2 = 1.0 - pow(1.0 - color.rgb, _Gain) * g; + color.rgb = lerp(c1, c2, step(0.5, color.rgb)); + + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ContrastGain.shader.meta b/Assets/Colorful FX/Shaders/ContrastGain.shader.meta new file mode 100644 index 0000000..6144158 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ContrastGain.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3973b60005a6730458dd6590aa15584e +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ContrastVignette.shader b/Assets/Colorful FX/Shaders/ContrastVignette.shader new file mode 100644 index 0000000..7a91590 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ContrastVignette.shader @@ -0,0 +1,51 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Contrast Vignette" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Sharpness (X) Darkness (Y) Contrast (Z) Edge (W)", Vector) = (0.1, 0.3, 0.25, 0.5) + _Coeffs ("Luminance coeffs (RGB)", Vector) = (0.5, 0.5, 0.5, 1.0) + _Center ("Center point (XY)", Vector) = (0.5, 0.5, 1.0, 1.0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _Params; + half3 _Coeffs; + half4 _Center; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half d = distance(i.uv, _Center.xy); + half multiplier = smoothstep(0.8, _Params.x * 0.799, d * (_Params.y + _Params.x)); + color.rgb = (color.rgb - _Coeffs) * max((1.0 - _Params.z * (multiplier - 1.0) - _Params.w), 1.0) + _Coeffs; + color.rgb *= multiplier; + + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ContrastVignette.shader.meta b/Assets/Colorful FX/Shaders/ContrastVignette.shader.meta new file mode 100644 index 0000000..f118d74 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ContrastVignette.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76dfe25966c72ac4e9fcea7968814159 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Convolution3x3.shader b/Assets/Colorful FX/Shaders/Convolution3x3.shader new file mode 100644 index 0000000..b2211df --- /dev/null +++ b/Assets/Colorful FX/Shaders/Convolution3x3.shader @@ -0,0 +1,83 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Convolution 3x3" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _PSize ("Pixel Size (XY)", Vector) = (1, 1, 0, 0) + _KernelT ("Kernel Top Row", Vector) = (0, 0, 0, 0) + _KernelM ("Kernel Middle Row", Vector) = (0, 0, 0, 0) + _KernelB ("Kernel Bottom Row", Vector) = (0, 0, 0, 0) + _Amount ("Amount", Range(0.0, 1.0)) = 1.0 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _PSize; + half4 _KernelT; + half4 _KernelM; + half4 _KernelB; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 origin; + half4 color = half4(0.0, 0.0, 0.0, 0.0); + half4 temp; + + // Top + temp = tex2D(_MainTex, i.uv + half2(-_PSize.x, -_PSize.y)); + color += temp * _KernelT.x; + + temp = tex2D(_MainTex, i.uv + half2(0.0, -_PSize.y)); + color += temp * _KernelT.y; + + temp = tex2D(_MainTex, i.uv + half2(_PSize.x, -_PSize.y)); + color += temp * _KernelT.z; + + // Middle + temp = tex2D(_MainTex, i.uv + half2(-_PSize.x, 0.0)); + color += temp * _KernelM.x; + + origin = tex2D(_MainTex, i.uv); + color += origin * _KernelM.y; + + temp = tex2D(_MainTex, i.uv + half2(_PSize.x, 0.0)); + color += temp * _KernelM.z; + + // Bottom + temp = tex2D(_MainTex, i.uv + half2(-_PSize.x, _PSize.y)); + color += temp * _KernelB.x; + + temp = tex2D(_MainTex, i.uv + half2(0.0, _PSize.y)); + color += temp * _KernelB.y; + + temp = tex2D(_MainTex, i.uv + half2(_PSize.x, _PSize.y)); + color += temp * _KernelB.z; + + return lerp(origin, color, _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Convolution3x3.shader.meta b/Assets/Colorful FX/Shaders/Convolution3x3.shader.meta new file mode 100644 index 0000000..592c944 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Convolution3x3.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb1bf93f638bf2145a1a3aff22f7ebf8 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/CrossStitch.shader b/Assets/Colorful FX/Shaders/CrossStitch.shader new file mode 100644 index 0000000..304e11f --- /dev/null +++ b/Assets/Colorful FX/Shaders/CrossStitch.shader @@ -0,0 +1,117 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Cross Stitch" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _StitchSize ("Stitch Size (Int)", Float) = 8 + _Brightness ("Brightness (Float)", Float) = 1.5 + _Scale ("Scale (Float)", Float) = 1.0 + _Ratio ("Ratio (Float)", Float) = 1.0 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half _StitchSize; + half _Brightness; + half _Scale; + half _Ratio; + + half2 stitch(half2 uv) + { + half2 pixelUV = uv * _ScreenParams.xy; + half2 offset = floor(pixelUV); + offset.x = offset.x - offset.y; + offset.y = offset.x + offset.y * 2.0; + return fmod(offset, half2(_StitchSize, _StitchSize)); + } + + half4 frag(v2f_img i) : SV_Target + { + half2 reminder = stitch(i.uv); + half4 color = (reminder.x == 0 || reminder.y == 0) ? tex2D(_MainTex, i.uv) * _Brightness : half4(0.0, 0.0, 0.0, 1.0); + return color; + } + + half4 frag_invert(v2f_img i) : SV_Target + { + half2 reminder = stitch(i.uv); + half4 color = (reminder.x == 0 || reminder.y == 0) ? half4(0.0, 0.0, 0.0, 1.0) : tex2D(_MainTex, i.uv) * _Brightness; + return color; + } + + half4 frag_px(v2f_img i) : SV_Target + { + half2 reminder = stitch(i.uv); + half4 color = (reminder.x == 0 || reminder.y == 0) ? pixelate(_MainTex, i.uv, _Scale, _Ratio) * _Brightness : half4(0.0, 0.0, 0.0, 1.0); + return color; + } + + half4 frag_invert_px(v2f_img i) : SV_Target + { + half2 reminder = stitch(i.uv); + half4 color = (reminder.x == 0 || reminder.y == 0) ? half4(0.0, 0.0, 0.0, 1.0) : pixelate(_MainTex, i.uv, _Scale, _Ratio) * _Brightness; + return color; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_invert + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_px + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_invert_px + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/CrossStitch.shader.meta b/Assets/Colorful FX/Shaders/CrossStitch.shader.meta new file mode 100644 index 0000000..da2b664 --- /dev/null +++ b/Assets/Colorful FX/Shaders/CrossStitch.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a964a19ae7fdffc4ea70dbf094568dc1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/DirectionalBlur.shader b/Assets/Colorful FX/Shaders/DirectionalBlur.shader new file mode 100644 index 0000000..fd8e974 --- /dev/null +++ b/Assets/Colorful FX/Shaders/DirectionalBlur.shader @@ -0,0 +1,48 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/DirectionalBlur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Direction (XY) Samples (Z)", Vector) = (0, 0, 0, 0) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + #include "UnityCG.cginc" + + sampler2D _MainTex; + half3 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half2 dir = _Params.xy; + half4 color = half4(0.0, 0.0, 0.0, 0.0); + + for (int k = -_Params.z; k < _Params.z; k++) + color += tex2Dlod(_MainTex, half4(i.uv - dir * k, 0.0, 0.0)); + + return color / (_Params.z * 2.0); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/DirectionalBlur.shader.meta b/Assets/Colorful FX/Shaders/DirectionalBlur.shader.meta new file mode 100644 index 0000000..f084392 --- /dev/null +++ b/Assets/Colorful FX/Shaders/DirectionalBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 335958bbdc44f564894a29445833afae +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Dithering.shader b/Assets/Colorful FX/Shaders/Dithering.shader new file mode 100644 index 0000000..0a3ecb8 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Dithering.shader @@ -0,0 +1,192 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Dithering" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Pattern ("Dithering Pattern (A)", 2D) = "white" {} + _Params ("Luminance (RGB) Amount (A)", Vector) = (0.30, 0.59, 0.11, 1.0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler2D _Pattern; + half4 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 dither = pow(tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa, 0.454545); + return lerp(color, step(dither, color), _Params.w); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 dither = tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa; + return lerp(color, step(dither, color), _Params.w); + } + + half4 frag_bw(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half lum = dot(color.rgb, _Params.xyz); + half4 grey = half4(lum.xxx, color.a); + half4 dither = pow(tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa, 0.454545); + return lerp(color, step(dither, grey), _Params.w); + } + + half4 frag_linear_bw(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half lum = dot(color.rgb, _Params.xyz); + half4 grey = half4(lum.xxx, color.a); + half4 dither = tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa; + return lerp(color, step(dither, grey), _Params.w); + } + + half4 frag_orig(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 dither = pow(tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa, 0.454545); + return lerp(color, color + step(dither, color), _Params.w); + } + + half4 frag_linear_orig(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 dither = tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa; + return lerp(color, color + step(dither, color), _Params.w); + } + + half4 frag_bw_orig(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half lum = dot(color.rgb, _Params.xyz); + half4 grey = half4(lum.xxx, color.a); + half4 dither = pow(tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa, 0.454545); + return lerp(color, grey + step(dither, grey), _Params.w); + } + + half4 frag_linear_bw_orig(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half lum = dot(color.rgb, _Params.xyz); + half4 grey = half4(lum.xxx, color.a); + half4 dither = tex2D(_Pattern, (i.uv * _ScreenParams.xy) / 8.0).aaaa; + return lerp(color, grey + step(dither, grey), _Params.w); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Gamma + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (2) Gamma B&W + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_bw + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (3) Linear B&W + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear_bw + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (4) Gamma + original + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_orig + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (5) Linear + original + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear_orig + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (6) Gamma B&W + original + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_bw_orig + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (7) Linear B&W + original + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear_bw_orig + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Dithering.shader.meta b/Assets/Colorful FX/Shaders/Dithering.shader.meta new file mode 100644 index 0000000..636fe63 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Dithering.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6eafe2a67b46d474095df68b1396a86e +ShaderImporter: + defaultTextures: + - _MainTex: {instanceID: 0} + - _Pattern: {fileID: 2800000, guid: b00839345fed0ae4ca256ab2142e13fa, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/DoubleVision.shader b/Assets/Colorful FX/Shaders/DoubleVision.shader new file mode 100644 index 0000000..0cb82fe --- /dev/null +++ b/Assets/Colorful FX/Shaders/DoubleVision.shader @@ -0,0 +1,51 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Double Vision" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Displace ("Displace", Vector) = (0.7, 0.0, 0.0, 0.0) + _Amount ("Amount", Range(0.0, 1.0)) = 1.0 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Displace; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 c = tex2D(_MainTex, i.uv); + half4 n = c.rgba; + + n += tex2D(_MainTex, i.uv + half2(_Displace.x * 8.0, _Displace.y * 8.0)) * 0.5; + n += tex2D(_MainTex, i.uv + half2(_Displace.x * 16.0, _Displace.y * 16.0)) * 0.3; + n += tex2D(_MainTex, i.uv + half2(_Displace.x * 24.0, _Displace.y * 24.0)) * 0.2; + + n *= 0.5; + + return lerp(c, n, _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/DoubleVision.shader.meta b/Assets/Colorful FX/Shaders/DoubleVision.shader.meta new file mode 100644 index 0000000..94dd2a5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/DoubleVision.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0094bbb9058b55a4bb1874ccd072b33e +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/DynamicLookup.shader b/Assets/Colorful FX/Shaders/DynamicLookup.shader new file mode 100644 index 0000000..bb414f0 --- /dev/null +++ b/Assets/Colorful FX/Shaders/DynamicLookup.shader @@ -0,0 +1,95 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/DynamicLookup" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _White ("White point (RGB)", Color) = (1, 1, 1, 0) + _Black ("Black point (RGB)", Color) = (0, 0, 0, 0) + _Red ("Red point (RGB)", Color) = (1, 0, 0, 0) + _Green ("Green point (RGB)", Color) = (0, 1, 0, 0) + _Blue ("Blue point (RGB)", Color) = (0, 0, 1, 0) + _Yellow ("Yellow point (RGB)", Color) = (1, 1, 0, 0) + _Magenta ("Magenta point (RGB)", Color) = (1, 0, 1, 0) + _Cyan ("Cyan point (RGB)", Color) = (0, 1, 1, 0) + _Amount ("Amount (Float)", Float) = 1 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half3 _White; + half3 _Black; + half3 _Red; + half3 _Green; + half3 _Blue; + half3 _Yellow; + half3 _Magenta; + half3 _Cyan; + half _Amount; + + half3 get_abcd(half4 color) + { + half3 ta = lerp(_Black, _Red, color.r); + half3 tb = lerp(_Green, _Yellow, color.r); + half3 tc = lerp(_Blue, _Magenta, color.r); + half3 td = lerp(_Cyan, _White, color.r); + half3 ab = lerp(ta, tb, color.g); + half3 cd = lerp(tc, td, color.g); + return lerp(ab, cd, color.b); + } + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half3 abcd = get_abcd(color); + return lerp(color, half4(abcd, 1.0), _Amount); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + half4 color = sRGB(tex2D(_MainTex, i.uv)); + half3 abcd = get_abcd(color); + return Linear(lerp(color, half4(abcd, 1.0), _Amount)); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Gamma + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/DynamicLookup.shader.meta b/Assets/Colorful FX/Shaders/DynamicLookup.shader.meta new file mode 100644 index 0000000..3f72f02 --- /dev/null +++ b/Assets/Colorful FX/Shaders/DynamicLookup.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea36d91a0b99bd240ac1a3f17bac241b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/FastVignette.shader b/Assets/Colorful FX/Shaders/FastVignette.shader new file mode 100644 index 0000000..002b258 --- /dev/null +++ b/Assets/Colorful FX/Shaders/FastVignette.shader @@ -0,0 +1,104 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Fast Vignette" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Center (XY) Sharpness (Z) Darkness (W)", Vector) = (0.5, 0.5, 0.1, 0.3) + _Color ("Vignette Color (RGB)", Color) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + half3 _Color; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half d = distance(i.uv, _Params.xy); + half multiplier = smoothstep(0.8, _Params.z * 0.799, d * (_Params.w + _Params.z)); + color.rgb *= multiplier; + + return color; + } + + half4 frag_desat(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half d = distance(i.uv, _Params.xy); + half multiplier = smoothstep(0.8, _Params.z * 0.799, d * (_Params.w + _Params.z)); + color.rgb *= multiplier; + + half lum = luminance(color.rgb); + half4 grayscale = half4(lum, lum, lum, color.a); + + return lerp(grayscale, color, multiplier); + } + + half4 frag_rgb(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half d = distance(i.uv, _Params.xy); + half multiplier = smoothstep(0.8, _Params.z * 0.799, d * (_Params.w + _Params.z)); + half3 c = lerp(_Color, color.rgb, multiplier); + + return half4(c, color.a); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Classic + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Desaturate + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_desat + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (2) Colored + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_rgb + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/FastVignette.shader.meta b/Assets/Colorful FX/Shaders/FastVignette.shader.meta new file mode 100644 index 0000000..955dc35 --- /dev/null +++ b/Assets/Colorful FX/Shaders/FastVignette.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1025d512948837641802921c41526fd1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Frost.shader b/Assets/Colorful FX/Shaders/Frost.shader new file mode 100644 index 0000000..3910fd7 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Frost.shader @@ -0,0 +1,91 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Frost" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Scale ("Scale", Float) = 1.2 + _Sharpness ("Sharpness", Range(0, 1.0)) = 0.4 + _Darkness ("Darkness", Range(0, 2.0)) = 0.35 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half _Scale; + half _Sharpness; + half _Darkness; + + half4 frag(v2f_img i) : SV_Target + { + float2 uv = i.uv; + half4 color = tex2D(_MainTex, uv); + + float n = simpleNoise(uv); + + float dx = -0.005 + (n - 0.008 * floor(n / 0.008)); + float dy = -0.006 + (n - 0.01 * floor(n / 0.01)); + + half4 frosted = tex2D(_MainTex, uv + float2(dx, dy) * _Scale); + return frosted; + } + + half4 frag_vignette(v2f_img i) : SV_Target + { + float2 uv = i.uv; + half4 color = tex2D(_MainTex, uv); + + float n = simpleNoise(uv); + + float dx = -0.005 + (n - 0.008 * floor(n / 0.008)); + float dy = -0.006 + (n - 0.01 * floor(n / 0.01)); + + half4 frosted = tex2D(_MainTex, uv + float2(dx, dy) * _Scale); + + half4 vignette = half4(1.0, 1.0, 1.0, 1.0); + half d = distance(i.uv, half2(0.5, 0.5)); + vignette.rgb *= smoothstep(0.8, _Sharpness * 0.799, d * (_Darkness + _Sharpness)); + + return lerp(frosted, color, vignette); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_vignette + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Frost.shader.meta b/Assets/Colorful FX/Shaders/Frost.shader.meta new file mode 100644 index 0000000..ab68b46 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Frost.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b4d2d40f74bc7724f9722f04d5f7113b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/GaussianBlur.shader b/Assets/Colorful FX/Shaders/GaussianBlur.shader new file mode 100644 index 0000000..65b83e1 --- /dev/null +++ b/Assets/Colorful FX/Shaders/GaussianBlur.shader @@ -0,0 +1,92 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Gaussian Blur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Direction ("Direction (XY)", Vector) = (0, 0, 0, 0) + _Amount ("Blend factor (Float)", Float) = 1.0 + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Blur + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Direction; + + struct fInput + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 uv1 : TEXCOORD1; + float4 uv2 : TEXCOORD2; + }; + + fInput vert(appdata_img v) + { + fInput o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord.xy; + float2 d1 = 1.3846153846 * _Direction; + float2 d2 = 3.2307692308 * _Direction; + o.uv1 = float4(o.uv + d1, o.uv - d1); + o.uv2 = float4(o.uv + d2, o.uv - d2); + return o; + } + + half4 frag(fInput i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + half3 c = oc.rgb * 0.2270270270; + c += tex2D(_MainTex, i.uv1.xy).rgb * 0.3162162162; + c += tex2D(_MainTex, i.uv1.zw).rgb * 0.3162162162; + c += tex2D(_MainTex, i.uv2.xy).rgb * 0.0702702703; + c += tex2D(_MainTex, i.uv2.zw).rgb * 0.0702702703; + return half4(c, oc.a); + } + + ENDCG + } + + // (1) Composite if _Amount is in ]0;1[ + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + sampler2D _Blurred; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + half4 bc = tex2D(_Blurred, i.uv); + return lerp(oc, bc, _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/GaussianBlur.shader.meta b/Assets/Colorful FX/Shaders/GaussianBlur.shader.meta new file mode 100644 index 0000000..b324f55 --- /dev/null +++ b/Assets/Colorful FX/Shaders/GaussianBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f64972907dbc92b41bc72d3f358eb642 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Glitch.cginc b/Assets/Colorful FX/Shaders/Glitch.cginc new file mode 100644 index 0000000..1d1af20 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Glitch.cginc @@ -0,0 +1,52 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#include "UnityCG.cginc" +#include "./Colorful.cginc" + +sampler2D _MainTex; +float4 _Params; // x: speed, y: intensity, z: maxDisplace, w: yuv offset + +inline float offset(float x, float levels) +{ + return floor(x * levels) / levels; +} + +inline float2 offset(float2 x, float levels) +{ + return floor(x * levels) / levels; +} + +half4 frag_tearing(v2f_img i) : SV_Target +{ + float scaledTime = _Time.y * _Params.x; + float time = scaledTime - 32.0 * floor(scaledTime / 32.0); + float change = simpleNoise(offset(i.uv.yy, 16.0) + 150.0 * offset(time, 4.0)); + + float t = 5.0 * offset(time, 16.0 * change); + float vt = 0.5 * simpleNoise(offset(i.uv.yy + t, 11.0)); + vt += 0.5 * simpleNoise(offset(i.uv.yy + t, 7.0)); + vt = vt * 2.0 - 1.0; + vt = sign(vt) * saturate((abs(vt) - (1.0 - _Params.y)) / _Params.y); + + float2 texcoords = i.uv; + texcoords = saturate(texcoords + float2(_Params.z * vt, 0.0)); + + #ifdef ALLOW_FLIPPING + float tt = offset(time, 8.0); + float rnd = simpleNoise(float2(tt, tt)); + texcoords.y = (rnd > lerp(1.0, 0.975, _Params.y)) ? 1.0 - texcoords.y : texcoords.y; + #endif + + float3 color = tex2D(_MainTex, texcoords).rgb; + + #ifdef YUV_COLOR_BLEEDING + float3 yuv = RGBtoYUV(color); + yuv.y /= 1.0 - 3.0 * abs(vt) * saturate(_Params.w - vt); + yuv.z += 0.125 * vt * saturate(vt - _Params.w); + return half4(YUVtoRGB(yuv), 1.0); + #else + return half4(color, 1.0); + #endif +} diff --git a/Assets/Colorful FX/Shaders/Glitch.cginc.meta b/Assets/Colorful FX/Shaders/Glitch.cginc.meta new file mode 100644 index 0000000..563166b --- /dev/null +++ b/Assets/Colorful FX/Shaders/Glitch.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d26c63326b42604882ec66428c4124d +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Glitch.shader b/Assets/Colorful FX/Shaders/Glitch.shader new file mode 100644 index 0000000..1677ffa --- /dev/null +++ b/Assets/Colorful FX/Shaders/Glitch.shader @@ -0,0 +1,119 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Glitch" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // Interference + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #pragma target 3.0 + + sampler2D _MainTex; + float3 _Params; // x: speed, y: density, z: maxDisplace + + inline float rand(float2 seed) + { + return frac(sin(dot(seed * floor(_Time.y * _Params.x), float2(127.1, 311.7))) * 43758.5453123); + } + + inline float rand(float seed) + { + return rand(float2(seed, 1.0)); + } + + half4 frag(v2f_img i) : SV_Target + { + float2 rblock = rand(floor(i.uv * _Params.y)); + float displaceNoise = pow(rblock.x, 8.0) * pow(rblock.x, 3.0) - pow(rand(7.2341), 17.0) * _Params.z; + + float r = tex2D(_MainTex, i.uv).r; + float g = tex2D(_MainTex, i.uv + half2(displaceNoise * 0.05 * rand(7.0), 0.0)).g; + float b = tex2D(_MainTex, i.uv - half2(displaceNoise * 0.05 * rand(13.0), 0.0)).b; + + return half4(r, g, b, 1.0); + } + + ENDCG + } + + // Tearing + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_tearing + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + #include "./Glitch.cginc" + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_tearing + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + #define ALLOW_FLIPPING + #include "./Glitch.cginc" + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_tearing + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + #define YUV_COLOR_BLEEDING + #include "./Glitch.cginc" + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_tearing + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + #define ALLOW_FLIPPING + #define YUV_COLOR_BLEEDING + #include "./Glitch.cginc" + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Glitch.shader.meta b/Assets/Colorful FX/Shaders/Glitch.shader.meta new file mode 100644 index 0000000..8569d84 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Glitch.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa077ae19c4093844b27e3a70f542644 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/GradientRamp.shader b/Assets/Colorful FX/Shaders/GradientRamp.shader new file mode 100644 index 0000000..a946187 --- /dev/null +++ b/Assets/Colorful FX/Shaders/GradientRamp.shader @@ -0,0 +1,46 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Gradient Ramp" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _RampTex ("Ramp (RGB)", 2D) = "white" {} + _Amount ("Amount", Range(0.0, 1.0)) = 1.0 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler2D _RampTex; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half2 lum = luminance(color).rr; + half4 result = tex2D(_RampTex, lum); + return lerp(color, result, _Amount); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/GradientRamp.shader.meta b/Assets/Colorful FX/Shaders/GradientRamp.shader.meta new file mode 100644 index 0000000..3ba74d5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/GradientRamp.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c291a5524ced7fb47af87992cd9faf81 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/GrainyBlur.shader b/Assets/Colorful FX/Shaders/GrainyBlur.shader new file mode 100644 index 0000000..daef006 --- /dev/null +++ b/Assets/Colorful FX/Shaders/GrainyBlur.shader @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/GrainyBlur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Radius (X) Samples (Y)", Vector) = (32, 16, 0, 0) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half p = _Params.x / _ScreenParams.y; + half4 c = half4(0.0, 0.0, 0.0, 0.0); + float r = sin(dot(i.uv, half2(1233.224, 1743.335))); + half2 rv = half2(0.0, 0.0); + + for(int k = 0; k < int(_Params.y); k++) + { + r = frac(3712.65 * r + 0.61432); + rv.x = (r - 0.5) * 2.0; + r = frac(3712.65 * r + 0.61432); + rv.y = (r - 0.5) * 2.0; + c += tex2Dlod(_MainTex, half4(i.uv + rv * p, 0.0, 0.0)); + } + + return c / _Params.y; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/GrainyBlur.shader.meta b/Assets/Colorful FX/Shaders/GrainyBlur.shader.meta new file mode 100644 index 0000000..426d54b --- /dev/null +++ b/Assets/Colorful FX/Shaders/GrainyBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 750ea95b557224d4e876b95f85697a97 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Grayscale.shader b/Assets/Colorful FX/Shaders/Grayscale.shader new file mode 100644 index 0000000..1f2cd28 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Grayscale.shader @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Grayscale" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Luminance (RGB) Amount (A)", Vector) = (0.30, 0.59, 0.11, 1.0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half lum = dot(color.rgb, _Params.rgb); + half4 result = half4(lum, lum, lum, color.a); + return lerp(color, result, _Params.a); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Grayscale.shader.meta b/Assets/Colorful FX/Shaders/Grayscale.shader.meta new file mode 100644 index 0000000..4686ba7 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Grayscale.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e730ad4434e6924dbb5c4fdd20a6f16 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Halftone.shader b/Assets/Colorful FX/Shaders/Halftone.shader new file mode 100644 index 0000000..5ab8e5c --- /dev/null +++ b/Assets/Colorful FX/Shaders/Halftone.shader @@ -0,0 +1,93 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Halftone" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Scale (X) DotSize (Y) Smoothness (Z)", Vector) = (12, 1.35, 0.08) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + half2 _Center; + half4x4 _MatRot; + + half4 halftone(half2 fc, half2x2 m) + { + half2 g = floor(mul(m, fc) / _Params.x) * _Params.x; + half2 smp = mul(g + 0.5 * _Params.x, m); + half s = min(length(fc - smp) / (_Params.y * 0.5 * _Params.x), 1.0); + half4 c = RGBtoCMYK(tex2D(_MainTex, (smp + _Center) / _ScreenParams.xy)); + return c + s; + } + + half3 compute(v2f_img i) + { + half2 coord = (i.uv * _ScreenParams.xy) - _Center; + + half4 cmyk = half4( + halftone(coord, half2x2(_MatRot[0])).x, // C + halftone(coord, half2x2(_MatRot[1])).y, // M + halftone(coord, half2x2(_MatRot[2])).z, // Y + halftone(coord, half2x2(_MatRot[3])).w // K + ); + + return CMYKtoRGB(smoothstep(0.8 - _Params.z, 0.8 + _Params.z, cmyk)); + } + + half4 frag(v2f_img i) : SV_Target + { + return half4(compute(i), 1.0); + } + + half4 frag_desaturate(v2f_img i) : SV_Target + { + half3 rgb = compute(i); + half lum = luminance(rgb); + return half4(lum, lum, lum, 1.0); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (1) Desaturate + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_desaturate + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Halftone.shader.meta b/Assets/Colorful FX/Shaders/Halftone.shader.meta new file mode 100644 index 0000000..65f4c8b --- /dev/null +++ b/Assets/Colorful FX/Shaders/Halftone.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 496612e4443e0c74f82aad01c4d8e8c2 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/HueFocus.shader b/Assets/Colorful FX/Shaders/HueFocus.shader new file mode 100644 index 0000000..ecda597 --- /dev/null +++ b/Assets/Colorful FX/Shaders/HueFocus.shader @@ -0,0 +1,58 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Hue Focus" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Range ("Hue Range (X) Min (Y) Max", Vector) = (-0.16, 0.16, 0.0, 0.0) + _Params ("Hue (X) Boost (Y) Amount (Z)", Vector) = (0.0, 0.5, 1.0, 0.0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half2 _Range; + half3 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = saturate(tex2D(_MainTex, i.uv)); + + half3 target = color.rgb; + half lum = luminance(target); + half hue = RGBtoHUE(target); + + if (_Range.y > 1.0 && hue < _Range.y - 1.0) hue += 1.0; + if (_Range.x < 0.0 && hue > _Range.x + 1.0) hue -= 1.0; + + target = (hue < _Params.x) ? + lerp(lum.xxx, target, smoothstep(_Range.x, _Params.x, hue) * _Params.y) : + lerp(lum.xxx, target, (1.0 - smoothstep(_Params.x, _Range.y, hue)) * _Params.y); + + color.rgb = lerp(color.rgb, target, _Params.z); + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/HueFocus.shader.meta b/Assets/Colorful FX/Shaders/HueFocus.shader.meta new file mode 100644 index 0000000..abac8a8 --- /dev/null +++ b/Assets/Colorful FX/Shaders/HueFocus.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 552900fac0d27b6448ec836d923d985b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/HueSaturationValue.shader b/Assets/Colorful FX/Shaders/HueSaturationValue.shader new file mode 100644 index 0000000..5bc8e47 --- /dev/null +++ b/Assets/Colorful FX/Shaders/HueSaturationValue.shader @@ -0,0 +1,128 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Hue Saturation Value" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Master ("Master (HSV)", Vector) = (0, 0, 0, 0) + _Reds ("Reds (HSV)", Vector) = (0, 0, 0, 0) + _Yellows ("Yellows (HSV)", Vector) = (0, 0, 0, 0) + _Greens ("Greens (HSV)", Vector) = (0, 0, 0, 0) + _Cyans ("Cyans (HSV)", Vector) = (0, 0, 0, 0) + _Blues ("Blues (HSV)", Vector) = (0, 0, 0, 0) + _Magentas ("Magentas (HSV)", Vector) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Master; + half4 _Reds; + half4 _Yellows; + half4 _Greens; + half4 _Cyans; + half4 _Blues; + half4 _Magentas; + + half4 frag_simple(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half3 hsv = RGBtoHSV(color.rgb); + hsv.x = rot10(hsv.x + _Master.x); + hsv.y = hsv.y + _Master.y; + hsv.z = hsv.z + _Master.z; + + return half4(HSVtoRGB(hsv), color.a); + } + + half4 frag_advanced(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + // Master + half3 hsv = RGBtoHSV(color.rgb); + hsv.x = rot10(hsv.x + _Master.x); + hsv.y = hsv.y + _Master.y; + hsv.z = hsv.z + _Master.z; + + half ts = 1.0 / 360.0; + half ts60 = ts * 60.0; + half4 c15_45_75_105 = half4(15.0, 45.0, 75.0, 105.0) * ts; + half4 c135_165_195_225 = half4(135.0, 165.0, 195.0, 225.0) * ts; + half4 c255_285_315_345 = half4(255.0, 285.0, 315.0, 345.0) * ts; + + half dr, dy, dg, dc, db, dm; + + // Reds + hsv.x = rot10(hsv + ts60); + dr = saturate(invlerp(c15_45_75_105.x, c15_45_75_105.y, hsv.x)) * (1.0 - saturate(invlerp(c15_45_75_105.z, c15_45_75_105.w, hsv.x))); + hsv.x = rot10(hsv - ts60); + + // Yellow + dy = saturate(invlerp(c15_45_75_105.x, c15_45_75_105.y, hsv.x)) * (1.0 - saturate(invlerp(c15_45_75_105.z, c15_45_75_105.w, hsv.x))); + + // Greens + dg = saturate(invlerp(c15_45_75_105.z, c15_45_75_105.w, hsv.x)) * (1.0 - saturate(invlerp(c135_165_195_225.x, c135_165_195_225.y, hsv.x))); + + // Cyans + dc = saturate(invlerp(c135_165_195_225.x, c135_165_195_225.y, hsv.x)) * (1.0 - saturate(invlerp(c135_165_195_225.z, c135_165_195_225.w, hsv.x))); + + // Blues + db = saturate(invlerp(c135_165_195_225.z, c135_165_195_225.w, hsv.x)) * (1.0 - saturate(invlerp(c255_285_315_345.x, c255_285_315_345.y, hsv.x))); + + // Magentas + dm = saturate(invlerp(c255_285_315_345.x, c255_285_315_345.y, hsv.x)) * (1.0 - saturate(invlerp(c255_285_315_345.z, c255_285_315_345.w, hsv.x))); + + hsv.x = rot10(hsv.x + dr * _Reds.x + dy * _Yellows.x + dg * _Greens.x + dc * _Cyans.x + db * _Blues.x + dm * _Magentas.x); + hsv.y = hsv.y + dr * _Reds.y + dy * _Yellows.y + dg * _Greens.y + dc * _Cyans.y + db * _Blues.y + dm * _Magentas.y; + hsv.z = hsv.z + dr * _Reds.z + dy * _Yellows.z + dg * _Greens.z + dc * _Cyans.z + db * _Blues.z + dm * _Magentas.z; + + return half4(HSVtoRGB(hsv), color.a); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Simple + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_simple + #pragma fragmentoption ARB_precision_hint_fastest + #pragma glsl + #pragma exclude_renderers flash + + ENDCG + } + + // (1) Advanced + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_advanced + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + #pragma exclude_renderers flash + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/HueSaturationValue.shader.meta b/Assets/Colorful FX/Shaders/HueSaturationValue.shader.meta new file mode 100644 index 0000000..928b436 --- /dev/null +++ b/Assets/Colorful FX/Shaders/HueSaturationValue.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0b332438591134c46ada56177c061e99 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Kuwahara.cginc b/Assets/Colorful FX/Shaders/Kuwahara.cginc new file mode 100644 index 0000000..0f118d5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Kuwahara.cginc @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +#ifndef RADIUS +#define RADIUS 3 +#endif + +#define H3Z half3(0.0, 0.0, 0.0) + +sampler2D _MainTex; +half2 _PSize; + +inline void loop(int j0, int j1, int i0, int i1, half2 uv, out half3 m, out half3 s) +{ + for (int j = j0; j <= j1; j++) + { + for (int i = i0; i <= i1; i++) + { + half3 c = tex2Dlod(_MainTex, half4(uv + half2(i, j) * _PSize, 0.0, 0.0)).rgb; + m += c; + s += c * c; + } + } +} + +half4 frag(v2f_img i) : SV_Target +{ + half3 m[4] = { H3Z, H3Z, H3Z, H3Z }; + half3 s[4] = { H3Z, H3Z, H3Z, H3Z }; + + loop(-RADIUS, 0, -RADIUS, 0, i.uv, m[0], s[0]); + loop(-RADIUS, 0, 0, RADIUS, i.uv, m[1], s[1]); + loop( 0, RADIUS, 0, RADIUS, i.uv, m[2], s[2]); + loop( 0, RADIUS, -RADIUS, 0, i.uv, m[3], s[3]); + + half n = half((RADIUS + 1) * (RADIUS + 1)); + half minSigma2 = 1e+2; + half3 color = H3Z; + + for (int k = 0; k < 4; k++) + { + m[k] /= n; + s[k] = abs(s[k] / n - m[k] * m[k]); + + half sigma2 = s[k].r + s[k].g + s[k].b; + + if (sigma2 < minSigma2) + { + minSigma2 = sigma2; + color = m[k]; + } + } + + return half4(color, 1.0); +} diff --git a/Assets/Colorful FX/Shaders/Kuwahara.cginc.meta b/Assets/Colorful FX/Shaders/Kuwahara.cginc.meta new file mode 100644 index 0000000..b93ba30 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Kuwahara.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c4bcbfc6f723f247813a4d1cb959cd2 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Kuwahara.shader b/Assets/Colorful FX/Shaders/Kuwahara.shader new file mode 100644 index 0000000..bceac05 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Kuwahara.shader @@ -0,0 +1,77 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Kuwahara" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _PSize ("Pixel Size (XY)", Vector) = (0,0,0,0) + } + + CGINCLUDE + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + #include "UnityCG.cginc" + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + #define RADIUS 1 + #include "./Kuwahara.cginc" + ENDCG + } + + Pass + { + CGPROGRAM + #define RADIUS 2 + #include "./Kuwahara.cginc" + ENDCG + } + + Pass + { + CGPROGRAM + #define RADIUS 3 + #include "./Kuwahara.cginc" + ENDCG + } + + Pass + { + CGPROGRAM + #define RADIUS 4 + #include "./Kuwahara.cginc" + ENDCG + } + + Pass + { + CGPROGRAM + #define RADIUS 5 + #include "./Kuwahara.cginc" + ENDCG + } + + Pass + { + CGPROGRAM + #define RADIUS 6 + #include "./Kuwahara.cginc" + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Kuwahara.shader.meta b/Assets/Colorful FX/Shaders/Kuwahara.shader.meta new file mode 100644 index 0000000..25e279f --- /dev/null +++ b/Assets/Colorful FX/Shaders/Kuwahara.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: be6f87201eefa9b4a81cb9d12d55f76b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Led.shader b/Assets/Colorful FX/Shaders/Led.shader new file mode 100644 index 0000000..ce5284c --- /dev/null +++ b/Assets/Colorful FX/Shaders/Led.shader @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Led" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Scale (X) Ratio (Y) Brightness (Z) Shape (W)", Vector) = (80, 1, 1, 1.5) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = pixelate(_MainTex, i.uv, _Params.x, _Params.y) * _Params.z; + half2 coord = i.uv * half2(_Params.x, _Params.x / _Params.y); + half2 mv = abs(sin(coord * PI)) * _Params.w; + half s = mv.x * mv.y; + half c = step(s, 1.0); + color = ((1 - c) * color) + ((color * s) * c); + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Led.shader.meta b/Assets/Colorful FX/Shaders/Led.shader.meta new file mode 100644 index 0000000..7e91eab --- /dev/null +++ b/Assets/Colorful FX/Shaders/Led.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 119bab05aa029d148a8ed3483cb1cd62 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/LensDistortionBlur.shader b/Assets/Colorful FX/Shaders/LensDistortionBlur.shader new file mode 100644 index 0000000..4137006 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LensDistortionBlur.shader @@ -0,0 +1,48 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/LensDistortionBlur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Samples (X) Distortion (Y) Cubic Distortion (Z) Scale (W)", Vector) = (0, 0, 0, 0) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = half4(0.0, 0.0, 0.0, 0.0); + + for (int k = 0; k < _Params.x; k++) + color += tex2Dlod(_MainTex, half4(barrelDistortion(i.uv, k * _Params.y, k * _Params.z, _Params.w), 0.0, 0.0)); + + return color / _Params.x; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/LensDistortionBlur.shader.meta b/Assets/Colorful FX/Shaders/LensDistortionBlur.shader.meta new file mode 100644 index 0000000..959505c --- /dev/null +++ b/Assets/Colorful FX/Shaders/LensDistortionBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 27362376390dd5b4a84e636ebeb50eb8 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Letterbox.shader b/Assets/Colorful FX/Shaders/Letterbox.shader new file mode 100644 index 0000000..74e31f5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Letterbox.shader @@ -0,0 +1,71 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Letterbox" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _FillColor ("Color (RGB) Opacity (A)", Color) = (0, 0, 0, 1) + _Offsets ("Top/Left (X) Bottom/Right (Y)", Vector) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _FillColor; + half2 _Offsets; + + half4 frag_letter(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half cond = saturate(step(i.uv.y, _Offsets.x) + step(_Offsets.y, i.uv.y)); + color.rgb = lerp(color.rgb, _FillColor.rgb, cond * _FillColor.a); + return color; + } + + half4 frag_pillar(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half cond = saturate(step(i.uv.x, _Offsets.x) + step(_Offsets.y, i.uv.x)); + color.rgb = lerp(color.rgb, _FillColor.rgb, cond * _FillColor.a); + return color; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Letterboxing + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_letter + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Pillarboxing + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_pillar + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Letterbox.shader.meta b/Assets/Colorful FX/Shaders/Letterbox.shader.meta new file mode 100644 index 0000000..ddce192 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Letterbox.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d492310e63ec9264b892cb8ae4896275 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Levels.shader b/Assets/Colorful FX/Shaders/Levels.shader new file mode 100644 index 0000000..9926319 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Levels.shader @@ -0,0 +1,50 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Levels" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _InputMin ("Input Black", Vector) = (0, 0, 0, 1) + _InputMax ("Input White", Vector) = (1, 1, 1, 1) + _InputGamma ("Input Gamma", Vector) = (1, 1, 1, 1) + _OutputMin ("Output Black", Vector) = (0, 0, 0, 1) + _OutputMax ("Output White", Vector) = (1, 1, 1, 1) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _InputMin; + half4 _InputMax; + half4 _InputGamma; + half4 _OutputMin; + half4 _OutputMax; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + color = lerp(_OutputMin, _OutputMax, pow(min(max(color - _InputMin, half4(0.0, 0.0, 0.0, 0.0)) / (_InputMax - _InputMin), half4(1.0, 1.0, 1.0, 1.0)), 1.0 / _InputGamma)); + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Levels.shader.meta b/Assets/Colorful FX/Shaders/Levels.shader.meta new file mode 100644 index 0000000..0847298 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Levels.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d484a9bd98669a4bae065117cfefa62 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/LookupFilter.shader b/Assets/Colorful FX/Shaders/LookupFilter.shader new file mode 100644 index 0000000..5cd8d30 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter.shader @@ -0,0 +1,100 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Lookup Filter (Deprecated)" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _LookupTex ("Lookup (RGB)", 2D) = "white" {} + _Amount ("Amount (Float)", Range(0.0, 1.0)) = 1.0 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler2D _LookupTex; + half _Amount; + + half4 LUT(half4 color) + { + half blue = color.b * 63.0; + + half2 quad1 = half2(0.0, 0.0); + quad1.y = floor(floor(blue) * 0.125); + quad1.x = floor(blue) - quad1.y * 8.0; + + half2 quad2 = half2(0.0, 0.0); + quad2.y = floor(ceil(blue) * 0.125); + quad2.x = ceil(blue) - quad2.y * 8.0; + + half c1 = 0.0009765625 + (0.123046875 * color.r); + half c2 = 0.0009765625 + (0.123046875 * color.g); + + half2 texPos1 = half2(0.0, 0.0); + texPos1.x = quad1.x * 0.125 + c1; + texPos1.y = -(quad1.y * 0.125 + c2); + + half2 texPos2 = half2(0.0, 0.0); + texPos2.x = quad2.x * 0.125 + c1; + texPos2.y = -(quad2.y * 0.125 + c2); + + half4 newColor = lerp(tex2D(_LookupTex, texPos1), + tex2D(_LookupTex, texPos2), + frac(blue)); + newColor.a = color.a; + return lerp(color, newColor, _Amount); + } + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + return LUT(saturate(color)); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + half4 color = sRGB(tex2D(_MainTex, i.uv)); + return Linear(LUT(saturate(color))); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Gamma + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/LookupFilter.shader.meta b/Assets/Colorful FX/Shaders/LookupFilter.shader.meta new file mode 100644 index 0000000..c74f753 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37ae258c1f4d15140b45318637b0c532 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/LookupFilter2D.shader b/Assets/Colorful FX/Shaders/LookupFilter2D.shader new file mode 100644 index 0000000..e687fa9 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter2D.shader @@ -0,0 +1,225 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Lookup Filter 2D" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _LookupTex ("Lookup (RGB)", 2D) = "white" {} + _Params1 ("Scale (XY) Offset (Z)", Vector) = (0, 0, 0, 0) + _Params2 ("Amount (Z) PixelSize (W)", Vector) = (1, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler2D _LookupTex; + + half3 _Params1; + half2 _Params2; + + half3 internal_tex3d(sampler2D tex, half3 uv) + { + uv.y = 1.0 - uv.y; + uv.z *= _Params1.z; + float shift = floor(uv.z); + uv.xy = uv.xy * _Params1.z * _Params1.xy + 0.5 * _Params1.xy; + uv.x += shift * _Params1.y; + uv.xyz = lerp(tex2D(tex, uv.xy).rgb, tex2D(tex, uv.xy + float2(_Params1.y, 0)).rgb, uv.z - shift); + return uv; + } + + half3 internal_tex3d_nn(sampler2D tex, half3 uv) + { + uv.y = 1.0 - uv.y; + uv.z *= _Params1.z; + float shift = floor(uv.z); + uv.xy = uv.xy * _Params1.z * _Params1.xy + 0.5 * _Params1.xy; + uv.x += shift * _Params1.y; + uv.xyz = lerp(tex2D(tex, uv.xy).rgb, tex2D(tex, uv.xy + float2(_Params1.y, 0)).rgb, step(0.5, uv.z - shift)); + return uv; + } + + inline half4 lookup_gamma(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = internal_tex3d(_LookupTex, c.rgb); + return lerp(c, o, _Params2.x); + } + + inline half4 lookup_linear(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = sRGB(c.rgb); + o.rgb = internal_tex3d(_LookupTex, o.rgb); + return lerp(c, Linear(o), _Params2.x); + } + + inline half4 lookup_gamma_nn(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = internal_tex3d_nn(_LookupTex, c.rgb); + return lerp(c, o, _Params2.x); + } + + inline half4 lookup_linear_nn(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = sRGB(c.rgb); + o.rgb = internal_tex3d_nn(_LookupTex, o.rgb); + return lerp(c, Linear(o), _Params2.x); + } + + inline half2 px(half2 uv) + { + half2 div = half2(_ScreenParams.x * _Params2.y / _ScreenParams.y, _Params2.y); + return floor(uv * div) / div; + } + + half4 frag(v2f_img i) : SV_Target + { + return lookup_gamma(i.uv); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + return lookup_linear(i.uv); + } + + half4 frag_px(v2f_img i) : SV_Target + { + return lookup_gamma(px(i.uv)); + } + + half4 frag_linear_px(v2f_img i) : SV_Target + { + return lookup_linear(px(i.uv)); + } + + half4 frag_nn(v2f_img i) : SV_Target + { + return lookup_gamma_nn(i.uv); + } + + half4 frag_linear_nn(v2f_img i) : SV_Target + { + return lookup_linear_nn(i.uv); + } + + half4 frag_px_nn(v2f_img i) : SV_Target + { + return lookup_gamma_nn(px(i.uv)); + } + + half4 frag_linear_px_nn(v2f_img i) : SV_Target + { + return lookup_linear_nn(px(i.uv)); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // ------------------------------------------------------------------ + // Bilinear + + // (0) Gamma + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_linear + ENDCG + } + + // (2) Gamma pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_px + ENDCG + } + + // (3) Linear pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_linear_px + #pragma target 3.0 + ENDCG + } + + // ------------------------------------------------------------------ + // Nearest Neighbor + + // (4) Gamma + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_nn + ENDCG + } + + // (5) Linear + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_linear_nn + ENDCG + } + + // (6) Gamma pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_px_nn + ENDCG + } + + // (7) Linear pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragmentoption ARB_precision_hint_fastest + #pragma fragment frag_linear_px_nn + #pragma target 3.0 + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/LookupFilter2D.shader.meta b/Assets/Colorful FX/Shaders/LookupFilter2D.shader.meta new file mode 100644 index 0000000..c300206 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter2D.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b5b3d4fe7139a7141be9b1475ea1127f +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/LookupFilter3D.shader b/Assets/Colorful FX/Shaders/LookupFilter3D.shader new file mode 100644 index 0000000..85da244 --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter3D.shader @@ -0,0 +1,121 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Lookup Filter 3D" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _LookupTex ("Lookup (RGB 3D)", 3D) = "white" {} + _Params ("Scale (X) Offset (Y) Amount (Z) PixelSize (W)", Vector) = (0, 0, 1, 0) + } + + CGINCLUDE + + #pragma exclude_renderers gles flash + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler3D _LookupTex; + + half4 _Params; + + inline half4 lookup_gamma(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = tex3D(_LookupTex, c.rgb * _Params.x + _Params.y).rgb; + return lerp(c, o, _Params.z); + } + + inline half4 lookup_linear(half2 uv) + { + half4 c = saturate(tex2D(_MainTex, uv)); + half4 o = c; + o.rgb = sRGB(c.rgb); + o.rgb = tex3D(_LookupTex, o.rgb * _Params.x + _Params.y).rgb; + return lerp(c, Linear(o), _Params.z); + } + + inline half2 px(half2 uv) + { + half2 div = half2(_ScreenParams.x * _Params.w / _ScreenParams.y, _Params.w); + return floor(uv * div) / div; + } + + half4 frag(v2f_img i) : SV_Target + { + return lookup_gamma(i.uv); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + return lookup_linear(i.uv); + } + + half4 frag_px(v2f_img i) : SV_Target + { + return lookup_gamma(px(i.uv)); + } + + half4 frag_linear_px(v2f_img i) : SV_Target + { + return lookup_linear(px(i.uv)); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Gamma + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_linear + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + ENDCG + } + + // (2) Gamma pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_px + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + ENDCG + } + + // (3) Linear pixelized + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag_linear_px + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/LookupFilter3D.shader.meta b/Assets/Colorful FX/Shaders/LookupFilter3D.shader.meta new file mode 100644 index 0000000..57ef47f --- /dev/null +++ b/Assets/Colorful FX/Shaders/LookupFilter3D.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c356d31be0868c94d8c3eb943516cb8a +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Negative.shader b/Assets/Colorful FX/Shaders/Negative.shader new file mode 100644 index 0000000..755ae64 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Negative.shader @@ -0,0 +1,69 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Negative" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Amount ("Amount (Float)", Range(0.0, 1.0)) = 1.0 + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + half4 nc = 1.0 - oc; + return lerp(oc, nc, _Amount); + } + + half4 frag_linear(v2f_img i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + oc = pow(oc, 0.454545); + half4 nc = 1.0 - oc; + nc = pow(nc, 2.2); + return lerp(oc, nc, _Amount); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Gamma + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Linear + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_linear + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Negative.shader.meta b/Assets/Colorful FX/Shaders/Negative.shader.meta new file mode 100644 index 0000000..dab7d22 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Negative.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d5f7df60d1ccbe44b611aec3822b801 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Noise.shader b/Assets/Colorful FX/Shaders/Noise.shader new file mode 100644 index 0000000..24c87b3 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Noise.shader @@ -0,0 +1,116 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Noise" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Seed (X) Strength (Y) Lum Contribution (Z)", Vector) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half3 _Params; + + half4 frag_mono(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + float n = simpleNoise(i.uv + _Params.x) * 2.0; + return lerp(color, color * n, _Params.y); + } + + half4 frag_colored(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + float n = simpleNoise_fracLess(i.uv + _Params.x); + float nr = frac(n) * 2.0; + float ng = frac(n * 1.2154) * 2.0; + float nb = frac(n * 1.3453) * 2.0; + float na = frac(n * 1.3647) * 2.0; + return lerp(color, color * half4(nr, ng, nb, na), _Params.y); + } + + half4 frag_mono_lum(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + float n = simpleNoise(i.uv + _Params.x) * 2.0; + half lum = luminance(color.rgb); + return lerp(color, color * n, _Params.y * (1.0 - lerp(0.0, lum, _Params.z))); + } + + half4 frag_colored_lum(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + float n = simpleNoise_fracLess(i.uv + _Params.x); + float nr = frac(n) * 2.0; + float ng = frac(n * 1.2154) * 2.0; + float nb = frac(n * 1.3453) * 2.0; + float na = frac(n * 1.3647) * 2.0; + half lum = luminance(color.rgb); + return lerp(color, color * half4(nr, ng, nb, na), _Params.y * (1.0 - lerp(0.0, lum, _Params.z))); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Monochrome + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_mono + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Colored + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_colored + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (2) Monochrome - Lum Contrib + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_mono_lum + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (3) Colored - Lum Contrib + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_colored_lum + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Noise.shader.meta b/Assets/Colorful FX/Shaders/Noise.shader.meta new file mode 100644 index 0000000..8309377 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Noise.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 89ef061699807394a9d296d8ada383cb +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/PhotoFilter.shader b/Assets/Colorful FX/Shaders/PhotoFilter.shader new file mode 100644 index 0000000..8b6bdf9 --- /dev/null +++ b/Assets/Colorful FX/Shaders/PhotoFilter.shader @@ -0,0 +1,52 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Photo Filter" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _RGB ("Levels", Color) = (1, 0.5, 0.2) + _Density ("Density", Range(0.0, 1.0)) = 0.35 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _RGB; + half _Density; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half lum = luminance(color.rgb); + half4 filter = _RGB; + filter = lerp(half4(0.0, 0.0, 0.0, 0.0), filter, saturate(lum * 2.0)); + filter = lerp(filter, half4(1.0, 1.0, 1.0, 1.0), saturate(lum - 0.5) * 2.0); + filter = lerp(color, filter, saturate(lum * _Density)); + filter.a = color.a; + + return filter; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/PhotoFilter.shader.meta b/Assets/Colorful FX/Shaders/PhotoFilter.shader.meta new file mode 100644 index 0000000..ede5775 --- /dev/null +++ b/Assets/Colorful FX/Shaders/PhotoFilter.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4cf7d0874af43d489d668369b513fd1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/PixelMatrix.shader b/Assets/Colorful FX/Shaders/PixelMatrix.shader new file mode 100644 index 0000000..8e51f31 --- /dev/null +++ b/Assets/Colorful FX/Shaders/PixelMatrix.shader @@ -0,0 +1,84 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/PixelMatrix" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Size (X) Red Offset (Y) Green Offset (Z) Brightness (W)", Vector) = (9, 3, 3, 1.4) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 compute(v2f_img i) + { + half2 coord = i.uv * _ScreenParams.xy; + half2 p = floor(coord.xy / _Params.x) * _Params.x; + int2 offset = int2(mod(coord, _Params.x)); + + half3 pixel = tex2D(_MainTex, p / _ScreenParams.xy).rgb; + half3 color = half3(0.0, 0.0, 0.0); + + if (offset.x < _Params.y) + color.r = pixel.r; + else if (offset.x < _Params.z) + color.g = pixel.g; + else + color.b = pixel.b; + + return half4(color, offset.y); + } + + half4 frag(v2f_img i) : SV_Target + { + half4 c = compute(i); + return half4(c.rgb * _Params.w, 1.0); + } + + half4 frag_border(v2f_img i) : SV_Target + { + half4 c = compute(i); + c.rgb *= 1.0 - step(_Params.x - 1.0, c.w); + return half4(c.rgb * _Params.w, 1.0); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_border + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/PixelMatrix.shader.meta b/Assets/Colorful FX/Shaders/PixelMatrix.shader.meta new file mode 100644 index 0000000..3a57f12 --- /dev/null +++ b/Assets/Colorful FX/Shaders/PixelMatrix.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 58e2980581a9e9b45a6bf05fb06dab5d +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Pixelate.shader b/Assets/Colorful FX/Shaders/Pixelate.shader new file mode 100644 index 0000000..1b3ac2a --- /dev/null +++ b/Assets/Colorful FX/Shaders/Pixelate.shader @@ -0,0 +1,41 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Pixelate" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Scale (X) Ratio (Y)", Vector) = (80, 1, 0, 0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half2 _Params; + + half4 frag(v2f_img i) : SV_Target + { + return pixelate(_MainTex, i.uv, _Params.x, _Params.y); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Pixelate.shader.meta b/Assets/Colorful FX/Shaders/Pixelate.shader.meta new file mode 100644 index 0000000..cdea32a --- /dev/null +++ b/Assets/Colorful FX/Shaders/Pixelate.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 728ffb8a91a4a0a498b4795a6e1d78a1 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Posterize.shader b/Assets/Colorful FX/Shaders/Posterize.shader new file mode 100644 index 0000000..637e804 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Posterize.shader @@ -0,0 +1,43 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Posterize" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Levels (X) Amount (Y)", Vector) = (4, 1, 0, 0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half4 posterized = floor(color * _Params.x) / _Params.x; + return lerp(color, posterized, _Params.y); + } + + ENDCG + } + } + + FallBack off +} + diff --git a/Assets/Colorful FX/Shaders/Posterize.shader.meta b/Assets/Colorful FX/Shaders/Posterize.shader.meta new file mode 100644 index 0000000..22d8b85 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Posterize.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5675fc85342982e4aa19f32d906706e4 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/RGBSplit.shader b/Assets/Colorful FX/Shaders/RGBSplit.shader new file mode 100644 index 0000000..b113e82 --- /dev/null +++ b/Assets/Colorful FX/Shaders/RGBSplit.shader @@ -0,0 +1,49 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/RGB Split" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Amount (X) Angle Sin (Y) Angle Cos (Z)", Vector) = (0, 0, 0, 0) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half3 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half2 coords = i.uv; + half d = distance(coords, half2(0.5, 0.5)); + half amount = _Params.x * d * 2; + half2 offset = amount * half2(_Params.z, _Params.y); + half cr = tex2D(_MainTex, coords + offset).r; + half2 cga = tex2D(_MainTex, coords).ga; + half cb = tex2D(_MainTex, coords - offset).b; + + // Stupid hack to make it work with d3d9 (CG compiler bug ?) + return half4(cr + 0.0000001, cga.x + 0.0000002, cb + 0.0000003, cga.y); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/RGBSplit.shader.meta b/Assets/Colorful FX/Shaders/RGBSplit.shader.meta new file mode 100644 index 0000000..024adf7 --- /dev/null +++ b/Assets/Colorful FX/Shaders/RGBSplit.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d2e55392c5688b41a28c877a8c935c6 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/RadialBlur.shader b/Assets/Colorful FX/Shaders/RadialBlur.shader new file mode 100644 index 0000000..ea89e11 --- /dev/null +++ b/Assets/Colorful FX/Shaders/RadialBlur.shader @@ -0,0 +1,94 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Radial Blur" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Center ("Center Point", Vector) = (0.5, 0.5, 0.0, 0.0) + _Params ("Strength (X) Samples (Y) Sharpness (Z) Darkness (W)", Vector) = (0.1, 10, 0.4, 0.35) + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Center; + half4 _Params; + + half4 blur(half2 uv, half samples, half amount) + { + half2 coord = uv - _Center; + half4 color = half4(0.0, 0.0, 0.0, 0.0); + half scale; + half factor = samples - 1; + + for (int i = 0; i < samples; i++) + { + scale = 1.0 + amount * (i / factor); + color += tex2Dlod(_MainTex, half4(coord * scale + _Center, 0.0, 0.0)); + } + + color /= samples; + return color; + } + + half vignette(half2 uv) + { + half v = 1.0; + half d = distance(uv, _Center); + v *= smoothstep(0.8, _Params.z * 0.799, d * (_Params.w + _Params.z)); + return 1.0 - v; + } + + half4 frag(v2f_img i) : SV_Target + { + return blur(i.uv, _Params.y, _Params.x); + } + + half4 frag_vignette(v2f_img i) : SV_Target + { + return blur(i.uv, _Params.y, _Params.x * vignette(i.uv)); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) No vignette + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + + ENDCG + } + + // (1) Vignette + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_vignette + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #pragma glsl + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/RadialBlur.shader.meta b/Assets/Colorful FX/Shaders/RadialBlur.shader.meta new file mode 100644 index 0000000..75d6424 --- /dev/null +++ b/Assets/Colorful FX/Shaders/RadialBlur.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 93166fbefe89e6b45afb840b49fc59ae +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/SCurveContrast.shader b/Assets/Colorful FX/Shaders/SCurveContrast.shader new file mode 100644 index 0000000..29d8ff5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/SCurveContrast.shader @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/SCurveContrast" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Red ("Steepness (X) Gamma (Y)", Vector) = (0, 0, 0, 0) + _Green ("Steepness (X) Gamma (Y)", Vector) = (0, 0, 0, 0) + _Blue ("Steepness (X) Gamma (Y)", Vector) = (0, 0, 0, 0) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Red; + half2 _Green; + half2 _Blue; + + half curve(half o, half2 params) + { + half g = pow(2.0, params.x) * 0.5; + half c = (o < 0.5) ? pow(o, params.x) * g : 1.0 - pow(1.0 - o, params.x) * g; + return pow(c, params.y); + } + + half4 frag(v2f_img i) : SV_Target + { + half4 color = saturate(tex2D(_MainTex, i.uv)); + half r = curve(color.r, _Red); + half g = curve(color.g, _Green); + half b = curve(color.b, _Blue); + return half4(r, g, b, color.a); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/SCurveContrast.shader.meta b/Assets/Colorful FX/Shaders/SCurveContrast.shader.meta new file mode 100644 index 0000000..fab50b9 --- /dev/null +++ b/Assets/Colorful FX/Shaders/SCurveContrast.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb3f4da25a5c9184697fb2b1c1ea8c68 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader b/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader new file mode 100644 index 0000000..b68e6bf --- /dev/null +++ b/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader @@ -0,0 +1,82 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Shadows Midtones Highlights" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Shadows ("Shadows (RGB)", Vector) = (1, 1, 1, 1) + _Midtones ("Midtones (RGB)", Vector) = (1, 1, 1, 1) + _Highlights ("Highlights (RGB)", Vector) = (1, 1, 1, 1) + _Amount ("Amount (Float)", Range(0, 1)) = 1 + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _Shadows; // Lift | Offset + half4 _Midtones; // Gamma + half4 _Highlights; // Gain | Slope + half _Amount; + + half4 frag_lgg(v2f_img i) : SV_Target + { + half3 oc = tex2D(_MainTex, i.uv).rgb; + half3 color = oc + (_Shadows.rgb * 0.5 - 0.5) * (1.0 - oc); + color = saturate(color); + color *= _Highlights.rgb; + color = pow(color, 1.0 / _Midtones.rgb); + color = saturate(color); + return half4(lerp(oc, color, _Amount), 1.0); + } + + half4 frag_cdl(v2f_img i) : SV_Target + { + half3 oc = tex2D(_MainTex, i.uv).rgb; + half3 color = oc * _Highlights.rgb; + color = saturate(color); + color = color + (_Shadows.rgb * 0.5 - 0.5); + color = saturate(color); + color = pow(color, 1.0 / _Midtones.rgb); + color = saturate(color); + return half4(lerp(oc, color, _Amount), 1.0); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) LGG + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_lgg + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) CDL + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_cdl + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader.meta b/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader.meta new file mode 100644 index 0000000..acd6c27 --- /dev/null +++ b/Assets/Colorful FX/Shaders/ShadowsMidtonesHighlights.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1c2bf98023ec1d49a324ffb4746f895 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Sharpen.shader b/Assets/Colorful FX/Shaders/Sharpen.shader new file mode 100644 index 0000000..bb92010 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Sharpen.shader @@ -0,0 +1,86 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Sharpen" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Strength (X) Clamp (Y) Pixel Size (ZW)", Vector) = (0.60, 0.05, 1, 1) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 frag_typeA(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half2 p = _Params.zw; + half2 p_h = p * 0.5; + half4 blur = tex2D(_MainTex, i.uv + half2( p_h.x, -p.y)); + blur += tex2D(_MainTex, i.uv + half2( -p.x, -p_h.y)); + blur += tex2D(_MainTex, i.uv + half2( p.x, p_h.y)); + blur += tex2D(_MainTex, i.uv + half2(-p_h.x, p.y)); + blur *= 0.25; + + half4 lumaStrength = half4(0.222, 0.707, 0.071, 0.0) * _Params.x * 0.666; + half4 sharp = color - blur; + color += clamp(dot(sharp, lumaStrength), -_Params.y, _Params.y); + + return color; + } + + half4 frag_typeB(v2f_img i) : SV_Target + { + half2 p = _Params.zw; + half4 blur = tex2D( _MainTex, i.uv + half2(-p.x, -p.y) * 1.5); + blur += tex2D(_MainTex, i.uv + half2( p.x, -p.y) * 1.5); + blur += tex2D(_MainTex, i.uv + half2(-p.x, p.y) * 1.5); + blur += tex2D(_MainTex, i.uv + half2( p.x, p.y) * 1.5); + blur *= 0.25; + + half4 center = tex2D(_MainTex, i.uv); + return center + (center - blur) * _Params.x; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Type A + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_typeA + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Type B + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_typeB + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Sharpen.shader.meta b/Assets/Colorful FX/Shaders/Sharpen.shader.meta new file mode 100644 index 0000000..c93fb68 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Sharpen.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b4f0a5d3f2f4d3d4e80600230efdfe68 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/SmartSaturation.shader b/Assets/Colorful FX/Shaders/SmartSaturation.shader new file mode 100644 index 0000000..8be3510 --- /dev/null +++ b/Assets/Colorful FX/Shaders/SmartSaturation.shader @@ -0,0 +1,47 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Smart Saturation" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Curve ("Curve Texture (A)", 2D) = "white" {} + _Boost ("Saturation Boost (Float)", Float) = 1.0 + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + sampler2D _Curve; + half _Boost; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half3 hsv = RGBtoHSV(color.rgb); + half s = tex2D(_Curve, half2(hsv.y, 0.5)).a * 2.0 * hsv.y; + color.rgb = HSVtoRGB(half3(hsv.x, s * _Boost, hsv.z)); + return color; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/SmartSaturation.shader.meta b/Assets/Colorful FX/Shaders/SmartSaturation.shader.meta new file mode 100644 index 0000000..81b696d --- /dev/null +++ b/Assets/Colorful FX/Shaders/SmartSaturation.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a13a4f89750fabf45a06af8796a9bbe6 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Strokes.shader b/Assets/Colorful FX/Shaders/Strokes.shader new file mode 100644 index 0000000..570e7d5 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Strokes.shader @@ -0,0 +1,195 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Strokes" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params1 ("Amplitude (X) Frequency (Y) Scaling (Z) Max Thickness (W)", Vector) = (0, 0, 0, 0) + _Params2 ("Red Luminance (X) Green Luminance (Y) Blue Luminance (Z)", Vector) = (0, 0, 0, 0) + _Params3 ("Threshold (X) Harshness (Y)", Vector) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params1; + half3 _Params2; + half2 _Params3; + + void get_stroke(half2 uv, out half4 color, out half stroke) + { + half2 screenUV = uv * _ScreenParams.xy; + half2 xy = screenUV / _ScreenParams.yy; + + half3 pattern[6] = { + half3(-0.707, 0.707, 3.0), + half3( 0.0, 1.0, 0.6), + half3( 0.0, 1.0, 0.5), + half3( 1.0, 0.0, 0.4), + half3( 1.0, 0.0, 0.3), + half3( 0.0, 1.0, 0.2) + }; + + color = tex2D(_MainTex, half2(screenUV.x / _ScreenParams.x, xy.y)); + stroke = 1.0; + + for(int i = 0; i < 6; i++) + { + half2 pt = half2( + xy.x * pattern[i].x - xy.y * pattern[i].y, + xy.x * pattern[i].y + xy.y * pattern[i].x + ); + + half thickness = _Params1.w * half(i + 1.0); + half dist = mod(pt.y + thickness * 0.5 - sin(pt.x * _Params1.y) * _Params1.x, _Params1.z); + half lum = dot(color.rgb, _Params2.xyz); + + if(dist < thickness && lum < _Params3.x - 0.12 * half(i)) + { + half k = pattern[i].z - _Params3.y; + half x = (thickness - dist) / thickness; + stroke = min(1.0 - 0.5 / k + abs((x - 0.5) / k), stroke); + } + } + } + + half4 frag_black_white(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + return half4(stroke.xxx, 1.0); + } + + half4 frag_white_black(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + stroke = 1.0 - stroke; + return half4(stroke.xxx, 1.0); + } + + half4 frag_color_white(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + half one_minus_stroke = 1.0 - stroke; + return half4(stroke.xxx, 1.0) + half4(one_minus_stroke.xxx, 1.0) * color; + } + + half4 frag_color_black(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + stroke = 1.0 - stroke; + return half4(stroke.xxx, 1.0) * color; + } + + half4 frag_white_color(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + half one_minus_stroke = 1.0 - stroke; + return half4(one_minus_stroke.xxx, 1.0) + half4(stroke.xxx, 1.0) * color; + } + + half4 frag_black_color(v2f_img i) : SV_Target + { + half4 color; half stroke; + get_stroke(i.uv, color, stroke); + return half4(stroke.xxx, 1.0) * color; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Black and white + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_black_white + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (1) White and black + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_white_black + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (2) Color and white + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_color_white + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (3) Color and black + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_color_black + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (4) White and color + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_white_color + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + + // (5) Black and color + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_black_color + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Strokes.shader.meta b/Assets/Colorful FX/Shaders/Strokes.shader.meta new file mode 100644 index 0000000..83b93f7 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Strokes.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fcfe9bb61d41be54db37021f6228a5a2 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/TVVignette.shader b/Assets/Colorful FX/Shaders/TVVignette.shader new file mode 100644 index 0000000..20ef81e --- /dev/null +++ b/Assets/Colorful FX/Shaders/TVVignette.shader @@ -0,0 +1,42 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/TV Vignette" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Size (X) Offset (Y)", Vector) = (0, 0, 0, 0) + } + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half2 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half2 uv = -i.uv * i.uv + i.uv; + half v = saturate(uv.x * uv.y * _Params.x + _Params.y); + return v * tex2D(_MainTex, i.uv); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/TVVignette.shader.meta b/Assets/Colorful FX/Shaders/TVVignette.shader.meta new file mode 100644 index 0000000..d32d9fc --- /dev/null +++ b/Assets/Colorful FX/Shaders/TVVignette.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3bdb37fb89bbc244eb7dc17f946b34e5 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Technicolor.shader b/Assets/Colorful FX/Shaders/Technicolor.shader new file mode 100644 index 0000000..42bd20c --- /dev/null +++ b/Assets/Colorful FX/Shaders/Technicolor.shader @@ -0,0 +1,60 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Technicolor" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Exposure ("Exposure (Float)", Range(0.0, 8.0)) = 4.0 + _Balance ("Channel Balance (RGB)", Vector) = (0.75, 0.75, 0.75, 1.0) + _Amount ("Amount (Float)", Range(0.0, 1.0)) = 0.5 + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #include "UnityCG.cginc" + + sampler2D _MainTex; + half _Exposure; + half4 _Balance; + half _Amount; + + half4 frag(v2f_img i) : SV_Target + { + half3 color = tex2D(_MainTex, i.uv).rgb; + + half3 balance = 1.0 / (_Balance.rgb * _Exposure); + half2 rmul = color.rg * balance.r; + half2 gmul = color.rg * balance.g; + half2 bmul = color.rb * balance.b; + + half rneg = dot(half2(1.05, 0.62), rmul); + half gneg = dot(half2(0.30, 1.0), gmul); + half bneg = dot(half2(1.0, 1.05), bmul); + + half3 rout = rneg.rrr + half3(0.0, 1.3, 1.0); + half3 gout = gneg.rrr + half3(1.0, 0.0, 1.05); + half3 bout = bneg.rrr + half3(1.6, 1.6, 0.05); + + half3 result = rout * gout * bout; + return half4(lerp(color, result, _Amount), 1.0); + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Technicolor.shader.meta b/Assets/Colorful FX/Shaders/Technicolor.shader.meta new file mode 100644 index 0000000..2c96f5a --- /dev/null +++ b/Assets/Colorful FX/Shaders/Technicolor.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4c81e0318e9055a45a291da31fdd8edd +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Threshold.shader b/Assets/Colorful FX/Shaders/Threshold.shader new file mode 100644 index 0000000..bce8b5d --- /dev/null +++ b/Assets/Colorful FX/Shaders/Threshold.shader @@ -0,0 +1,71 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Threshold" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Threshold ("Threshold", Range(0.0, 1.0)) = 0.5 + _Range ("Noise Range", Range(0.0, 0.5)) = 0.2 + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half _Threshold; + half _Range; + + half4 frag(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half s = step(luminance(color.rgb), _Threshold); + color = lerp(half4(1.0, 1.0, 1.0, 1.0), half4(0.0, 0.0, 0.0, 0.0), s); + return color; + } + + half4 frag_noise(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + half r = frac(sin(dot(i.uv, half2(12.9898, 78.233))) * 43758.5453) * _Range - _Range / 2.0; + half s = step(luminance(color.rgb), _Threshold + r); + color = lerp(half4(1.0, 1.0, 1.0, 1.0), half4(0.0, 0.0, 0.0, 0.0), s); + return color; + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_noise + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Threshold.shader.meta b/Assets/Colorful FX/Shaders/Threshold.shader.meta new file mode 100644 index 0000000..52fc896 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Threshold.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 601d83f113eed6c4e9ee285c9f69b171 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Vibrance.shader b/Assets/Colorful FX/Shaders/Vibrance.shader new file mode 100644 index 0000000..9cf50cd --- /dev/null +++ b/Assets/Colorful FX/Shaders/Vibrance.shader @@ -0,0 +1,83 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Vibrance" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Amount ("Amount", Float) = 0 + _Channels ("Channels", Vector) = (1.0, 1.0, 1.0, 0.0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half _Amount; + half4 _Channels; + + half4 frag_simple(v2f_img i) : SV_Target + { + half4 color = tex2D(_MainTex, i.uv); + + half cMax = max(max(color.r, color.g), color.b); + half amount = (cMax - luminance(color.rgb)) * (-3.0 * _Amount); + color.rgb = lerp(color.rgb, half3(cMax, cMax, cMax), amount); + + return color; + } + + half4 frag_advanced(v2f_img i) : SV_Target + { + half4 oc = tex2D(_MainTex, i.uv); + half3 color = oc.rgb; + + half3 coeff = _Channels.rgb * _Amount; + half lum = luminance(color); + half sat = max(color.r, max(color.g, color.b)) - min(color.r, min(color.g, color.b)); + color = lerp(half3(lum, lum, lum), color, (1.0 + (coeff * (1.0 - (sign(coeff) * sat))))); + + return half4(color, oc.a); + } + + ENDCG + + SubShader + { + // (0) Simple + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_simple + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Advanced + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_advanced + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Vibrance.shader.meta b/Assets/Colorful FX/Shaders/Vibrance.shader.meta new file mode 100644 index 0000000..e9b76f0 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Vibrance.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb0e827449f1caa4bbd6dd91a05d702b +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/WaveDistortion.shader b/Assets/Colorful FX/Shaders/WaveDistortion.shader new file mode 100644 index 0000000..c8df4dc --- /dev/null +++ b/Assets/Colorful FX/Shaders/WaveDistortion.shader @@ -0,0 +1,56 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Wave Distortion" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Params ("Amplitude (X) Waves (Y) ColorGlitch (Z) Phase (W)", Vector) = (0.6, 5, 0.35, 0.35) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + #pragma exclude_renderers flash + #pragma target 3.0 + #include "UnityCG.cginc" + #include "./Colorful.cginc" + + sampler2D _MainTex; + half4 _Params; + + half4 frag(v2f_img i) : SV_Target + { + half invPhase = 1.0 - _Params.w; + + half2 o = i.uv * sin(_Params.w * _Params.x) - half2(0.5, 0.5); + half theta = acos(dot(o, half2(1.0, 0.0))) * _Params.y; + half disp = (exp(cos(theta)) - 2.0 * cos(4.0 * theta) + pow(sin((2.0 * theta - PI) / 24.0), 5.0)) / 10.0; + + half strDisp = _Params.w * disp; + half r = tex2D(_MainTex, i.uv + strDisp * (1.0 - _Params.z)).r; + half g = tex2D(_MainTex, i.uv + strDisp).g; + half b = tex2D(_MainTex, i.uv + strDisp * (1.0 + _Params.z)).b; + half4 srcColor = half4(r, g, b, 1.0); + half4 dstColor = tex2D(_MainTex, i.uv + invPhase * disp); + + return srcColor * invPhase + dstColor * _Params.w; + } + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/WaveDistortion.shader.meta b/Assets/Colorful FX/Shaders/WaveDistortion.shader.meta new file mode 100644 index 0000000..ee305cf --- /dev/null +++ b/Assets/Colorful FX/Shaders/WaveDistortion.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a43350e669209cb4098e9297891a1ffd +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/WhiteBalance.shader b/Assets/Colorful FX/Shaders/WhiteBalance.shader new file mode 100644 index 0000000..de4b50a --- /dev/null +++ b/Assets/Colorful FX/Shaders/WhiteBalance.shader @@ -0,0 +1,100 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/White Balance" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _White ("White Color (RGB)", Color) = (0.5, 0.5, 0.5, 1.0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _White; + + #define EPSILON 0.000001 + + half4 frag_simple(v2f_img i) : SV_Target + { + half3 color = tex2D(_MainTex, i.uv).rgb; + + half3x3 scale = half3x3( + 0.5 / (_White.r + EPSILON), 0, 0, + 0, 0.5 / (_White.g + EPSILON), 0, + 0, 0, 0.5 / (_White.b + EPSILON) + ); + + color = mul(scale, color); + return half4(saturate(color), 1.0); + } + + half4 frag_complex(v2f_img i) : SV_Target + { + half3 color = tex2D(_MainTex, i.uv).rgb; + + half3x3 RGBtoLMS = half3x3( + 0.3811,0.5783,0.0402, + 0.1967,0.7244,0.0782, + 0.0241,0.1288,0.8444 + ); + + half3x3 LMStoRGB = half3x3( + 4.4679, -3.5873, 0.1193, + -1.2186, 2.3809, -0.1624, + 0.0497, -0.2439, 1.2045 + ); + + half3 white = mul(RGBtoLMS, _White.rgb); + + half3x3 scale = half3x3( + 0.5 / (white.r + EPSILON), 0, 0, + 0, 0.5 / (white.g + EPSILON), 0, + 0, 0, 0.5 / (white.b + EPSILON) + ); + + half3 original = mul(RGBtoLMS, color); + half3 balanced = mul(scale, original); + color.rgb = mul(LMStoRGB, balanced); + + return half4(saturate(color), 1.0); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Simple + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_simple + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Complex + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_complex + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/WhiteBalance.shader.meta b/Assets/Colorful FX/Shaders/WhiteBalance.shader.meta new file mode 100644 index 0000000..dbe2b01 --- /dev/null +++ b/Assets/Colorful FX/Shaders/WhiteBalance.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36a3aa3217d66c645a4665ff1490cb28 +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Colorful FX/Shaders/Wiggle.shader b/Assets/Colorful FX/Shaders/Wiggle.shader new file mode 100644 index 0000000..075123b --- /dev/null +++ b/Assets/Colorful FX/Shaders/Wiggle.shader @@ -0,0 +1,78 @@ +// Colorful FX - Unity Asset +// Copyright (c) 2015 - Thomas Hourdel +// http://www.thomashourdel.com + +Shader "Hidden/Colorful/Wiggle" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Timer ("Timer", Float) = 0.0 + _Scale ("Scale", Float) = 12.0 + _Params ("Frequency (X) Amplitude (Y) Timer (Z)", Vector) = (0, 0, 0, 0) + } + + CGINCLUDE + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half3 _Params; + + half4 frag_simple(v2f_img i) : SV_Target + { + half2 t = i.uv; + t.x += sin(_Params.z + t.x * _Params.x) * _Params.y; + t.y += cos(_Params.z + t.y * _Params.x) * _Params.y - _Params.y; + return tex2D(_MainTex, t); + } + + half2 shift(half2 uv) + { + half2 freq = _Params.x * (uv + _Params.z); + return cos(half2(cos(freq.x - freq.y) * cos(freq.y), sin(freq.x + freq.y) * sin(freq.y))); + } + + half4 frag_complex(v2f_img i) : SV_Target + { + half2 p = shift(i.uv); + half2 q = shift(i.uv + 1.0); + half2 t = i.uv + _Params.y * (p - q); + return tex2D(_MainTex, t); + } + + ENDCG + + SubShader + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + // (0) Simple + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_simple + #pragma fragmentoption ARB_precision_hint_fastest + + ENDCG + } + + // (1) Complex + Pass + { + CGPROGRAM + + #pragma vertex vert_img + #pragma fragment frag_complex + #pragma fragmentoption ARB_precision_hint_fastest + #pragma target 3.0 + + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Colorful FX/Shaders/Wiggle.shader.meta b/Assets/Colorful FX/Shaders/Wiggle.shader.meta new file mode 100644 index 0000000..51506a1 --- /dev/null +++ b/Assets/Colorful FX/Shaders/Wiggle.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 22fe62a5d4de91a4995c1363cbc2492e +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Control Mapper/Data.meta b/Assets/Control Mapper/Data.meta new file mode 100644 index 0000000..dd236b5 --- /dev/null +++ b/Assets/Control Mapper/Data.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 194ecf2936abaae4baa43a7a8eb0796f +folderAsset: yes +timeCreated: 1510961639 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Control Mapper/Data/EditorSettings.asset b/Assets/Control Mapper/Data/EditorSettings.asset new file mode 100644 index 0000000..5c7ebb7 --- /dev/null +++ b/Assets/Control Mapper/Data/EditorSettings.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1822101463, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: EditorSettings + m_EditorClassIdentifier: + programVersion1: 1 + programVersion2: 1 + programVersion3: 7 + programVersion4: 8 + dataVersion: 1 diff --git a/Assets/Control Mapper/Data/EditorSettings.asset.meta b/Assets/Control Mapper/Data/EditorSettings.asset.meta new file mode 100644 index 0000000..cec546e --- /dev/null +++ b/Assets/Control Mapper/Data/EditorSettings.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 387272021120ec5498e3f4810cbd225e +timeCreated: 1510961639 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Control Mapper/DevTools.meta b/Assets/Control Mapper/DevTools.meta new file mode 100644 index 0000000..db52ba1 --- /dev/null +++ b/Assets/Control Mapper/DevTools.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 34c7bef5c84872341b7be0322b72cc64 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/DevTools/DebugInformation.prefab b/Assets/Control Mapper/DevTools/DebugInformation.prefab new file mode 100644 index 0000000..c81e989 --- /dev/null +++ b/Assets/Control Mapper/DevTools/DebugInformation.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: DebugInformation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1559198062, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/DevTools/DebugInformation.prefab.meta b/Assets/Control Mapper/DevTools/DebugInformation.prefab.meta new file mode 100644 index 0000000..8081ec2 --- /dev/null +++ b/Assets/Control Mapper/DevTools/DebugInformation.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b1bb11887b0e1ce49aa3433d94d1900b +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab new file mode 100644 index 0000000..a3cf31f --- /dev/null +++ b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 132: {fileID: 13200000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: JoystickElementIdentifier + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -567314509, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!132 &13200000 +GUIText: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 3 + m_Text: + m_Anchor: 6 + m_Alignment: 0 + m_PixelOffset: {x: 0, y: 0} + m_LineSpacing: 1 + m_TabSize: 4 + m_Font: {fileID: 0} + m_Material: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Color: + serializedVersion: 2 + rgba: 4294967295 + m_PixelCorrect: 1 + m_RichText: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab.meta b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab.meta new file mode 100644 index 0000000..16d58e7 --- /dev/null +++ b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 9b25557305ecedf448b4c43532aac32e +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity new file mode 100644 index 0000000..4fd26a6 --- /dev/null +++ b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity @@ -0,0 +1,484 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: .25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: .5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 0} + m_ObjectHideFlags: 0 +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + m_LightProbes: {fileID: 0} + m_Lightmaps: [] + m_LightmapsMode: 1 + m_BakedColorSpace: 0 + m_UseDualLightmapsInForward: 0 + m_LightmapEditorSettings: + m_Resolution: 50 + m_LastUsedResolution: 0 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_BounceBoost: 1 + m_BounceIntensity: 1 + m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} + m_SkyLightIntensity: 0 + m_Quality: 0 + m_Bounces: 1 + m_FinalGatherRays: 1000 + m_FinalGatherContrastThreshold: .0500000007 + m_FinalGatherGradientThreshold: 0 + m_FinalGatherInterpolationPoints: 15 + m_AOAmount: 0 + m_AOMaxDistance: .100000001 + m_AOContrast: 1 + m_LODSurfaceMappingDistance: 1 + m_Padding: 0 + m_TextureCompression: 0 + m_LockAtlas: 0 +--- !u!196 &5 +NavMeshSettings: + m_ObjectHideFlags: 0 + m_BuildSettings: + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + widthInaccuracy: 16.666666 + heightInaccuracy: 10 + m_NavMesh: {fileID: 0} +--- !u!1 &84910976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 84910981} + - 20: {fileID: 84910980} + - 92: {fileID: 84910979} + - 124: {fileID: 84910978} + - 81: {fileID: 84910977} + 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 &84910977 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!124 &84910978 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!92 &84910979 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!20 &84910980 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + 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_HDR: 0 + m_OcclusionCulling: 1 +--- !u!4 &84910981 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + 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} +--- !u!1 &311556634 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 311556636} + - 114: {fileID: 311556635} + m_Layer: 0 + m_Name: Rewired Input Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &311556635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 311556634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 581b3e3c96df0ef42aef16b63b27b87f, type: 3} + m_Name: + m_EditorClassIdentifier: + _dontDestroyOnLoad: 1 + _userData: + configVars: + updateLoop: 1 + alwaysUseUnityInput: 0 + windowsStandalonePrimaryInputSource: 0 + osx_primaryInputSource: 0 + linux_primaryInputSource: 0 + windowsUWP_primaryInputSource: 0 + xboxOne_primaryInputSource: 0 + ps4_primaryInputSource: 0 + useXInput: 1 + useNativeMouse: 1 + useEnhancedDeviceSupport: 1 + windowsStandalone_useSteamRawInputControllerWorkaround: 0 + osxStandalone_useEnhancedDeviceSupport: 1 + android_supportUnknownGamepads: 1 + ps4_assignJoysticksByPS4JoyId: 1 + useSteamControllerSupport: 1 + platformVars_allPlatforms: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windowsStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_linuxStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_osxStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windows8Store: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windowsUWP: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_iOS: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_tvOS: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_android: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_ps3: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_ps4: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_psVita: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_xbox360: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_xboxOne: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_wii: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_wiiu: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_webGL: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + maxJoysticksPerPlayer: 1 + autoAssignJoysticks: 1 + assignJoysticksToPlayingPlayersOnly: 0 + distributeJoysticksEvenly: 1 + reassignJoystickToPreviousOwnerOnReconnect: 1 + defaultJoystickAxis2DDeadZoneType: 1 + force4WayHats: 0 + editorSettings: + exportConsts_useParentClass: 0 + exportConsts_parentClassName: RewiredConsts + exportConsts_useNamespace: 1 + exportConsts_namespace: RewiredConsts + exportConsts_actions: 1 + exportConsts_actionsClassName: Action + exportConsts_actionsIncludeActionCategory: 0 + exportConsts_mapCategories: 1 + exportConsts_mapCategoriesClassName: Category + exportConsts_layouts: 1 + exportConsts_layoutsClassName: Layout + exportConsts_players: 1 + exportConsts_playersClassName: Player + exportConsts_customControllers: 1 + exportConsts_customControllersClassName: CustomController + exportConsts_customControllersAxesClassName: Axis + exportConsts_customControllersButtonsClassName: Button + players: + - _id: 9999999 + _name: System + _descriptiveName: System + _startPlaying: 1 + _defaultJoystickMaps: [] + _defaultMouseMaps: [] + _defaultKeyboardMaps: [] + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _assignKeyboardOnStart: 1 + _excludeFromControllerAutoAssignment: 1 + actions: [] + actionCategories: + - _name: Default + _descriptiveName: Default + _tag: + _id: 0 + _userAssignable: 1 + actionCategoryMap: + list: + - categoryId: 0 + actionIds: + inputBehaviors: + - _id: 0 + _name: Default + _joystickAxisSensitivity: 1 + _digitalAxisSimulation: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonShortPressTime: .25 + _buttonShortPressExpiresIn: 0 + _buttonLongPressTime: 1 + _buttonLongPressExpiresIn: 0 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + mapCategories: + - _name: Default + _descriptiveName: Default + _tag: + _id: 0 + _userAssignable: 1 + _checkConflictsWithAllCategories: 1 + _checkConflictsCategoryIds: + joystickLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + keyboardLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + mouseLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + customControllerLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + joystickMaps: [] + keyboardMaps: [] + mouseMaps: [] + customControllerMaps: [] + customControllers: [] + playerIdCounter: 1 + actionIdCounter: 0 + actionCategoryIdCounter: 1 + inputBehaviorIdCounter: 1 + mapCategoryIdCounter: 1 + joystickLayoutIdCounter: 1 + keyboardLayoutIdCounter: 1 + mouseLayoutIdCounter: 1 + customControllerLayoutIdCounter: 1 + joystickMapIdCounter: 0 + keyboardMapIdCounter: 0 + mouseMapIdCounter: 0 + customControllerMapIdCounter: 0 + customControllerIdCounter: 0 + _controllerDataFiles: {fileID: 11400000, guid: d21d2b20df8369642b76aafbb2576ba7, + type: 2} +--- !u!4 &311556636 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 311556634} + 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} +--- !u!1 &845884272 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + m_PrefabInternal: {fileID: 1431304253} + serializedVersion: 4 + m_Component: + - 4: {fileID: 845884275} + - 132: {fileID: 845884274} + - 114: {fileID: 845884273} + m_Layer: 0 + m_Name: JoystickElementIdentifier + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &845884273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400000, guid: 9b25557305ecedf448b4c43532aac32e, + type: 2} + m_PrefabInternal: {fileID: 1431304253} + m_GameObject: {fileID: 845884272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -567314509, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!132 &845884274 +GUIText: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 13200000, guid: 9b25557305ecedf448b4c43532aac32e, + type: 2} + m_PrefabInternal: {fileID: 1431304253} + m_GameObject: {fileID: 845884272} + m_Enabled: 1 + serializedVersion: 3 + m_Text: + m_Anchor: 6 + m_Alignment: 0 + m_PixelOffset: {x: 0, y: 0} + m_LineSpacing: 1 + m_TabSize: 4 + m_Font: {fileID: 0} + m_Material: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Color: + serializedVersion: 2 + rgba: 4294967295 + m_PixelCorrect: 1 + m_RichText: 1 +--- !u!4 &845884275 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + m_PrefabInternal: {fileID: 1431304253} + m_GameObject: {fileID: 845884272} + 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} +--- !u!1001 &1431304253 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 9b25557305ecedf448b4c43532aac32e, type: 2} + m_RootGameObject: {fileID: 845884272} + m_IsPrefabParent: 0 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity.meta b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity.meta new file mode 100644 index 0000000..ffecb8a --- /dev/null +++ b/Assets/Control Mapper/DevTools/JoystickElementIdentifier.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f1add3d573270314f9989babd5c4a3c1 +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab new file mode 100644 index 0000000..0f790c2 --- /dev/null +++ b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 132: {fileID: 13200000} + - 114: {fileID: 11400000} + m_Layer: 0 + m_Name: UnityJoystickElementIdentifier + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + 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} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1558239198, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!132 &13200000 +GUIText: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + serializedVersion: 3 + m_Text: + m_Anchor: 6 + m_Alignment: 0 + m_PixelOffset: {x: 0, y: 0} + m_LineSpacing: 1 + m_TabSize: 4 + m_Font: {fileID: 0} + m_Material: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Color: + serializedVersion: 2 + rgba: 4294967295 + m_PixelCorrect: 1 + m_RichText: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab.meta b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab.meta new file mode 100644 index 0000000..8d5b2ca --- /dev/null +++ b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.prefab.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 9431ba5b04ae3934a8cde0abd640ad65 +labels: +- Input +- Joysticks +- Controllers +- Rewired +- Hotplugging +- Keyboard +- Mouse +- Touch +- InputManager +- Control +- Gamepad +- Controller +- Joystick +- Xbox360 +- XInput +- DirectInput +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity new file mode 100644 index 0000000..1191700 --- /dev/null +++ b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity @@ -0,0 +1,484 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: .25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: .5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 0} + m_ObjectHideFlags: 0 +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + m_LightProbes: {fileID: 0} + m_Lightmaps: [] + m_LightmapsMode: 1 + m_BakedColorSpace: 0 + m_UseDualLightmapsInForward: 0 + m_LightmapEditorSettings: + m_Resolution: 50 + m_LastUsedResolution: 0 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_BounceBoost: 1 + m_BounceIntensity: 1 + m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} + m_SkyLightIntensity: 0 + m_Quality: 0 + m_Bounces: 1 + m_FinalGatherRays: 1000 + m_FinalGatherContrastThreshold: .0500000007 + m_FinalGatherGradientThreshold: 0 + m_FinalGatherInterpolationPoints: 15 + m_AOAmount: 0 + m_AOMaxDistance: .100000001 + m_AOContrast: 1 + m_LODSurfaceMappingDistance: 1 + m_Padding: 0 + m_TextureCompression: 0 + m_LockAtlas: 0 +--- !u!196 &5 +NavMeshSettings: + m_ObjectHideFlags: 0 + m_BuildSettings: + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + widthInaccuracy: 16.666666 + heightInaccuracy: 10 + m_NavMesh: {fileID: 0} +--- !u!1 &84910976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 84910981} + - 20: {fileID: 84910980} + - 92: {fileID: 84910979} + - 124: {fileID: 84910978} + - 81: {fileID: 84910977} + 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 &84910977 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!124 &84910978 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!92 &84910979 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 +--- !u!20 &84910980 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + 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_HDR: 0 + m_OcclusionCulling: 1 +--- !u!4 &84910981 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 84910976} + 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} +--- !u!1001 &282959991 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + m_RootGameObject: {fileID: 1800550507} + m_IsPrefabParent: 0 + m_IsExploded: 1 +--- !u!1 &311556634 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 311556636} + - 114: {fileID: 311556635} + m_Layer: 0 + m_Name: Rewired Input Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &311556635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 311556634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 581b3e3c96df0ef42aef16b63b27b87f, type: 3} + m_Name: + m_EditorClassIdentifier: + _dontDestroyOnLoad: 1 + _userData: + configVars: + updateLoop: 1 + alwaysUseUnityInput: 0 + windowsStandalonePrimaryInputSource: 0 + osx_primaryInputSource: 0 + linux_primaryInputSource: 0 + windowsUWP_primaryInputSource: 0 + xboxOne_primaryInputSource: 0 + ps4_primaryInputSource: 0 + useXInput: 1 + useNativeMouse: 1 + useEnhancedDeviceSupport: 1 + windowsStandalone_useSteamRawInputControllerWorkaround: 0 + osxStandalone_useEnhancedDeviceSupport: 1 + android_supportUnknownGamepads: 1 + ps4_assignJoysticksByPS4JoyId: 1 + useSteamControllerSupport: 1 + platformVars_allPlatforms: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windowsStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_linuxStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_osxStandalone: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windows8Store: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_windowsUWP: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_iOS: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_tvOS: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_android: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_ps3: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_ps4: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_psVita: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_xbox360: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_xboxOne: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_wii: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_wiiu: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + platformVars_webGL: + disableKeyboard: 0 + ignoreInputWhenAppNotInFocus: 1 + maxJoysticksPerPlayer: 1 + autoAssignJoysticks: 1 + assignJoysticksToPlayingPlayersOnly: 0 + distributeJoysticksEvenly: 1 + reassignJoystickToPreviousOwnerOnReconnect: 1 + defaultJoystickAxis2DDeadZoneType: 1 + force4WayHats: 0 + editorSettings: + exportConsts_useParentClass: 0 + exportConsts_parentClassName: RewiredConsts + exportConsts_useNamespace: 1 + exportConsts_namespace: RewiredConsts + exportConsts_actions: 1 + exportConsts_actionsClassName: Action + exportConsts_actionsIncludeActionCategory: 0 + exportConsts_mapCategories: 1 + exportConsts_mapCategoriesClassName: Category + exportConsts_layouts: 1 + exportConsts_layoutsClassName: Layout + exportConsts_players: 1 + exportConsts_playersClassName: Player + exportConsts_customControllers: 1 + exportConsts_customControllersClassName: CustomController + exportConsts_customControllersAxesClassName: Axis + exportConsts_customControllersButtonsClassName: Button + players: + - _id: 9999999 + _name: System + _descriptiveName: System + _startPlaying: 1 + _defaultJoystickMaps: [] + _defaultMouseMaps: [] + _defaultKeyboardMaps: [] + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _assignKeyboardOnStart: 1 + _excludeFromControllerAutoAssignment: 1 + actions: [] + actionCategories: + - _name: Default + _descriptiveName: Default + _tag: + _id: 0 + _userAssignable: 1 + actionCategoryMap: + list: + - categoryId: 0 + actionIds: + inputBehaviors: + - _id: 0 + _name: Default + _joystickAxisSensitivity: 1 + _digitalAxisSimulation: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonShortPressTime: .25 + _buttonShortPressExpiresIn: 0 + _buttonLongPressTime: 1 + _buttonLongPressExpiresIn: 0 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + mapCategories: + - _name: Default + _descriptiveName: Default + _tag: + _id: 0 + _userAssignable: 1 + _checkConflictsWithAllCategories: 1 + _checkConflictsCategoryIds: + joystickLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + keyboardLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + mouseLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + customControllerLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + joystickMaps: [] + keyboardMaps: [] + mouseMaps: [] + customControllerMaps: [] + customControllers: [] + playerIdCounter: 1 + actionIdCounter: 0 + actionCategoryIdCounter: 1 + inputBehaviorIdCounter: 1 + mapCategoryIdCounter: 1 + joystickLayoutIdCounter: 1 + keyboardLayoutIdCounter: 1 + mouseLayoutIdCounter: 1 + customControllerLayoutIdCounter: 1 + joystickMapIdCounter: 0 + keyboardMapIdCounter: 0 + mouseMapIdCounter: 0 + customControllerMapIdCounter: 0 + customControllerIdCounter: 0 + _controllerDataFiles: {fileID: 11400000, guid: d21d2b20df8369642b76aafbb2576ba7, + type: 2} +--- !u!4 &311556636 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 311556634} + 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} +--- !u!1 &1800550507 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 100000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + m_PrefabInternal: {fileID: 282959991} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1800550510} + - 132: {fileID: 1800550509} + - 114: {fileID: 1800550508} + m_Layer: 0 + m_Name: UnityJoystickElementIdentifier + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1800550508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, + type: 2} + m_PrefabInternal: {fileID: 282959991} + m_GameObject: {fileID: 1800550507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1558239198, guid: 09c9b883b79ef864a99683bb36c5776d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!132 &1800550509 +GUIText: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 13200000, guid: 9431ba5b04ae3934a8cde0abd640ad65, + type: 2} + m_PrefabInternal: {fileID: 282959991} + m_GameObject: {fileID: 1800550507} + m_Enabled: 1 + serializedVersion: 3 + m_Text: + m_Anchor: 6 + m_Alignment: 0 + m_PixelOffset: {x: 0, y: 0} + m_LineSpacing: 1 + m_TabSize: 4 + m_Font: {fileID: 0} + m_Material: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Color: + serializedVersion: 2 + rgba: 4294967295 + m_PixelCorrect: 1 + m_RichText: 1 +--- !u!4 &1800550510 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 400000, guid: 9431ba5b04ae3934a8cde0abd640ad65, type: 2} + m_PrefabInternal: {fileID: 282959991} + m_GameObject: {fileID: 1800550507} + 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} diff --git a/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity.meta b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity.meta new file mode 100644 index 0000000..8221f36 --- /dev/null +++ b/Assets/Control Mapper/DevTools/UnityJoystickElementIdentifier.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 616b862448906a846bd333011203531d +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras.meta b/Assets/Control Mapper/Extras.meta new file mode 100644 index 0000000..e50600f --- /dev/null +++ b/Assets/Control Mapper/Extras.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: eb9b22b87ca2b534792f4e2bfe82d906 +folderAsset: yes +timeCreated: 1510961687 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Control Mapper/Extras/ControlMapper.meta b/Assets/Control Mapper/Extras/ControlMapper.meta new file mode 100644 index 0000000..c90c3ab --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: bcb78a741c8b9434ab0e20947fd8a8e8 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples.meta new file mode 100644 index 0000000..50820b9 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d4ebbee129e87524aa8f5ce8adf0c27a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo.meta new file mode 100644 index 0000000..a6a9cf5 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 15aeebade1a2ad64ca05bf993aa08972 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity new file mode 100644 index 0000000..8ce9bb3 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity @@ -0,0 +1,6469 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: .25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: .5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 0} + m_ObjectHideFlags: 0 +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + m_LightProbes: {fileID: 0} + m_Lightmaps: [] + m_LightmapsMode: 1 + m_BakedColorSpace: 0 + m_UseDualLightmapsInForward: 0 + m_LightmapEditorSettings: + m_Resolution: 50 + m_LastUsedResolution: 0 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_BounceBoost: 1 + m_BounceIntensity: 1 + m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} + m_SkyLightIntensity: 0 + m_Quality: 0 + m_Bounces: 1 + m_FinalGatherRays: 1000 + m_FinalGatherContrastThreshold: .0500000007 + m_FinalGatherGradientThreshold: 0 + m_FinalGatherInterpolationPoints: 15 + m_AOAmount: 0 + m_AOMaxDistance: .100000001 + m_AOContrast: 1 + m_LODSurfaceMappingDistance: 1 + m_Padding: 0 + m_TextureCompression: 0 + m_LockAtlas: 0 +--- !u!196 &5 +NavMeshSettings: + m_ObjectHideFlags: 0 + m_BuildSettings: + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + widthInaccuracy: 16.666666 + heightInaccuracy: 10 + m_NavMesh: {fileID: 0} +--- !u!1 &18005608 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 18005609} + - 222: {fileID: 18005615} + - 114: {fileID: 18005612} + - 114: {fileID: 18005610} + - 114: {fileID: 18005611} + - 114: {fileID: 18005614} + - 114: {fileID: 18005613} + m_Layer: 5 + m_Name: AssignControllerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &18005609 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + 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: 493964942} + m_Father: {fileID: 1502626196} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 395, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &18005610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452012, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 18005612} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 18005611} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &18005611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452008, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: AssignController + intData: 0 + text: {fileID: 493964943} +--- !u!114 &18005612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452010, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &18005613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452004, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &18005614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452006, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 18005610} + - _themeClass: button + _component: {fileID: 493964943} +--- !u!222 &18005615 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} +--- !u!1 &59820434 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 59820435} + - 114: {fileID: 59820436} + m_Layer: 5 + m_Name: SettingAndMapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &59820435 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 59820434} + 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: 146075467} + - {fileID: 1267516142} + m_Father: {fileID: 1092334083} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 492, y: -154} + m_SizeDelta: {x: 984, y: 36} + m_Pivot: {x: .5, y: .5} +--- !u!114 &59820436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 59820434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &80787450 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 80787451} + - 222: {fileID: 80787453} + - 114: {fileID: 80787452} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &80787451 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} + 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: 902123681} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &80787452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Open +--- !u!222 &80787453 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} +--- !u!1 &88645608 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 88645609} + - 114: {fileID: 88645610} + m_Layer: 5 + m_Name: InputGridContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &88645609 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 88645608} + 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: 623222666} + - {fileID: 1980042852} + m_Father: {fileID: 1224995810} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 0, y: 1} +--- !u!114 &88645610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 88645608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!1 &146075466 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 146075467} + - 114: {fileID: 146075470} + - 114: {fileID: 146075469} + - 114: {fileID: 146075468} + m_Layer: 5 + m_Name: SettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &146075467 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + 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: 809986499} + - {fileID: 1226677880} + m_Father: {fileID: 59820435} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &146075468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 809986500} + _content: {fileID: 1226677880} +--- !u!114 &146075469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: 0 +--- !u!114 &146075470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &177266417 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 177266418} + - 114: {fileID: 177266419} + - 114: {fileID: 177266420} + m_Layer: 5 + m_Name: WindowButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &177266418 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + 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: 392545911} + - {fileID: 486734857} + m_Father: {fileID: 1092334083} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &177266419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452000, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &177266420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445496, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &202236612 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 202236613} + - 114: {fileID: 202236614} + m_Layer: 5 + m_Name: ControllerNameWrapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202236613 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 202236612} + 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: 1416174899} + m_Father: {fileID: 1434556793} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 133.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!114 &202236614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 202236612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &300333304 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 300333305} + - 114: {fileID: 300333307} + - 114: {fileID: 300333306} + m_Layer: 5 + m_Name: InputGridInnerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &300333305 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + 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: 429171595} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!114 &300333306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 679ba094c265ca5468c417c33c76603c, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 429171600} +--- !u!114 &300333307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &339685135 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 339685136} + - 114: {fileID: 339685137} + m_Layer: 5 + m_Name: HeadersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &339685136 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 339685135} + 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: 1980042852} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &339685137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452044, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 339685135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 40 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &392545910 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 392545911} + - 222: {fileID: 392545916} + - 114: {fileID: 392545914} + - 114: {fileID: 392545912} + - 114: {fileID: 392545913} + - 114: {fileID: 392545915} + - 114: {fileID: 392545918} + - 114: {fileID: 392545917} + m_Layer: 5 + m_Name: DoneButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &392545911 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + 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: 2013114687} + m_Father: {fileID: 177266418} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 142.748093, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &392545912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 486734858} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 392545914} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 392545913} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &392545913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: Done + intData: 0 + text: {fileID: 2013114688} +--- !u!114 &392545914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &392545915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 392545912} + - _themeClass: button + _component: {fileID: 2013114688} +--- !u!222 &392545916 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} +--- !u!114 &392545917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445494, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &392545918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11422530, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &429171594 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 429171595} + - 114: {fileID: 429171600} + - 222: {fileID: 429171599} + - 114: {fileID: 429171598} + - 114: {fileID: 429171597} + m_Layer: 5 + m_Name: ScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &429171595 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + 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: 300333305} + m_Father: {fileID: 1980042852} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -50} + m_SizeDelta: {x: 0, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &429171597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452022, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &429171598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452020, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &429171599 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} +--- !u!114 &429171600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452018, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 300333305} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: .100000001 + m_Inertia: 1 + m_DecelerationRate: .135000005 + m_ScrollSensitivity: 50 + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 623222667} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &459804799 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 195596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 459804800} + - 222: {fileID: 459804803} + - 114: {fileID: 459804801} + - 114: {fileID: 459804802} + m_Layer: 5 + m_Name: ControllerLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &459804800 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22495596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + 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: 1434556793} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &459804801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495594, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Controller:' +--- !u!114 &459804802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495592, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 459804801} +--- !u!222 &459804803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22295596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} +--- !u!1 &462349629 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 4: {fileID: 462349630} + - 114: {fileID: 462349631} + m_Layer: 5 + m_Name: ControlMapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &462349630 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 462349629} + 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: 1704911778} + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!114 &462349631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 462349629} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edac79059a45d244a8050315593a7e9e, type: 3} + m_Name: + m_EditorClassIdentifier: + _rewiredInputManager: {fileID: 1842252933} + _openOnStart: 0 + _keyboardMapDefaultLayout: 0 + _mouseMapDefaultLayout: 0 + _joystickMapDefaultLayout: 0 + _mappingSets: + - _mapCategoryId: 0 + _actionListMode: 0 + _actionCategoryIds: 00000000 + _actionIds: + - _mapCategoryId: 2 + _actionListMode: 0 + _actionCategoryIds: 04000000 + _actionIds: + - _mapCategoryId: 5 + _actionListMode: 0 + _actionCategoryIds: 02000000 + _actionIds: + _showPlayers: 1 + _showControllers: 1 + _showKeyboard: 1 + _showMouse: 1 + _maxControllersPerPlayer: 1 + _showActionCategoryLabels: 0 + _keyboardInputFieldCount: 2 + _mouseInputFieldCount: 1 + _controllerInputFieldCount: 1 + _allowElementAssignmentConflicts: 0 + _actionLabelWidth: 200 + _keyboardColMaxWidth: 360 + _mouseColMaxWidth: 200 + _controllerColMaxWidth: 200 + _inputRowHeight: 40 + _inputColumnSpacing: 40 + _inputRowCategorySpacing: 20 + _invertToggleWidth: 40 + _defaultWindowWidth: 500 + _defaultWindowHeight: 400 + _controllerAssignmentTimeout: 5 + _preInputAssignmentTimeout: 5 + _inputAssignmentTimeout: 5 + _axisCalibrationTimeout: 5 + _ignoreMouseXAxisAssignment: 1 + _ignoreMouseYAxisAssignment: 1 + _screenToggleAction: 21 + _screenOpenAction: -1 + _screenCloseAction: -1 + _universalCancelAction: 22 + _universalCancelClosesScreen: 1 + _showInputBehaviorSettings: 1 + _inputBehaviorSettings: + - _inputBehaviorId: 2 + _showJoystickAxisSensitivity: 1 + _showMouseXYAxisSensitivity: 0 + _labelLanguageKey: + _joystickAxisSensitivityLabelLanguageKey: + _mouseXYAxisSensitivityLabelLanguageKey: + _joystickAxisSensitivityIcon: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + _mouseXYAxisSensitivityIcon: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + _joystickAxisSensitivityMin: 0 + _joystickAxisSensitivityMax: 2 + _mouseXYAxisSensitivityMin: 0 + _mouseXYAxisSensitivityMax: 2 + - _inputBehaviorId: 1 + _showJoystickAxisSensitivity: 1 + _showMouseXYAxisSensitivity: 1 + _labelLanguageKey: + _joystickAxisSensitivityLabelLanguageKey: + _mouseXYAxisSensitivityLabelLanguageKey: + _joystickAxisSensitivityIcon: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + _mouseXYAxisSensitivityIcon: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + _joystickAxisSensitivityMin: 0 + _joystickAxisSensitivityMax: 2 + _mouseXYAxisSensitivityMin: 0 + _mouseXYAxisSensitivityMax: 2 + _useThemeSettings: 1 + _themeSettings: {fileID: 11400000, guid: e15b0a66770d13f41a9adbbf6a4d7423, type: 2} + _language: {fileID: 11400000, guid: 2be3ae985e9faeb4b9dd3a1c915a3fc7, type: 2} + prefabs: + _button: {fileID: 143110, guid: f71e844abdb0e87458f73bf1ce75ee09, type: 2} + _fitButton: {fileID: 143110, guid: 758f91be5975d8842a43a078fec194f4, type: 2} + _inputGridLabel: {fileID: 190600, guid: 1814d9153fc43ff478f555945e287f39, type: 2} + _inputGridHeaderLabel: {fileID: 190600, guid: da3d4a59e237f72498b31e02d8f9f733, + type: 2} + _inputGridFieldButton: {fileID: 143110, guid: afbefb47f672f4c488150a435dfe5013, + type: 2} + _inputGridFieldInvertToggle: {fileID: 142746, guid: a183756d778416d4d885ecf041d1acda, + type: 2} + _window: {fileID: 194268, guid: e3a57c68883dca4408b56577d0a4d600, type: 2} + _windowTitleText: {fileID: 139440, guid: 518aee9201d061d49aa25a25483697f9, type: 2} + _windowContentText: {fileID: 187138, guid: 50862c6ce73c3dc4d988ad75d9de58ae, type: 2} + _fader: {fileID: 178326, guid: 24fe236f96731dd4189a177bb71019c7, type: 2} + _calibrationWindow: {fileID: 109856, guid: 38d33a94cb0d1e74c87c949cc4554f33, type: 2} + _inputBehaviorsWindow: {fileID: 134678, guid: 981cd43603172924c95b6c4ef0a81a7d, + type: 2} + _centerStickGraphic: {fileID: 115408, guid: aeba11a7084ef414baffd3b727f50ad2, + type: 2} + _moveStickGraphic: {fileID: 194384, guid: b633b9499355c8d44b2d5b99832f1790, type: 2} + references: + _canvas: {fileID: 1704911779} + _mainCanvasGroup: {fileID: 732155363} + _mainContent: {fileID: 768613769} + _mainContentInner: {fileID: 1092334083} + _playersGroup: {fileID: 1965681711} + _controllerGroup: {fileID: 787396547} + _controllerGroupLabelGroup: {fileID: 1434556793} + _controllerSettingsGroup: {fileID: 1221201993} + _assignedControllersGroup: {fileID: 698447878} + _settingsAndMapCategoriesGroup: {fileID: 59820435} + _settingsGroup: {fileID: 146075468} + _mapCategoriesGroup: {fileID: 1267516143} + _inputGridGroup: {fileID: 1224995810} + _inputGridContainer: {fileID: 88645609} + _inputGridHeadersGroup: {fileID: 339685136} + _inputGridVScrollbar: {fileID: 623222667} + _inputGridScrollRect: {fileID: 429171600} + _inputGridInnerGroup: {fileID: 300333305} + _controllerNameLabel: {fileID: 1416174901} + _removeControllerButton: {fileID: 869223175} + _assignControllerButton: {fileID: 18005610} + _calibrateControllerButton: {fileID: 902755521} + _doneButton: {fileID: 392545912} + _restoreDefaultsButton: {fileID: 486734858} + _defaultSelection: {fileID: 392545912} + _fixedSelectableUIElements: + - {fileID: 392545910} + - {fileID: 486734856} + - {fileID: 869223170} + - {fileID: 902755519} + - {fileID: 18005608} + _mainBackgroundImage: {fileID: 959623823} + _showPlayersGroupLabel: 1 + _showControllerGroupLabel: 1 + _showAssignedControllersGroupLabel: 1 + _showSettingsGroupLabel: 1 + _showMapCategoriesGroupLabel: 1 + _showControllerNameLabel: 1 + _showAssignedControllers: 1 +--- !u!1 &486734856 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 486734857} + - 222: {fileID: 486734862} + - 114: {fileID: 486734860} + - 114: {fileID: 486734858} + - 114: {fileID: 486734859} + - 114: {fileID: 486734861} + - 114: {fileID: 486734864} + - 114: {fileID: 486734863} + m_Layer: 5 + m_Name: RestoreDefaultsButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &486734857 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + 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: 1608002193} + m_Father: {fileID: 177266418} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 384.809174, y: 0} + m_SizeDelta: {x: 232.061081, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!114 &486734858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 392545912} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 486734860} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 486734859} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &486734859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RestoreDefaults + intData: 0 + text: {fileID: 1608002194} +--- !u!114 &486734860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &486734861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 486734858} + - _themeClass: button + _component: {fileID: 1608002194} +--- !u!222 &486734862 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} +--- !u!114 &486734863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445492, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &486734864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11422534, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &493964941 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 493964942} + - 222: {fileID: 493964944} + - 114: {fileID: 493964943} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &493964942 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} + 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: 18005609} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &493964943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Assign Controller +--- !u!222 &493964944 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} +--- !u!1001 &577525006 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._actionCategoryIds.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._actionCategoryIds.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _rewiredInputManager + value: + objectReference: {fileID: 1842252933} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _screenToggleAction + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _showActionCategoryLabels + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._mapCategoryId + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._actionCategoryIds.Array.data[0] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[1] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[2] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[3] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._mapCategoryId + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._actionCategoryIds.Array.data[0] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _showInputBehaviorSettings + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._joystickAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._mouseXYAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._joystickAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._mouseXYAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._inputBehaviorId + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._showJoystickAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._joystickAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._mouseXYAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._joystickAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._mouseXYAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._inputBehaviorId + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._showJoystickAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._showMouseXYAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _universalCancelAction + value: 22 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_RootGameObject: {fileID: 462349629} + m_IsPrefabParent: 0 + m_IsExploded: 1 +--- !u!1 &586074302 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 586074306} + - 114: {fileID: 586074305} + - 114: {fileID: 586074303} + m_Layer: 0 + m_Name: RewiredEventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &586074303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 586074302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 10efa70eea88e69459c632aac286892d, type: 3} + m_Name: + m_EditorClassIdentifier: + useAllRewiredGamePlayers: 1 + useRewiredSystemPlayer: 1 + rewiredPlayerIds: 00000000 + moveOneElementPerAxisPress: 0 + m_HorizontalAxis: UIHorizontal + m_VerticalAxis: UIVertical + m_SubmitButton: UISubmit + m_CancelButton: UICancel + m_InputActionsPerSecond: 4.5 + m_RepeatDelay: 0 + m_allowMouseInput: 1 + m_allowMouseInputIfTouchSupported: 1 + m_ForceModuleActive: 0 +--- !u!114 &586074305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 586074302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &586074306 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 586074302} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &623222665 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 623222666} + - 222: {fileID: 623222670} + - 114: {fileID: 623222669} + - 114: {fileID: 623222667} + - 114: {fileID: 623222668} + m_Layer: 5 + m_Name: ScrollbarVert + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623222666 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + 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: 1386582833} + m_Father: {fileID: 88645609} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -50} + m_SizeDelta: {x: 40, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &623222667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1202284168} + m_HandleRect: {fileID: 1202284170} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &623222668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 623222667} +--- !u!114 &623222669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!222 &623222670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} +--- !u!1 &678698725 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 678698726} + - 114: {fileID: 678698727} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &678698726 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 678698725} + 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: 1965681710} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &678698727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452066, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 678698725} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &698447876 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 698447877} + - 114: {fileID: 698447879} + - 114: {fileID: 698447878} + m_Layer: 5 + m_Name: AssignedControllersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &698447877 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + 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: 2126411305} + - {fileID: 938702997} + m_Father: {fileID: 787396547} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 490, y: 0} + m_SizeDelta: {x: 494, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &698447878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452058, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 2126411306} + _content: {fileID: 938702997} +--- !u!114 &698447879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452060, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &732155361 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 732155362} + - 225: {fileID: 732155363} + m_Layer: 5 + m_Name: MainPageGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &732155362 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 732155361} + 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: 959623822} + - {fileID: 768613769} + m_Father: {fileID: 1704911778} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -10, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!225 &732155363 +CanvasGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22552158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 732155361} + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &768613768 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 768613769} + m_Layer: 5 + m_Name: MainContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &768613769 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 768613768} + 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: 1092334083} + m_Father: {fileID: 732155362} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -80, y: -80} + m_Pivot: {x: .5, y: .5} +--- !u!1 &787396546 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 787396547} + - 114: {fileID: 787396548} + m_Layer: 5 + m_Name: ControllerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &787396547 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 787396546} + 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: 1221201992} + - {fileID: 698447877} + m_Father: {fileID: 1092334083} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -30} + m_SizeDelta: {x: 984, y: 76} + m_Pivot: {x: 0, y: 1} +--- !u!114 &787396548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452014, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 787396546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &809986498 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 809986499} + - 222: {fileID: 809986502} + - 114: {fileID: 809986500} + - 114: {fileID: 809986501} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &809986499 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + 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: 146075467} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &809986500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Settings:' +--- !u!114 &809986501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 809986500} +--- !u!222 &809986502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} +--- !u!1 &869223170 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 869223171} + - 222: {fileID: 869223177} + - 114: {fileID: 869223176} + - 114: {fileID: 869223175} + - 114: {fileID: 869223174} + - 114: {fileID: 869223173} + - 114: {fileID: 869223172} + m_Layer: 5 + m_Name: RemoveButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &869223171 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + 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: 1859478487} + m_Father: {fileID: 1502626196} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 75, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &869223172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452024, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &869223173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452026, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 869223175} + - _themeClass: button + _component: {fileID: 1859478488} +--- !u!114 &869223174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452030, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RemoveController + intData: 0 + text: {fileID: 1859478488} +--- !u!114 &869223175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452032, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 869223176} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 869223174} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &869223176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452028, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &869223177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} +--- !u!1 &902123677 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 902123681} + - 222: {fileID: 902123680} + - 114: {fileID: 902123679} + - 114: {fileID: 902123678} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &902123678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 902123679} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: set_interactable + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &902123679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &902123680 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} +--- !u!224 &902123681 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + 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: 80787451} + m_Father: {fileID: 1725700730} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: .5, y: 0} +--- !u!1 &902755519 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 902755520} + - 222: {fileID: 902755526} + - 114: {fileID: 902755523} + - 114: {fileID: 902755521} + - 114: {fileID: 902755522} + - 114: {fileID: 902755525} + - 114: {fileID: 902755524} + m_Layer: 5 + m_Name: CalibrateButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &902755520 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + 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: 1387685777} + m_Father: {fileID: 1502626196} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &902755521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452042, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 902755523} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 902755522} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &902755522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452038, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: CalibrateController + intData: 0 + text: {fileID: 1387685778} +--- !u!114 &902755523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452040, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &902755524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452034, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &902755525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452036, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 902755521} + - _themeClass: button + _component: {fileID: 1387685778} +--- !u!222 &902755526 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} +--- !u!1 &938702996 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 938702997} + - 114: {fileID: 938702998} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &938702997 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 938702996} + 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: 698447877} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 494, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &938702998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451996, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 938702996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 200, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &944560920 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 944560921} + - 222: {fileID: 944560924} + - 114: {fileID: 944560922} + - 114: {fileID: 944560923} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &944560921 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + 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: 1965681710} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &944560922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452048, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Players:' +--- !u!114 &944560923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452046, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 944560922} +--- !u!222 &944560924 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} +--- !u!1 &959623821 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 959623822} + - 222: {fileID: 959623825} + - 114: {fileID: 959623823} + - 114: {fileID: 959623824} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &959623822 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + 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: 732155362} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &959623823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452064, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .862745106} + 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 +--- !u!114 &959623824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452062, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: mainWindow + _component: {fileID: 959623823} +--- !u!222 &959623825 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} +--- !u!1 &1092334082 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1092334083} + - 114: {fileID: 1092334084} + m_Layer: 5 + m_Name: MainContentInner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1092334083 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1092334082} + 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: 177266418} + - {fileID: 1965681710} + - {fileID: 787396547} + - {fileID: 59820435} + - {fileID: 1224995810} + m_Father: {fileID: 768613769} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1092334084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1092334082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &1202284167 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1202284170} + - 222: {fileID: 1202284169} + - 114: {fileID: 1202284168} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1202284168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &1202284169 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} +--- !u!224 &1202284170 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} + 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: 1386582833} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!1 &1221201991 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1221201992} + - 114: {fileID: 1221201995} + - 114: {fileID: 1221201994} + - 114: {fileID: 1221201993} + m_Layer: 5 + m_Name: ControllerSettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1221201992 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + 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: 1434556793} + - {fileID: 1502626196} + m_Father: {fileID: 787396547} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -38} + m_SizeDelta: {x: 470, y: 76} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1221201993 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 459804801} + _content: {fileID: 1502626196} +--- !u!114 &1221201994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 470 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &1221201995 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &1224995809 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1224995810} + - 114: {fileID: 1224995812} + - 114: {fileID: 1224995811} + m_Layer: 5 + m_Name: InputGridGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1224995810 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + 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: 88645609} + m_Father: {fileID: 1092334083} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 709.999939, y: -70} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1224995811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &1224995812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &1226677879 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1226677880} + - 114: {fileID: 1226677881} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1226677880 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1226677879} + 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: 146075467} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 150, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1226677881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1226677879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1267516141 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1267516142} + - 114: {fileID: 1267516145} + - 114: {fileID: 1267516144} + - 114: {fileID: 1267516143} + m_Layer: 5 + m_Name: MapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1267516142 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + 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: 1284920089} + - {fileID: 1749328240} + m_Father: {fileID: 59820435} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 160, y: 0} + m_SizeDelta: {x: 824, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1267516143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 1284920090} + _content: {fileID: 1749328240} +--- !u!114 &1267516144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &1267516145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &1284920088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1284920089} + - 222: {fileID: 1284920092} + - 114: {fileID: 1284920090} + - 114: {fileID: 1284920091} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1284920089 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + 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: 1267516142} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 824, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1284920090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Categories:' +--- !u!114 &1284920091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452070, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 1284920090} +--- !u!222 &1284920092 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} +--- !u!1 &1364034793 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1364034798} + - 20: {fileID: 1364034797} + - 92: {fileID: 1364034796} + - 124: {fileID: 1364034795} + - 81: {fileID: 1364034794} + 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 &1364034794 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!124 &1364034795 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!92 &1364034796 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!20 &1364034797 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + 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_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: .0219999999 +--- !u!4 &1364034798 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + 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 +--- !u!1 &1386582832 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1386582833} + 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 &1386582833 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1386582832} + 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: 1202284170} + m_Father: {fileID: 623222666} + m_RootOrder: 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: .5, y: .5} +--- !u!1 &1387685776 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1387685777} + - 222: {fileID: 1387685779} + - 114: {fileID: 1387685778} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1387685777 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} + 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: 902755520} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1387685778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Calibrate +--- !u!222 &1387685779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} +--- !u!1 &1416174898 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1416174899} + - 222: {fileID: 1416174902} + - 114: {fileID: 1416174901} + - 114: {fileID: 1416174900} + m_Layer: 5 + m_Name: ControllerNameLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1416174899 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + 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: 202236613} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 21.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1416174900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 1416174901} +--- !u!114 &1416174901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: None +--- !u!222 &1416174902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} +--- !u!1 &1434556792 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1434556793} + - 114: {fileID: 1434556794} + m_Layer: 5 + m_Name: ControllerLabelGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1434556793 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1434556792} + 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: 459804800} + - {fileID: 202236613} + m_Father: {fileID: 1221201992} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 470, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1434556794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451998, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1434556792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1502626195 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1502626196} + - 114: {fileID: 1502626197} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1502626196 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1502626195} + 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: 869223171} + - {fileID: 902755520} + - {fileID: 18005609} + m_Father: {fileID: 1221201992} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -76} + m_SizeDelta: {x: 470, y: 40} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1502626197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1502626195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1530239315 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1530239316} + - 222: {fileID: 1530239318} + - 114: {fileID: 1530239317} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1530239316 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} + 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: 1725700730} + m_Father: {fileID: 1888913175} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 333} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1530239317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .403921574} + 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 +--- !u!222 &1530239318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} +--- !u!1 &1608002192 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1608002193} + - 222: {fileID: 1608002195} + - 114: {fileID: 1608002194} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1608002193 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} + 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: 486734857} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.03054, y: -20} + m_SizeDelta: {x: 132.061081, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1608002194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452068, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Restore Defaults +--- !u!222 &1608002195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} +--- !u!1 &1704911777 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1704911778} + - 223: {fileID: 1704911779} + - 114: {fileID: 1704911780} + - 114: {fileID: 1704911782} + - 114: {fileID: 1704911781} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1704911778 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + 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: 732155362} + m_Father: {fileID: 462349630} + m_RootOrder: 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!223 &1704911779 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22352158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!114 &1704911780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1704911781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11423344, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b7420df3cab0ff46a7188a17749d1cc, type: 3} + m_Name: + m_EditorClassIdentifier: + breakPoints: + - name: 2:1 + screenAspectRatio: 2 + referenceResolution: {x: 2110, y: 600} + - name: 16:9 + screenAspectRatio: 1.77699995 + referenceResolution: {x: 1885, y: 600} + - name: 16:10 + screenAspectRatio: 1.60000002 + referenceResolution: {x: 1694, y: 600} + - name: 3:2 + screenAspectRatio: 1.5 + referenceResolution: {x: 1530, y: 600} + - name: 4:3 + screenAspectRatio: 1.33299994 + referenceResolution: {x: 1360, y: 600} + - name: 5:4 + screenAspectRatio: 1.25 + referenceResolution: {x: 1280, y: 600} + - name: Square + screenAspectRatio: 1 + referenceResolution: {x: 1020, y: 600} + - name: 4:5 + screenAspectRatio: .800000012 + referenceResolution: {x: 920, y: 600} + - name: 3:4 + screenAspectRatio: .75 + referenceResolution: {x: 880, y: 600} + - name: 2:3 + screenAspectRatio: .666000009 + referenceResolution: {x: 960, y: 600} + - name: 10:16 + screenAspectRatio: .625 + referenceResolution: {x: 960, y: 600} + - name: 9:16 + screenAspectRatio: .5625 + referenceResolution: {x: 880, y: 600} + - name: 1:2 + screenAspectRatio: .5 + referenceResolution: {x: 840, y: 600} +--- !u!114 &1704911782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11423346, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d5765b502c6a5e4ab9dfff21808a241, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + 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!1 &1725700729 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1725700730} + m_Layer: 5 + m_Name: Padding + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1725700730 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1725700729} + 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: 1900135694} + - {fileID: 902123681} + m_Father: {fileID: 1530239316} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -120, y: -120} + m_Pivot: {x: .5, y: .5} +--- !u!1 &1749328239 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152070, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1749328240} + - 114: {fileID: 1749328241} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1749328240 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1749328239} + 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: 1267516142} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 824, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1749328241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451994, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1749328239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1842252932 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1842252934} + - 114: {fileID: 1842252933} + - 114: {fileID: 1842252935} + m_Layer: 0 + m_Name: Rewired Input Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1842252933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 581b3e3c96df0ef42aef16b63b27b87f, type: 3} + m_Name: + m_EditorClassIdentifier: + _dontDestroyOnLoad: 1 + _userData: + configVars: + updateLoop: 1 + alwaysUseUnityInput: 0 + windowsStandalonePrimaryInputSource: 0 + osx_primaryInputSource: 0 + linux_primaryInputSource: 0 + windowsUWP_primaryInputSource: 0 + xboxOne_primaryInputSource: 0 + useXInput: 1 + useNativeMouse: 1 + useEnhancedDeviceSupport: 1 + windowsStandalone_useSteamRawInputControllerWorkaround: 1 + android_supportUnknownGamepads: 0 + useSteamControllerSupport: 1 + maxJoysticksPerPlayer: 2 + autoAssignJoysticks: 1 + assignJoysticksToPlayingPlayersOnly: 0 + distributeJoysticksEvenly: 1 + reassignJoystickToPreviousOwnerOnReconnect: 1 + defaultJoystickAxis2DDeadZoneType: 1 + players: + - _id: 9999999 + _name: System + _descriptiveName: System + _startPlaying: 1 + _defaultJoystickMaps: [] + _defaultMouseMaps: [] + _defaultKeyboardMaps: + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 4 + _layoutId: 0 + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _excludeFromControllerAutoAssignment: 0 + - _id: 1 + _name: Player0 + _descriptiveName: Player 1 + _startPlaying: 1 + _defaultJoystickMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + - _enabled: 1 + _categoryId: 2 + _layoutId: 0 + - _enabled: 1 + _categoryId: 1 + _layoutId: 0 + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 5 + _layoutId: 0 + _defaultMouseMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + _defaultKeyboardMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 1 + - _enabled: 1 + _categoryId: 2 + _layoutId: 1 + - _enabled: 1 + _categoryId: 5 + _layoutId: 1 + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _excludeFromControllerAutoAssignment: 0 + - _id: 2 + _name: Player1 + _descriptiveName: Player 2 + _startPlaying: 1 + _defaultJoystickMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + - _enabled: 1 + _categoryId: 2 + _layoutId: 0 + - _enabled: 1 + _categoryId: 1 + _layoutId: 0 + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 5 + _layoutId: 0 + _defaultMouseMaps: [] + _defaultKeyboardMaps: [] + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 0 + _excludeFromControllerAutoAssignment: 0 + - _id: 3 + _name: Player2 + _descriptiveName: Player 3 + _startPlaying: 1 + _defaultJoystickMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + - _enabled: 1 + _categoryId: 2 + _layoutId: 0 + - _enabled: 1 + _categoryId: 1 + _layoutId: 0 + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 5 + _layoutId: 0 + _defaultMouseMaps: [] + _defaultKeyboardMaps: [] + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 0 + _excludeFromControllerAutoAssignment: 0 + actions: + - _id: 0 + _name: Move Horizontal + _type: 0 + _descriptiveName: Move Horizontal + _positiveDescriptiveName: Move Right + _negativeDescriptiveName: Move Left + _behaviorId: 2 + _userAssignable: 1 + _categoryId: 0 + - _id: 1 + _name: Move Vertical + _type: 0 + _descriptiveName: Move Vertical + _positiveDescriptiveName: Move Up + _negativeDescriptiveName: Move Down + _behaviorId: 2 + _userAssignable: 1 + _categoryId: 0 + - _id: 2 + _name: Jump + _type: 1 + _descriptiveName: Jump + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 3 + _name: Fire + _type: 1 + _descriptiveName: Fire + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 4 + _name: Duck + _type: 1 + _descriptiveName: Duck + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 5 + _name: Reload + _type: 1 + _descriptiveName: Reload + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 6 + _name: Look Horizontal + _type: 0 + _descriptiveName: Look Horizontal + _positiveDescriptiveName: Look Right + _negativeDescriptiveName: Look Left + _behaviorId: 1 + _userAssignable: 1 + _categoryId: 0 + - _id: 7 + _name: Look Vertical + _type: 0 + _descriptiveName: Look Vertical + _positiveDescriptiveName: Look Up + _negativeDescriptiveName: Look Down + _behaviorId: 1 + _userAssignable: 1 + _categoryId: 0 + - _id: 8 + _name: Fire2 + _type: 1 + _descriptiveName: Secondary Fire + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 9 + _name: Punch + _type: 1 + _descriptiveName: Punch + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 10 + _name: Activate + _type: 1 + _descriptiveName: Activate + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 11 + _name: Map + _type: 1 + _descriptiveName: Open Map + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 12 + _name: Communicate + _type: 1 + _descriptiveName: Communicate + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 13 + _name: Suicide + _type: 1 + _descriptiveName: Suicide + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 14 + _name: ChangeSeat + _type: 1 + _descriptiveName: Change Seat + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 15 + _name: Radar + _type: 1 + _descriptiveName: Radar + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 16 + _name: Brake + _type: 1 + _descriptiveName: Brake + _positiveDescriptiveName: Brake + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 17 + _name: Grenade + _type: 1 + _descriptiveName: Throw Grenade + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 18 + _name: Dig + _type: 1 + _descriptiveName: Dig + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 19 + _name: Run + _type: 1 + _descriptiveName: Run + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 20 + _name: Scope + _type: 1 + _descriptiveName: Use Scope + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 21 + _name: ToggleControlMapper + _type: 1 + _descriptiveName: Open Control Mapper + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 22 + _name: UniversalCancel + _type: 1 + _descriptiveName: Universal Cancel + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 23 + _name: Restricted1 + _type: 1 + _descriptiveName: Restricted1 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 24 + _name: Eject + _type: 1 + _descriptiveName: Eject + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 25 + _name: Accelerate + _type: 1 + _descriptiveName: Accelerate + _positiveDescriptiveName: Accelerate + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 26 + _name: Action26 + _type: 1 + _descriptiveName: Action26 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 3 + - _id: 27 + _name: Action27 + _type: 1 + _descriptiveName: Action27 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 3 + - _id: 28 + _name: Crawl + _type: 1 + _descriptiveName: Crawl + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 29 + _name: MedKit + _type: 1 + _descriptiveName: Use Med Kit + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 30 + _name: UIHorizontal + _type: 0 + _descriptiveName: UI Horizontal + _positiveDescriptiveName: UI Move Right + _negativeDescriptiveName: UI Move Left + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 32 + _name: UISubmit + _type: 1 + _descriptiveName: UI Submit + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 33 + _name: UICancel + _type: 1 + _descriptiveName: UI Cancel + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 31 + _name: UIVertical + _type: 0 + _descriptiveName: UI Vertical + _positiveDescriptiveName: UI Move Up + _negativeDescriptiveName: UI Move Down + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + actionCategories: + - _name: Default + _descriptiveName: Default + _tag: + _id: 0 + _userAssignable: 1 + - _name: System + _descriptiveName: System + _tag: + _id: 1 + _userAssignable: 0 + - _name: Infantry + _descriptiveName: Infantry + _tag: + _id: 4 + _userAssignable: 1 + - _name: Vehicle + _descriptiveName: Vehicle + _tag: + _id: 2 + _userAssignable: 1 + - _name: Category2 + _descriptiveName: Category2 + _tag: + _id: 3 + _userAssignable: 1 + - _name: UI + _descriptiveName: UI + _tag: + _id: 5 + _userAssignable: 1 + actionCategoryMap: + list: + - categoryId: 0 + actionIds: 010000000000000003000000080000000500000006000000070000000a0000000b0000000c0000000d000000 + - categoryId: 1 + actionIds: 150000001600000017000000 + - categoryId: 2 + actionIds: 1900000010000000180000000e0000000f000000 + - categoryId: 3 + actionIds: 1a0000001b000000 + - categoryId: 4 + actionIds: 1300000002000000040000001c00000009000000110000001d0000001400000012000000 + - categoryId: 5 + actionIds: 1e0000001f0000002000000021000000 + inputBehaviors: + - _id: 0 + _name: Default + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 1 + _name: Camera Look + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 2 + _name: Movement + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 3 + _name: MenuControl + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 1000 + _digitalAxisSensitivity: 1000 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + mapCategories: + - _name: Default + _descriptiveName: Common + _tag: + _id: 0 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 00000000020000000500000003000000 + - _name: UI + _descriptiveName: UI + _tag: + _id: 1 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 0100000003000000 + - _name: Infantry + _descriptiveName: Infantry + _tag: + _id: 2 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 000000000200000003000000 + - _name: Vehicle + _descriptiveName: Vehicle + _tag: + _id: 5 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 000000000500000003000000 + - _name: System + _descriptiveName: System + _tag: + _id: 3 + _userAssignable: 0 + _checkConflictsWithAllCategories: 1 + _checkConflictsCategoryIds: + - _name: SystemMenu + _descriptiveName: SystemMenu + _tag: + _id: 4 + _userAssignable: 0 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: + joystickLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + keyboardLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + - _name: Player1 + _descriptiveName: Player1 + _id: 1 + - _name: Player2 + _descriptiveName: Player2 + _id: 2 + mouseLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + customControllerLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + joystickMaps: + - id: 0 + categoryId: 0 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 8 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: 5 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: 8 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 6 + _elementType: 0 + _elementIdentifierId: 2 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 7 + _elementType: 0 + _elementIdentifierId: 3 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 1 + _elementIdentifierId: 12 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 1 + categoryId: 1 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: 19 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: 20 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: 21 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: 22 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: 5 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 34 + _elementType: 1 + _elementIdentifierId: 14 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 2 + categoryId: 1 + layoutId: 0 + name: + hardwareGuidString: 00000000-0000-0000-0000-000000000000 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 1 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: 32 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: 33 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 3 + categoryId: 2 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 4 + _actionId: 28 + _elementType: 1 + _elementIdentifierId: 11 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 19 + _elementType: 1 + _elementIdentifierId: 13 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 4 + _elementType: 1 + _elementIdentifierId: 17 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 2 + _elementType: 1 + _elementIdentifierId: 18 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 9 + _elementType: 1 + _elementIdentifierId: 7 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 17 + _elementType: 1 + _elementIdentifierId: 19 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 29 + _elementType: 1 + _elementIdentifierId: 20 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 20 + _elementType: 1 + _elementIdentifierId: 21 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 18 + _elementType: 1 + _elementIdentifierId: 22 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 4 + categoryId: 3 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 1 + _actionId: 21 + _elementType: 1 + _elementIdentifierId: 15 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 5 + categoryId: 5 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 2 + _actionId: 25 + _elementType: 1 + _elementIdentifierId: 11 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 16 + _elementType: 1 + _elementIdentifierId: 13 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 24 + _elementType: 1 + _elementIdentifierId: 19 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 14 + _elementType: 1 + _elementIdentifierId: 18 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 15 + _elementType: 1 + _elementIdentifierId: 17 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + keyboardMaps: + - id: 1 + categoryId: 0 + layoutId: 1 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 119 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 97 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 115 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 100 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 306 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 8 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 122 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 114 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 101 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 11 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 109 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 12 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 105 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 13 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 293 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 4 + categoryId: 3 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 1 + _actionId: 22 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 27 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 1 + _actionId: 21 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 282 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 1 + _actionId: 23 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 283 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 5 + categoryId: 2 + layoutId: 1 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 4 + _actionId: 19 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 304 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 2 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 32 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 4 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 120 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 28 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 99 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 9 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 102 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 17 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 103 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 29 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 46 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 20 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 113 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 4 + _actionId: 18 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 104 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 7 + categoryId: 4 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 275 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 276 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 273 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 274 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 13 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 8 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 8 + categoryId: 5 + layoutId: 1 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 2 + _actionId: 25 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 304 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 16 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 32 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 14 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 102 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 15 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 99 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 2 + _actionId: 24 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 120 + _modifierKey1: 1 + _modifierKey2: 0 + _modifierKey3: 0 + mouseMaps: + - id: 0 + categoryId: 0 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: 3 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 0 + _elementIdentifierId: 2 + _axisRange: 1 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + customControllerMaps: [] + customControllers: [] + playerIdCounter: 4 + actionIdCounter: 35 + actionCategoryIdCounter: 6 + inputBehaviorIdCounter: 4 + mapCategoryIdCounter: 6 + joystickLayoutIdCounter: 1 + keyboardLayoutIdCounter: 3 + mouseLayoutIdCounter: 1 + customControllerLayoutIdCounter: 1 + joystickMapIdCounter: 6 + keyboardMapIdCounter: 9 + mouseMapIdCounter: 1 + customControllerMapIdCounter: 0 + customControllerIdCounter: 0 + _controllerDataFiles: {fileID: 11400000, guid: d21d2b20df8369642b76aafbb2576ba7, + type: 2} +--- !u!4 &1842252934 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!114 &1842252935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 307e2fe016d34e8438488ad3bf56abd2, type: 3} + m_Name: + m_EditorClassIdentifier: + isEnabled: 1 + loadDataOnStart: 1 + playerPrefsKeyPrefix: RewiredCMDemo +--- !u!1 &1859478486 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1859478487} + - 222: {fileID: 1859478489} + - 114: {fileID: 1859478488} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1859478487 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} + 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: 869223171} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1859478488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Remove +--- !u!222 &1859478489 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} +--- !u!1 &1888913174 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1888913175} + - 223: {fileID: 1888913178} + - 114: {fileID: 1888913177} + - 114: {fileID: 1888913176} + - 114: {fileID: 1888913179} + m_Layer: 5 + m_Name: Canvas_DemoMessage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1888913175 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + 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: 1530239316} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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 &1888913176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1888913177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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 &1888913178 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!114 &1888913179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d522437a28e26a419d3e5e5a84e2f7e, type: 3} + m_Name: + m_EditorClassIdentifier: + controlMapper: {fileID: 462349631} + defaultSelectable: {fileID: 902123678} +--- !u!1 &1900135691 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1900135694} + - 222: {fileID: 1900135693} + - 114: {fileID: 1900135692} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1900135692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1.26999998 + m_Text: 'Press F1, Start, or the button + + below to open Control Mapper' +--- !u!222 &1900135693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} +--- !u!224 &1900135694 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} + 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: 1725700730} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 333} + m_Pivot: {x: .5, y: 1} +--- !u!1 &1965681709 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1965681710} + - 114: {fileID: 1965681712} + - 114: {fileID: 1965681711} + - 114: {fileID: 1965681713} + m_Layer: 5 + m_Name: PlayersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1965681710 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + 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: 944560921} + - {fileID: 678698726} + m_Father: {fileID: 1092334083} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1965681711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452050, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 944560922} + _content: {fileID: 678698726} +--- !u!114 &1965681712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452052, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &1965681713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &1980042851 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1980042852} + - 114: {fileID: 1980042853} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1980042852 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1980042851} + 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: 339685136} + - {fileID: 429171595} + m_Father: {fileID: 88645609} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -60, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1980042853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452056, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1980042851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!1 &2013114686 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2013114687} + - 222: {fileID: 2013114689} + - 114: {fileID: 2013114688} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2013114687 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} + 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: 392545911} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 71.3740463, y: -20} + m_SizeDelta: {x: 42.7480927, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &2013114688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452002, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Done +--- !u!222 &2013114689 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} +--- !u!1 &2126411304 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2126411305} + - 222: {fileID: 2126411308} + - 114: {fileID: 2126411306} + - 114: {fileID: 2126411307} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2126411305 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + 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: 698447877} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 494, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2126411306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Assigned Controllers:' +--- !u!114 &2126411307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 2126411306} +--- !u!222 &2126411308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity.meta new file mode 100644 index 0000000..b8dd9ff --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2a0b7c6aa445acd4c9cb07e4be4a0151 +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity new file mode 100644 index 0000000..6aed4be --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity @@ -0,0 +1,6071 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: .25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_Fog: 0 + m_FogColor: {r: .5, g: .5, b: .5, a: 1} + m_FogMode: 3 + m_FogDensity: .00999999978 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: .5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 0} + m_ObjectHideFlags: 0 +--- !u!127 &3 +LevelGameManager: + m_ObjectHideFlags: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + m_LightProbes: {fileID: 0} + m_Lightmaps: [] + m_LightmapsMode: 1 + m_BakedColorSpace: 0 + m_UseDualLightmapsInForward: 0 + m_LightmapEditorSettings: + m_Resolution: 50 + m_LastUsedResolution: 0 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_BounceBoost: 1 + m_BounceIntensity: 1 + m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} + m_SkyLightIntensity: 0 + m_Quality: 0 + m_Bounces: 1 + m_FinalGatherRays: 1000 + m_FinalGatherContrastThreshold: .0500000007 + m_FinalGatherGradientThreshold: 0 + m_FinalGatherInterpolationPoints: 15 + m_AOAmount: 0 + m_AOMaxDistance: .100000001 + m_AOContrast: 1 + m_LODSurfaceMappingDistance: 1 + m_Padding: 0 + m_TextureCompression: 0 + m_LockAtlas: 0 +--- !u!196 &5 +NavMeshSettings: + m_ObjectHideFlags: 0 + m_BuildSettings: + agentRadius: .5 + agentHeight: 2 + agentSlope: 45 + agentClimb: .400000006 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + widthInaccuracy: 16.666666 + heightInaccuracy: 10 + m_NavMesh: {fileID: 0} +--- !u!1 &18005608 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 18005609} + - 222: {fileID: 18005615} + - 114: {fileID: 18005612} + - 114: {fileID: 18005610} + - 114: {fileID: 18005611} + - 114: {fileID: 18005614} + - 114: {fileID: 18005613} + m_Layer: 5 + m_Name: AssignControllerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &18005609 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + 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: 493964942} + m_Father: {fileID: 1502626196} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 395, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &18005610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452012, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 18005612} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 18005611} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &18005611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452008, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: AssignController + intData: 0 + text: {fileID: 493964943} +--- !u!114 &18005612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452010, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &18005613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452004, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &18005614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452006, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 18005610} + - _themeClass: button + _component: {fileID: 493964943} +--- !u!222 &18005615 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 18005608} +--- !u!1 &59820434 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 59820435} + - 114: {fileID: 59820436} + m_Layer: 5 + m_Name: SettingAndMapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &59820435 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 59820434} + 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: 146075467} + - {fileID: 1267516142} + m_Father: {fileID: 1092334083} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 492, y: -154} + m_SizeDelta: {x: 984, y: 36} + m_Pivot: {x: .5, y: .5} +--- !u!114 &59820436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 59820434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &80787450 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 80787451} + - 222: {fileID: 80787453} + - 114: {fileID: 80787452} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &80787451 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} + 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: 902123681} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &80787452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Open +--- !u!222 &80787453 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80787450} +--- !u!1 &88645608 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 88645609} + - 114: {fileID: 88645610} + m_Layer: 5 + m_Name: InputGridContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &88645609 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 88645608} + 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: 623222666} + - {fileID: 1980042852} + m_Father: {fileID: 1224995810} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 0, y: 1} +--- !u!114 &88645610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 88645608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!1 &146075466 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 146075467} + - 114: {fileID: 146075470} + - 114: {fileID: 146075469} + - 114: {fileID: 146075468} + m_Layer: 5 + m_Name: SettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &146075467 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + 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: 809986499} + - {fileID: 1226677880} + m_Father: {fileID: 59820435} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &146075468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 809986500} + _content: {fileID: 1226677880} +--- !u!114 &146075469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: 0 +--- !u!114 &146075470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 146075466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &177266417 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 177266418} + - 114: {fileID: 177266419} + - 114: {fileID: 177266420} + m_Layer: 5 + m_Name: WindowButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &177266418 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + 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: 392545911} + - {fileID: 486734857} + m_Father: {fileID: 1092334083} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &177266419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452000, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &177266420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445496, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 177266417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &202236612 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 202236613} + - 114: {fileID: 202236614} + m_Layer: 5 + m_Name: ControllerNameWrapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202236613 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 202236612} + 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: 1416174899} + m_Father: {fileID: 1434556793} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 133.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!114 &202236614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 202236612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &300333304 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 300333305} + - 114: {fileID: 300333307} + - 114: {fileID: 300333306} + m_Layer: 5 + m_Name: InputGridInnerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &300333305 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + 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: 429171595} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!114 &300333306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 679ba094c265ca5468c417c33c76603c, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 429171600} +--- !u!114 &300333307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 300333304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &339685135 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 339685136} + - 114: {fileID: 339685137} + m_Layer: 5 + m_Name: HeadersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &339685136 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 339685135} + 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: 1980042852} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &339685137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452044, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 339685135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 40 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &392545910 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 392545911} + - 222: {fileID: 392545916} + - 114: {fileID: 392545914} + - 114: {fileID: 392545912} + - 114: {fileID: 392545913} + - 114: {fileID: 392545915} + - 114: {fileID: 392545918} + - 114: {fileID: 392545917} + m_Layer: 5 + m_Name: DoneButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &392545911 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + 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: 2013114687} + m_Father: {fileID: 177266418} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 142.748093, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &392545912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 486734858} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 392545914} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 392545913} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &392545913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: Done + intData: 0 + text: {fileID: 2013114688} +--- !u!114 &392545914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &392545915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 392545912} + - _themeClass: button + _component: {fileID: 2013114688} +--- !u!222 &392545916 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} +--- !u!114 &392545917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445494, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &392545918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11422530, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 392545910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &429171594 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 429171595} + - 114: {fileID: 429171600} + - 222: {fileID: 429171599} + - 114: {fileID: 429171598} + - 114: {fileID: 429171597} + m_Layer: 5 + m_Name: ScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &429171595 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + 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: 300333305} + m_Father: {fileID: 1980042852} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -50} + m_SizeDelta: {x: 0, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &429171597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452022, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &429171598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452020, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &429171599 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} +--- !u!114 &429171600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452018, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 429171594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 300333305} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: .100000001 + m_Inertia: 1 + m_DecelerationRate: .135000005 + m_ScrollSensitivity: 50 + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 623222667} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &459804799 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 195596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 459804800} + - 222: {fileID: 459804803} + - 114: {fileID: 459804801} + - 114: {fileID: 459804802} + m_Layer: 5 + m_Name: ControllerLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &459804800 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22495596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + 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: 1434556793} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &459804801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495594, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Controller:' +--- !u!114 &459804802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495592, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 459804801} +--- !u!222 &459804803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22295596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 459804799} +--- !u!1 &462349629 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 4: {fileID: 462349630} + - 114: {fileID: 462349631} + m_Layer: 5 + m_Name: ControlMapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &462349630 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 462349629} + 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: 1704911778} + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!114 &462349631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 462349629} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edac79059a45d244a8050315593a7e9e, type: 3} + m_Name: + m_EditorClassIdentifier: + _rewiredInputManager: {fileID: 1842252933} + _openOnStart: 0 + _keyboardMapDefaultLayout: 0 + _mouseMapDefaultLayout: 0 + _joystickMapDefaultLayout: 0 + _mappingSets: + - _mapCategoryId: 0 + _actionListMode: 0 + _actionCategoryIds: 000000000400000002000000 + _actionIds: + _showPlayers: 1 + _showControllers: 1 + _showKeyboard: 1 + _showMouse: 1 + _maxControllersPerPlayer: 1 + _showActionCategoryLabels: 1 + _keyboardInputFieldCount: 1 + _mouseInputFieldCount: 1 + _controllerInputFieldCount: 1 + _allowElementAssignmentConflicts: 0 + _actionLabelWidth: 200 + _keyboardColMaxWidth: 200 + _mouseColMaxWidth: 200 + _controllerColMaxWidth: 200 + _inputRowHeight: 40 + _inputColumnSpacing: 40 + _inputRowCategorySpacing: 20 + _invertToggleWidth: 40 + _defaultWindowWidth: 500 + _defaultWindowHeight: 400 + _controllerAssignmentTimeout: 5 + _preInputAssignmentTimeout: 5 + _inputAssignmentTimeout: 5 + _axisCalibrationTimeout: 5 + _ignoreMouseXAxisAssignment: 1 + _ignoreMouseYAxisAssignment: 1 + _screenToggleAction: 21 + _screenOpenAction: -1 + _screenCloseAction: -1 + _universalCancelAction: 22 + _universalCancelClosesScreen: 1 + _showInputBehaviorSettings: 0 + _inputBehaviorSettings: + - _inputBehaviorId: 2 + _showJoystickAxisSensitivity: 1 + _showMouseXYAxisSensitivity: 0 + _labelLanguageKey: + _joystickAxisSensitivityLabelLanguageKey: + _mouseXYAxisSensitivityLabelLanguageKey: + _joystickAxisSensitivityIcon: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + _mouseXYAxisSensitivityIcon: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + _joystickAxisSensitivityMin: 0 + _joystickAxisSensitivityMax: 2 + _mouseXYAxisSensitivityMin: 0 + _mouseXYAxisSensitivityMax: 2 + - _inputBehaviorId: 1 + _showJoystickAxisSensitivity: 1 + _showMouseXYAxisSensitivity: 1 + _labelLanguageKey: + _joystickAxisSensitivityLabelLanguageKey: + _mouseXYAxisSensitivityLabelLanguageKey: + _joystickAxisSensitivityIcon: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + _mouseXYAxisSensitivityIcon: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + _joystickAxisSensitivityMin: 0 + _joystickAxisSensitivityMax: 2 + _mouseXYAxisSensitivityMin: 0 + _mouseXYAxisSensitivityMax: 2 + _useThemeSettings: 1 + _themeSettings: {fileID: 11400000, guid: e15b0a66770d13f41a9adbbf6a4d7423, type: 2} + _language: {fileID: 11400000, guid: 2be3ae985e9faeb4b9dd3a1c915a3fc7, type: 2} + prefabs: + _button: {fileID: 143110, guid: f71e844abdb0e87458f73bf1ce75ee09, type: 2} + _fitButton: {fileID: 143110, guid: 758f91be5975d8842a43a078fec194f4, type: 2} + _inputGridLabel: {fileID: 190600, guid: 1814d9153fc43ff478f555945e287f39, type: 2} + _inputGridHeaderLabel: {fileID: 190600, guid: da3d4a59e237f72498b31e02d8f9f733, + type: 2} + _inputGridFieldButton: {fileID: 143110, guid: afbefb47f672f4c488150a435dfe5013, + type: 2} + _inputGridFieldInvertToggle: {fileID: 142746, guid: a183756d778416d4d885ecf041d1acda, + type: 2} + _window: {fileID: 194268, guid: e3a57c68883dca4408b56577d0a4d600, type: 2} + _windowTitleText: {fileID: 139440, guid: 518aee9201d061d49aa25a25483697f9, type: 2} + _windowContentText: {fileID: 187138, guid: 50862c6ce73c3dc4d988ad75d9de58ae, type: 2} + _fader: {fileID: 178326, guid: 24fe236f96731dd4189a177bb71019c7, type: 2} + _calibrationWindow: {fileID: 109856, guid: 38d33a94cb0d1e74c87c949cc4554f33, type: 2} + _inputBehaviorsWindow: {fileID: 134678, guid: 981cd43603172924c95b6c4ef0a81a7d, + type: 2} + _centerStickGraphic: {fileID: 115408, guid: aeba11a7084ef414baffd3b727f50ad2, + type: 2} + _moveStickGraphic: {fileID: 194384, guid: b633b9499355c8d44b2d5b99832f1790, type: 2} + references: + _canvas: {fileID: 1704911779} + _mainCanvasGroup: {fileID: 732155363} + _mainContent: {fileID: 768613769} + _mainContentInner: {fileID: 1092334083} + _playersGroup: {fileID: 1965681711} + _controllerGroup: {fileID: 787396547} + _controllerGroupLabelGroup: {fileID: 1434556793} + _controllerSettingsGroup: {fileID: 1221201993} + _assignedControllersGroup: {fileID: 698447878} + _settingsAndMapCategoriesGroup: {fileID: 59820435} + _settingsGroup: {fileID: 146075468} + _mapCategoriesGroup: {fileID: 1267516143} + _inputGridGroup: {fileID: 1224995810} + _inputGridContainer: {fileID: 88645609} + _inputGridHeadersGroup: {fileID: 339685136} + _inputGridVScrollbar: {fileID: 623222667} + _inputGridScrollRect: {fileID: 429171600} + _inputGridInnerGroup: {fileID: 300333305} + _controllerNameLabel: {fileID: 1416174901} + _removeControllerButton: {fileID: 869223175} + _assignControllerButton: {fileID: 18005610} + _calibrateControllerButton: {fileID: 902755521} + _doneButton: {fileID: 392545912} + _restoreDefaultsButton: {fileID: 486734858} + _defaultSelection: {fileID: 392545912} + _fixedSelectableUIElements: + - {fileID: 392545910} + - {fileID: 486734856} + - {fileID: 869223170} + - {fileID: 902755519} + - {fileID: 18005608} + _mainBackgroundImage: {fileID: 959623823} + _showPlayersGroupLabel: 1 + _showControllerGroupLabel: 1 + _showAssignedControllersGroupLabel: 1 + _showSettingsGroupLabel: 1 + _showMapCategoriesGroupLabel: 1 + _showControllerNameLabel: 1 + _showAssignedControllers: 0 +--- !u!1 &486734856 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 486734857} + - 222: {fileID: 486734862} + - 114: {fileID: 486734860} + - 114: {fileID: 486734858} + - 114: {fileID: 486734859} + - 114: {fileID: 486734861} + - 114: {fileID: 486734864} + - 114: {fileID: 486734863} + m_Layer: 5 + m_Name: RestoreDefaultsButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &486734857 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + 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: 1608002193} + m_Father: {fileID: 177266418} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 384.809174, y: 0} + m_SizeDelta: {x: 232.061081, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!114 &486734858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 392545912} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 486734860} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 486734859} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &486734859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RestoreDefaults + intData: 0 + text: {fileID: 1608002194} +--- !u!114 &486734860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &486734861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 486734858} + - _themeClass: button + _component: {fileID: 1608002194} +--- !u!222 &486734862 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} +--- !u!114 &486734863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11445492, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &486734864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11422534, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 486734856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &493964941 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 493964942} + - 222: {fileID: 493964944} + - 114: {fileID: 493964943} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &493964942 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} + 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: 18005609} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &493964943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Assign Controller +--- !u!222 &493964944 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 493964941} +--- !u!1001 &577525006 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._actionCategoryIds.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._actionCategoryIds.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 452158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _rewiredInputManager + value: + objectReference: {fileID: 1842252933} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _screenToggleAction + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _showActionCategoryLabels + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._mapCategoryId + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[1]._actionCategoryIds.Array.data[0] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[1] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[0]._actionCategoryIds.Array.data[3] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._mapCategoryId + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _mappingSets.Array.data[2]._actionCategoryIds.Array.data[0] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _showInputBehaviorSettings + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._joystickAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._mouseXYAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._joystickAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._mouseXYAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._inputBehaviorId + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[0]._showJoystickAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._joystickAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._mouseXYAxisSensitivityIcon + value: + objectReference: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._joystickAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._mouseXYAxisSensitivityMax + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._inputBehaviorId + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._showJoystickAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _inputBehaviorSettings.Array.data[1]._showMouseXYAxisSensitivity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _universalCancelAction + value: 22 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _showAssignedControllers + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _keyboardInputFieldCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + propertyPath: _keyboardColMaxWidth + value: 200 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_RootGameObject: {fileID: 462349629} + m_IsPrefabParent: 0 + m_IsExploded: 1 +--- !u!1 &623222665 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 623222666} + - 222: {fileID: 623222670} + - 114: {fileID: 623222669} + - 114: {fileID: 623222667} + - 114: {fileID: 623222668} + m_Layer: 5 + m_Name: ScrollbarVert + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623222666 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + 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: 1386582833} + m_Father: {fileID: 88645609} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -50} + m_SizeDelta: {x: 40, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &623222667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1202284168} + m_HandleRect: {fileID: 1202284170} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &623222668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452146, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 623222667} +--- !u!114 &623222669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!222 &623222670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 623222665} +--- !u!1 &678698725 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 678698726} + - 114: {fileID: 678698727} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &678698726 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 678698725} + 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: 1965681710} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &678698727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452066, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 678698725} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &698447876 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 698447877} + - 114: {fileID: 698447879} + - 114: {fileID: 698447878} + m_Layer: 5 + m_Name: AssignedControllersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &698447877 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + 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: 2126411305} + - {fileID: 938702997} + m_Father: {fileID: 787396547} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 490, y: 0} + m_SizeDelta: {x: 494, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &698447878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452058, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 2126411306} + _content: {fileID: 938702997} +--- !u!114 &698447879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452060, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 698447876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &732155361 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152092, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 732155362} + - 225: {fileID: 732155363} + m_Layer: 5 + m_Name: MainPageGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &732155362 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 732155361} + 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: 959623822} + - {fileID: 768613769} + m_Father: {fileID: 1704911778} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -10, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!225 &732155363 +CanvasGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22552158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 732155361} + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &768613768 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 768613769} + m_Layer: 5 + m_Name: MainContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &768613769 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 768613768} + 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: 1092334083} + m_Father: {fileID: 732155362} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -80, y: -80} + m_Pivot: {x: .5, y: .5} +--- !u!1 &787396546 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 787396547} + - 114: {fileID: 787396548} + m_Layer: 5 + m_Name: ControllerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &787396547 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452084, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 787396546} + 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: 1221201992} + - {fileID: 698447877} + m_Father: {fileID: 1092334083} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -30} + m_SizeDelta: {x: 984, y: 76} + m_Pivot: {x: 0, y: 1} +--- !u!114 &787396548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452014, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 787396546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &809986498 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 809986499} + - 222: {fileID: 809986502} + - 114: {fileID: 809986500} + - 114: {fileID: 809986501} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &809986499 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + 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: 146075467} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &809986500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Settings:' +--- !u!114 &809986501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 809986500} +--- !u!222 &809986502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252150, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 809986498} +--- !u!1 &869223170 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152086, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 869223171} + - 222: {fileID: 869223177} + - 114: {fileID: 869223176} + - 114: {fileID: 869223175} + - 114: {fileID: 869223174} + - 114: {fileID: 869223173} + - 114: {fileID: 869223172} + m_Layer: 5 + m_Name: RemoveButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &869223171 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + 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: 1859478487} + m_Father: {fileID: 1502626196} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 75, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &869223172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452024, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &869223173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452026, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 869223175} + - _themeClass: button + _component: {fileID: 1859478488} +--- !u!114 &869223174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452030, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RemoveController + intData: 0 + text: {fileID: 1859478488} +--- !u!114 &869223175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452032, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 869223176} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 869223174} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &869223176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452028, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &869223177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 869223170} +--- !u!1 &902123677 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 902123681} + - 222: {fileID: 902123680} + - 114: {fileID: 902123679} + - 114: {fileID: 902123678} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &902123678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 902123679} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: set_interactable + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &902123679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &902123680 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} +--- !u!224 &902123681 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 902123677} + 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: 80787451} + m_Father: {fileID: 1725700730} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: .5, y: 0} +--- !u!1 &902755519 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152088, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 902755520} + - 222: {fileID: 902755526} + - 114: {fileID: 902755523} + - 114: {fileID: 902755521} + - 114: {fileID: 902755522} + - 114: {fileID: 902755525} + - 114: {fileID: 902755524} + m_Layer: 5 + m_Name: CalibrateButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &902755520 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + 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: 1387685777} + m_Father: {fileID: 1502626196} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &902755521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452042, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 902755523} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 462349631} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 902755522} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &902755522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452038, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: CalibrateController + intData: 0 + text: {fileID: 1387685778} +--- !u!114 &902755523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452040, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &902755524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452034, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &902755525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452036, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 902755521} + - _themeClass: button + _component: {fileID: 1387685778} +--- !u!222 &902755526 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252130, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 902755519} +--- !u!1 &938702996 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 938702997} + - 114: {fileID: 938702998} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &938702997 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 938702996} + 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: 698447877} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 494, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &938702998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451996, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 938702996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 200, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &944560920 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152094, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 944560921} + - 222: {fileID: 944560924} + - 114: {fileID: 944560922} + - 114: {fileID: 944560923} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &944560921 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + 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: 1965681710} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &944560922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452048, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Players:' +--- !u!114 &944560923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452046, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 944560922} +--- !u!222 &944560924 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 944560920} +--- !u!1 &959623821 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152102, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 959623822} + - 222: {fileID: 959623825} + - 114: {fileID: 959623823} + - 114: {fileID: 959623824} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &959623822 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452104, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + 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: 732155362} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &959623823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452064, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .862745106} + 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 +--- !u!114 &959623824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452062, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: mainWindow + _component: {fileID: 959623823} +--- !u!222 &959623825 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 959623821} +--- !u!1 &1092334082 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1092334083} + - 114: {fileID: 1092334084} + m_Layer: 5 + m_Name: MainContentInner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1092334083 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1092334082} + 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: 177266418} + - {fileID: 1965681710} + - {fileID: 787396547} + - {fileID: 59820435} + - {fileID: 1224995810} + m_Father: {fileID: 768613769} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1092334084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1092334082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &1202284167 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1202284170} + - 222: {fileID: 1202284169} + - 114: {fileID: 1202284168} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1202284168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!222 &1202284169 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252148, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} +--- !u!224 &1202284170 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1202284167} + 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: 1386582833} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!1 &1221201991 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1221201992} + - 114: {fileID: 1221201995} + - 114: {fileID: 1221201994} + - 114: {fileID: 1221201993} + m_Layer: 5 + m_Name: ControllerSettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1221201992 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452128, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + 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: 1434556793} + - {fileID: 1502626196} + m_Father: {fileID: 787396547} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -38} + m_SizeDelta: {x: 470, y: 76} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1221201993 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 459804801} + _content: {fileID: 1502626196} +--- !u!114 &1221201994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 470 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &1221201995 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1221201991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!1 &1224995809 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1224995810} + - 114: {fileID: 1224995812} + - 114: {fileID: 1224995811} + m_Layer: 5 + m_Name: InputGridGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1224995810 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452142, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + 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: 88645609} + m_Father: {fileID: 1092334083} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 709.999939, y: -70} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1224995811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452124, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &1224995812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452126, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1224995809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!1 &1226677879 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1226677880} + - 114: {fileID: 1226677881} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1226677880 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452132, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1226677879} + 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: 146075467} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 150, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1226677881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1226677879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1265263248 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1265263252} + - 114: {fileID: 1265263251} + - 114: {fileID: 1265263249} + m_Layer: 0 + m_Name: RewiredEventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1265263249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1265263248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 10efa70eea88e69459c632aac286892d, type: 3} + m_Name: + m_EditorClassIdentifier: + useAllRewiredGamePlayers: 1 + useRewiredSystemPlayer: 1 + rewiredPlayerIds: 00000000 + moveOneElementPerAxisPress: 0 + m_HorizontalAxis: UIHorizontal + m_VerticalAxis: UIVertical + m_SubmitButton: UISubmit + m_CancelButton: UICancel + m_InputActionsPerSecond: 4.5 + m_RepeatDelay: 0 + m_allowMouseInput: 1 + m_allowMouseInputIfTouchSupported: 1 + m_ForceModuleActive: 0 +--- !u!114 &1265263251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1265263248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1265263252 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1265263248} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &1267516141 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1267516142} + - 114: {fileID: 1267516145} + - 114: {fileID: 1267516144} + - 114: {fileID: 1267516143} + m_Layer: 5 + m_Name: MapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1267516142 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452114, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + 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: 1284920089} + - {fileID: 1749328240} + m_Father: {fileID: 59820435} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 160, y: 0} + m_SizeDelta: {x: 824, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1267516143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 1284920090} + _content: {fileID: 1749328240} +--- !u!114 &1267516144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452082, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &1267516145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1267516141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &1284920088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1284920089} + - 222: {fileID: 1284920092} + - 114: {fileID: 1284920090} + - 114: {fileID: 1284920091} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1284920089 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + 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: 1267516142} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 824, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1284920090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Categories:' +--- !u!114 &1284920091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452070, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 1284920090} +--- !u!222 &1284920092 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252138, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1284920088} +--- !u!1 &1364034793 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1364034798} + - 20: {fileID: 1364034797} + - 92: {fileID: 1364034796} + - 124: {fileID: 1364034795} + - 81: {fileID: 1364034794} + 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 &1364034794 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!124 &1364034795 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!92 &1364034796 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 +--- !u!20 &1364034797 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: .300000012 + 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_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: .0219999999 +--- !u!4 &1364034798 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364034793} + 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 +--- !u!1 &1386582832 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1386582833} + 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 &1386582833 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452156, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1386582832} + 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: 1202284170} + m_Father: {fileID: 623222666} + m_RootOrder: 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: .5, y: .5} +--- !u!1 &1387685776 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1387685777} + - 222: {fileID: 1387685779} + - 114: {fileID: 1387685778} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1387685777 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} + 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: 902755520} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1387685778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Calibrate +--- !u!222 &1387685779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252154, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1387685776} +--- !u!1 &1416174898 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1416174899} + - 222: {fileID: 1416174902} + - 114: {fileID: 1416174901} + - 114: {fileID: 1416174900} + m_Layer: 5 + m_Name: ControllerNameLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1416174899 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + 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: 202236613} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 21.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1416174900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452118, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 1416174901} +--- !u!114 &1416174901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: None +--- !u!222 &1416174902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1416174898} +--- !u!1 &1434556792 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1434556793} + - 114: {fileID: 1434556794} + m_Layer: 5 + m_Name: ControllerLabelGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1434556793 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1434556792} + 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: 459804800} + - {fileID: 202236613} + m_Father: {fileID: 1221201992} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 470, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1434556794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451998, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1434556792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!1 &1502626195 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1502626196} + - 114: {fileID: 1502626197} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1502626196 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452134, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1502626195} + 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: 869223171} + - {fileID: 902755520} + - {fileID: 18005609} + m_Father: {fileID: 1221201992} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -76} + m_SizeDelta: {x: 470, y: 40} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1502626197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452116, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1502626195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1530239315 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1530239316} + - 222: {fileID: 1530239318} + - 114: {fileID: 1530239317} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1530239316 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} + 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: 1725700730} + m_Father: {fileID: 1888913175} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 333} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1530239317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .403921574} + 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 +--- !u!222 &1530239318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1530239315} +--- !u!1 &1608002192 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152106, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1608002193} + - 222: {fileID: 1608002195} + - 114: {fileID: 1608002194} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1608002193 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452108, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} + 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: 486734857} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.03054, y: -20} + m_SizeDelta: {x: 132.061081, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1608002194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452068, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Restore Defaults +--- !u!222 &1608002195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252136, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1608002192} +--- !u!1 &1704911777 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1704911778} + - 223: {fileID: 1704911779} + - 114: {fileID: 1704911780} + - 114: {fileID: 1704911782} + - 114: {fileID: 1704911781} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1704911778 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452152, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + 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: 732155362} + m_Father: {fileID: 462349630} + m_RootOrder: 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!223 &1704911779 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22352158, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!114 &1704911780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1704911781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11423344, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b7420df3cab0ff46a7188a17749d1cc, type: 3} + m_Name: + m_EditorClassIdentifier: + breakPoints: + - name: 2:1 + screenAspectRatio: 2 + referenceResolution: {x: 2110, y: 600} + - name: 16:9 + screenAspectRatio: 1.77699995 + referenceResolution: {x: 1885, y: 600} + - name: 16:10 + screenAspectRatio: 1.60000002 + referenceResolution: {x: 1694, y: 600} + - name: 3:2 + screenAspectRatio: 1.5 + referenceResolution: {x: 1530, y: 600} + - name: 4:3 + screenAspectRatio: 1.33299994 + referenceResolution: {x: 1360, y: 600} + - name: 5:4 + screenAspectRatio: 1.25 + referenceResolution: {x: 1280, y: 600} + - name: Square + screenAspectRatio: 1 + referenceResolution: {x: 1020, y: 600} + - name: 4:5 + screenAspectRatio: .800000012 + referenceResolution: {x: 920, y: 600} + - name: 3:4 + screenAspectRatio: .75 + referenceResolution: {x: 880, y: 600} + - name: 2:3 + screenAspectRatio: .666000009 + referenceResolution: {x: 960, y: 600} + - name: 10:16 + screenAspectRatio: .625 + referenceResolution: {x: 960, y: 600} + - name: 9:16 + screenAspectRatio: .5625 + referenceResolution: {x: 880, y: 600} + - name: 1:2 + screenAspectRatio: .5 + referenceResolution: {x: 840, y: 600} +--- !u!114 &1704911782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11423346, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1704911777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d5765b502c6a5e4ab9dfff21808a241, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + 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!1 &1725700729 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1725700730} + m_Layer: 5 + m_Name: Padding + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1725700730 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1725700729} + 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: 1900135694} + - {fileID: 902123681} + m_Father: {fileID: 1530239316} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -120, y: -120} + m_Pivot: {x: .5, y: .5} +--- !u!1 &1749328239 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152070, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1749328240} + - 114: {fileID: 1749328241} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1749328240 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452072, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1749328239} + 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: 1267516142} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 824, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1749328241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11451994, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1749328239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &1842252932 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1842252934} + - 114: {fileID: 1842252933} + - 114: {fileID: 1842252935} + m_Layer: 0 + m_Name: Rewired Input Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1842252933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 581b3e3c96df0ef42aef16b63b27b87f, type: 3} + m_Name: + m_EditorClassIdentifier: + _dontDestroyOnLoad: 1 + _userData: + configVars: + updateLoop: 1 + alwaysUseUnityInput: 0 + windowsStandalonePrimaryInputSource: 0 + osx_primaryInputSource: 0 + linux_primaryInputSource: 0 + windowsUWP_primaryInputSource: 0 + xboxOne_primaryInputSource: 0 + useXInput: 1 + useNativeMouse: 1 + useEnhancedDeviceSupport: 1 + windowsStandalone_useSteamRawInputControllerWorkaround: 1 + android_supportUnknownGamepads: 0 + useSteamControllerSupport: 1 + maxJoysticksPerPlayer: 1 + autoAssignJoysticks: 1 + assignJoysticksToPlayingPlayersOnly: 0 + distributeJoysticksEvenly: 1 + reassignJoystickToPreviousOwnerOnReconnect: 1 + defaultJoystickAxis2DDeadZoneType: 1 + players: + - _id: 9999999 + _name: System + _descriptiveName: System + _startPlaying: 1 + _defaultJoystickMaps: [] + _defaultMouseMaps: [] + _defaultKeyboardMaps: + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 4 + _layoutId: 0 + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _excludeFromControllerAutoAssignment: 0 + - _id: 1 + _name: Player0 + _descriptiveName: Player 1 + _startPlaying: 1 + _defaultJoystickMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + - _enabled: 1 + _categoryId: 2 + _layoutId: 0 + - _enabled: 1 + _categoryId: 1 + _layoutId: 0 + - _enabled: 1 + _categoryId: 3 + _layoutId: 0 + - _enabled: 1 + _categoryId: 5 + _layoutId: 0 + _defaultMouseMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 0 + _defaultKeyboardMaps: + - _enabled: 1 + _categoryId: 0 + _layoutId: 1 + - _enabled: 1 + _categoryId: 2 + _layoutId: 1 + - _enabled: 1 + _categoryId: 5 + _layoutId: 1 + _defaultCustomControllerMaps: [] + _startingCustomControllers: [] + _assignMouseOnStart: 1 + _excludeFromControllerAutoAssignment: 0 + actions: + - _id: 0 + _name: Move Horizontal + _type: 0 + _descriptiveName: Move Horizontal + _positiveDescriptiveName: Move Right + _negativeDescriptiveName: Move Left + _behaviorId: 2 + _userAssignable: 1 + _categoryId: 0 + - _id: 1 + _name: Move Vertical + _type: 0 + _descriptiveName: Move Vertical + _positiveDescriptiveName: Move Up + _negativeDescriptiveName: Move Down + _behaviorId: 2 + _userAssignable: 1 + _categoryId: 0 + - _id: 2 + _name: Jump + _type: 1 + _descriptiveName: Jump + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 3 + _name: Fire + _type: 1 + _descriptiveName: Fire + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 4 + _name: Duck + _type: 1 + _descriptiveName: Duck + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 5 + _name: Reload + _type: 1 + _descriptiveName: Reload + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 6 + _name: Look Horizontal + _type: 0 + _descriptiveName: Look Horizontal + _positiveDescriptiveName: Look Right + _negativeDescriptiveName: Look Left + _behaviorId: 1 + _userAssignable: 1 + _categoryId: 0 + - _id: 7 + _name: Look Vertical + _type: 0 + _descriptiveName: Look Vertical + _positiveDescriptiveName: Look Up + _negativeDescriptiveName: Look Down + _behaviorId: 1 + _userAssignable: 1 + _categoryId: 0 + - _id: 8 + _name: Fire2 + _type: 1 + _descriptiveName: Secondary Fire + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 9 + _name: Punch + _type: 1 + _descriptiveName: Punch + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 10 + _name: Activate + _type: 1 + _descriptiveName: Activate + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 11 + _name: Map + _type: 1 + _descriptiveName: Open Map + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 12 + _name: Communicate + _type: 1 + _descriptiveName: Communicate + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 13 + _name: Suicide + _type: 1 + _descriptiveName: Suicide + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 0 + - _id: 14 + _name: ChangeSeat + _type: 1 + _descriptiveName: Change Seat + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 15 + _name: Radar + _type: 1 + _descriptiveName: Radar + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 16 + _name: Brake + _type: 1 + _descriptiveName: Brake + _positiveDescriptiveName: Brake + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 17 + _name: Grenade + _type: 1 + _descriptiveName: Throw Grenade + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 18 + _name: Dig + _type: 1 + _descriptiveName: Dig + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 19 + _name: Run + _type: 1 + _descriptiveName: Run + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 20 + _name: Scope + _type: 1 + _descriptiveName: Use Scope + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 21 + _name: ToggleControlMapper + _type: 1 + _descriptiveName: Open Control Mapper + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 22 + _name: UniversalCancel + _type: 1 + _descriptiveName: Universal Cancel + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 23 + _name: Restricted1 + _type: 1 + _descriptiveName: Restricted1 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 0 + _categoryId: 1 + - _id: 24 + _name: Eject + _type: 1 + _descriptiveName: Eject + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 25 + _name: Accelerate + _type: 1 + _descriptiveName: Accelerate + _positiveDescriptiveName: Accelerate + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 2 + - _id: 26 + _name: Action26 + _type: 1 + _descriptiveName: Action26 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 3 + - _id: 27 + _name: Action27 + _type: 1 + _descriptiveName: Action27 + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 3 + - _id: 28 + _name: Crawl + _type: 1 + _descriptiveName: Crawl + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 29 + _name: MedKit + _type: 1 + _descriptiveName: Use Med Kit + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 0 + _userAssignable: 1 + _categoryId: 4 + - _id: 30 + _name: UIHorizontal + _type: 0 + _descriptiveName: UI Horizontal + _positiveDescriptiveName: UI Move Right + _negativeDescriptiveName: UI Move Left + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 32 + _name: UISubmit + _type: 1 + _descriptiveName: UI Submit + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 33 + _name: UICancel + _type: 1 + _descriptiveName: UI Cancel + _positiveDescriptiveName: + _negativeDescriptiveName: + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + - _id: 31 + _name: UIVertical + _type: 0 + _descriptiveName: UI Vertical + _positiveDescriptiveName: UI Move Up + _negativeDescriptiveName: UI Move Down + _behaviorId: 3 + _userAssignable: 1 + _categoryId: 5 + actionCategories: + - _name: Default + _descriptiveName: General + _tag: + _id: 0 + _userAssignable: 1 + - _name: System + _descriptiveName: System + _tag: + _id: 1 + _userAssignable: 0 + - _name: Infantry + _descriptiveName: Infantry + _tag: + _id: 4 + _userAssignable: 1 + - _name: Vehicle + _descriptiveName: Vehicle + _tag: + _id: 2 + _userAssignable: 1 + - _name: Category2 + _descriptiveName: Category2 + _tag: + _id: 3 + _userAssignable: 1 + - _name: UI + _descriptiveName: UI + _tag: + _id: 5 + _userAssignable: 1 + actionCategoryMap: + list: + - categoryId: 0 + actionIds: 010000000000000003000000080000000500000006000000070000000a0000000b0000000c0000000d000000 + - categoryId: 1 + actionIds: 150000001600000017000000 + - categoryId: 2 + actionIds: 1900000010000000180000000e0000000f000000 + - categoryId: 3 + actionIds: 1a0000001b000000 + - categoryId: 4 + actionIds: 1300000002000000040000001c00000009000000110000001d0000001400000012000000 + - categoryId: 5 + actionIds: 1e0000001f0000002000000021000000 + inputBehaviors: + - _id: 0 + _name: Default + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 1 + _name: Camera Look + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 2 + _name: Movement + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 3 + _digitalAxisSensitivity: 3 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + - _id: 3 + _name: UIControl + _joystickAxisSensitivity: 1 + _digitalAxisSnap: 1 + _digitalAxisInstantReverse: 0 + _digitalAxisGravity: 1000 + _digitalAxisSensitivity: 1000 + _mouseXYAxisMode: 0 + _mouseOtherAxisMode: 0 + _mouseXYAxisSensitivity: 1 + _mouseXYAxisDeltaCalc: 0 + _mouseOtherAxisSensitivity: 1 + _customControllerAxisSensitivity: 1 + _buttonDoublePressSpeed: .300000012 + _buttonDeadZone: .5 + _buttonDownBuffer: 0 + mapCategories: + - _name: Default + _descriptiveName: Common + _tag: + _id: 0 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 00000000020000000500000003000000 + - _name: UI + _descriptiveName: UI + _tag: + _id: 1 + _userAssignable: 1 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: 0100000003000000 + - _name: System + _descriptiveName: System + _tag: + _id: 3 + _userAssignable: 0 + _checkConflictsWithAllCategories: 1 + _checkConflictsCategoryIds: + - _name: SystemMenu + _descriptiveName: SystemMenu + _tag: + _id: 4 + _userAssignable: 0 + _checkConflictsWithAllCategories: 0 + _checkConflictsCategoryIds: + joystickLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + keyboardLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + - _name: Player1 + _descriptiveName: Player1 + _id: 1 + - _name: Player2 + _descriptiveName: Player2 + _id: 2 + mouseLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + customControllerLayouts: + - _name: Default + _descriptiveName: Default + _id: 0 + joystickMaps: + - id: 0 + categoryId: 0 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 8 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: 5 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: 8 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 6 + _elementType: 0 + _elementIdentifierId: 2 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 7 + _elementType: 0 + _elementIdentifierId: 3 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 1 + _elementIdentifierId: 12 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 1 + categoryId: 1 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: 19 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: 20 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: 21 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: 22 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: 5 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 34 + _elementType: 1 + _elementIdentifierId: 14 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 2 + categoryId: 1 + layoutId: 0 + name: + hardwareGuidString: 00000000-0000-0000-0000-000000000000 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 0 + _elementIdentifierId: 0 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 0 + _elementIdentifierId: 1 + _axisRange: 0 + _invert: 1 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: 32 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: 33 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 4 + categoryId: 3 + layoutId: 0 + name: + hardwareGuidString: 83b427e4-086f-47f3-bb06-be266abd1ca5 + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 1 + _actionId: 21 + _elementType: 1 + _elementIdentifierId: 15 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + keyboardMaps: + - id: 1 + categoryId: 0 + layoutId: 1 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 119 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 97 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 1 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 115 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 0 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 100 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 306 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 8 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 122 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 114 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 101 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 11 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 109 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 12 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 105 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 13 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 293 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 4 + categoryId: 3 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 1 + _actionId: 22 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 27 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 1 + _actionId: 21 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 282 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 1 + _actionId: 23 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 283 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - id: 7 + categoryId: 4 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 275 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 30 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 276 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 273 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 31 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 1 + _keyboardKeyCode: 274 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 32 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 13 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 5 + _actionId: 33 + _elementType: 1 + _elementIdentifierId: -1 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 8 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + mouseMaps: + - id: 0 + categoryId: 0 + layoutId: 0 + name: + hardwareGuidString: + customControllerUid: 0 + actionElementMaps: + - _actionCategoryId: 0 + _actionId: 3 + _elementType: 1 + _elementIdentifierId: 3 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 5 + _elementType: 1 + _elementIdentifierId: 4 + _axisRange: 0 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + - _actionCategoryId: 0 + _actionId: 10 + _elementType: 0 + _elementIdentifierId: 2 + _axisRange: 1 + _invert: 0 + _axisContribution: 0 + _keyboardKeyCode: 0 + _modifierKey1: 0 + _modifierKey2: 0 + _modifierKey3: 0 + customControllerMaps: [] + customControllers: [] + playerIdCounter: 4 + actionIdCounter: 35 + actionCategoryIdCounter: 6 + inputBehaviorIdCounter: 4 + mapCategoryIdCounter: 6 + joystickLayoutIdCounter: 1 + keyboardLayoutIdCounter: 3 + mouseLayoutIdCounter: 1 + customControllerLayoutIdCounter: 1 + joystickMapIdCounter: 6 + keyboardMapIdCounter: 9 + mouseMapIdCounter: 1 + customControllerMapIdCounter: 0 + customControllerIdCounter: 0 + _controllerDataFiles: {fileID: 11400000, guid: d21d2b20df8369642b76aafbb2576ba7, + type: 2} +--- !u!4 &1842252934 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!114 &1842252935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1842252932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 307e2fe016d34e8438488ad3bf56abd2, type: 3} + m_Name: + m_EditorClassIdentifier: + isEnabled: 1 + loadDataOnStart: 1 + playerPrefsKeyPrefix: RewiredCMDemo +--- !u!1 &1859478486 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1859478487} + - 222: {fileID: 1859478489} + - 114: {fileID: 1859478488} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1859478487 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452120, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} + 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: 869223171} + m_RootOrder: 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: .5, y: .5} +--- !u!114 &1859478488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452090, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Remove +--- !u!222 &1859478489 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252144, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1859478486} +--- !u!1 &1888913174 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1888913175} + - 223: {fileID: 1888913178} + - 114: {fileID: 1888913177} + - 114: {fileID: 1888913176} + - 114: {fileID: 1888913179} + m_Layer: 5 + m_Name: Canvas_DemoMessage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1888913175 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + 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: 1530239316} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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 &1888913176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1888913177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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 &1888913178 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!114 &1888913179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1888913174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d522437a28e26a419d3e5e5a84e2f7e, type: 3} + m_Name: + m_EditorClassIdentifier: + controlMapper: {fileID: 462349631} + defaultSelectable: {fileID: 902123678} +--- !u!1 &1900135691 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1900135694} + - 222: {fileID: 1900135693} + - 114: {fileID: 1900135692} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1900135692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1.26999998 + m_Text: 'Press F1, Start, or the button + + below to open Control Mapper' +--- !u!222 &1900135693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} +--- !u!224 &1900135694 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1900135691} + 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: 1725700730} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 333} + m_Pivot: {x: .5, y: 1} +--- !u!1 &1965681709 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152096, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1965681710} + - 114: {fileID: 1965681712} + - 114: {fileID: 1965681711} + - 114: {fileID: 1965681713} + m_Layer: 5 + m_Name: PlayersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1965681710 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + 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: 944560921} + - {fileID: 678698726} + m_Father: {fileID: 1092334083} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1965681711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452050, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 944560922} + _content: {fileID: 678698726} +--- !u!114 &1965681712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452052, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &1965681713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11495596, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1965681709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &1980042851 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152098, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1980042852} + - 114: {fileID: 1980042853} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1980042852 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452100, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1980042851} + 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: 339685136} + - {fileID: 429171595} + m_Father: {fileID: 88645609} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -60, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1980042853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452056, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 1980042851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!1 &2013114686 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152078, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2013114687} + - 222: {fileID: 2013114689} + - 114: {fileID: 2013114688} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2013114687 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452080, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} + 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: 392545911} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 71.3740463, y: -20} + m_SizeDelta: {x: 42.7480927, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!114 &2013114688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452002, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Done +--- !u!222 &2013114689 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252122, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2013114686} +--- !u!1 &2126411304 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 152110, guid: 03b9a6db219d12e4f8ec2934e0c7e721, type: 2} + m_PrefabInternal: {fileID: 577525006} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2126411305} + - 222: {fileID: 2126411308} + - 114: {fileID: 2126411306} + - 114: {fileID: 2126411307} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2126411305 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22452112, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + 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: 698447877} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 494, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2126411306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452076, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Assigned Controllers:' +--- !u!114 &2126411307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11452074, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 2126411306} +--- !u!222 &2126411308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 22252140, guid: 03b9a6db219d12e4f8ec2934e0c7e721, + type: 2} + m_PrefabInternal: {fileID: 577525006} + m_GameObject: {fileID: 2126411304} diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity.meta new file mode 100644 index 0000000..a5121c5 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/ControlMapperDemo_1PlayerSimple.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 8e63fb93411f2b844a52d533b35a4c1c +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts.meta new file mode 100644 index 0000000..5bbf941 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 8453f99cd1e05e644b66d7b6af2c8914 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs new file mode 100644 index 0000000..05e1eb8 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2015 Augie R. Maddox, Guavaman Enterprises. All rights reserved. +#pragma warning disable 0219 +#pragma warning disable 0618 +#pragma warning disable 0649 + +namespace Rewired.Demos { + + using UnityEngine; + using UnityEngine.EventSystems; + using System.Collections; + + [AddComponentMenu("")] + public class ControlMapperDemoMessage : MonoBehaviour { + + public Rewired.UI.ControlMapper.ControlMapper controlMapper; + + public UnityEngine.UI.Selectable defaultSelectable; + + void Awake() { + if(controlMapper != null) { + controlMapper.ScreenClosedEvent += OnControlMapperClosed; + controlMapper.ScreenOpenedEvent += OnControlMapperOpened; + } + } + + void Start() { + SelectDefault(); + } + + void OnControlMapperClosed() { + this.gameObject.SetActive(true); + StartCoroutine(SelectDefaultDeferred()); + } + + void OnControlMapperOpened() { + this.gameObject.SetActive(false); + } + + void SelectDefault() { + if(EventSystem.current == null) return; + if(defaultSelectable != null) EventSystem.current.SetSelectedGameObject(defaultSelectable.gameObject); + } + + IEnumerator SelectDefaultDeferred() { + yield return null; + SelectDefault(); + } + } +} \ No newline at end of file diff --git a/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs.meta b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs.meta new file mode 100644 index 0000000..d99573c --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Examples/ControlMapperDemo/Scripts/ControlMapperDemoMessage.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d522437a28e26a419d3e5e5a84e2f7e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images.meta b/Assets/Control Mapper/Extras/ControlMapper/Images.meta new file mode 100644 index 0000000..bcf0893 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: a694a995f97d1674dbedaa76ca47719e +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png b/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png new file mode 100644 index 0000000..2c311ed Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png.meta new file mode 100644 index 0000000..cd2ce46 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/calibration-value-marker.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7f4e5f9eac93c0a4ab5e638adf6b02e1 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png new file mode 100644 index 0000000..217cb50 Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png.meta new file mode 100644 index 0000000..bf4c342 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-center-stick.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: ec2db8ab6243b9545bbe7e137131b6c3 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png new file mode 100644 index 0000000..9b64f8d Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png.meta new file mode 100644 index 0000000..f0f88ab --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/graphic-move-stick.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: a734389a53a8a384888da1abcad1dd1f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png new file mode 100644 index 0000000..a701bce Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png.meta new file mode 100644 index 0000000..cacb838 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-invert.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: c084db22e43bd61499f3d42d7946ba31 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png new file mode 100644 index 0000000..93e7c4e Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png.meta new file mode 100644 index 0000000..72e92b8 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-joystick.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 0c9ce4e64fb83764aa394faeeed56210 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png new file mode 100644 index 0000000..a88702b Binary files /dev/null and b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png differ diff --git a/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png.meta b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png.meta new file mode 100644 index 0000000..49851e4 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Images/icon-mouse.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: fc88ce24a47f4014cb0ad237abc8d1dd +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: 16 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 8 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: RewiredControlMapper + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Languages.meta b/Assets/Control Mapper/Extras/ControlMapper/Languages.meta new file mode 100644 index 0000000..13f8ee3 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Languages.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: e830dad4ecf38cb4ca0bc89628fd5d49 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset b/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset new file mode 100644 index 0000000..4c9b72a --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e240f552ac8b850498d8b7473de529bd, type: 3} + m_Name: DefaultEnglish + m_EditorClassIdentifier: + _yes: Yes + _no: No + _add: Add + _replace: Replace + _remove: Remove + _cancel: Cancel + _none: None + _okay: Okay + _done: Done + _default: Default + _assignControllerWindowTitle: Choose Controller + _assignControllerWindowMessage: Press any button or move an axis on the controller + you would like to use. + _controllerAssignmentConflictWindowTitle: Controller Assignment + _controllerAssignmentConflictWindowMessage: '{0} is already assigned to {1}. Do + you want to assign this controller to {2} instead?' + _elementAssignmentPrePollingWindowMessage: First center or zero all sticks and axes + and press any button or wait for the timer to finish. + _joystickElementAssignmentPollingWindowMessage: Now press a button or move an axis + to assign it to {0}. + _keyboardElementAssignmentPollingWindowMessage: Press a key to assign it to {0}. + Modifier keys may also be used. To assign a modifier key alone, hold it down for + 1 second. + _mouseElementAssignmentPollingWindowMessage: Press a mouse button or move an axis + to assign it to {0}. + _elementAssignmentConflictWindowMessage: Assignment Conflict + _elementAlreadyInUseBlocked: '{0} is already in use cannot be replaced.' + _elementAlreadyInUseCanReplace: '{0} is already in use. Do you want to replace it?' + _elementAlreadyInUseCanReplace_conflictAllowed: '{0} is already in use. Do you want + to replace it? You may also choose to add the assignment anyway.' + _mouseAssignmentConflictWindowTitle: Mouse Assignment + _mouseAssignmentConflictWindowMessage: The mouse is already assigned to {0}. Do + you want to assign the mouse to {1} instead? + _calibrateControllerWindowTitle: Calibrate Controller + _calibrateAxisStep1WindowTitle: Calibrate Zero + _calibrateAxisStep1WindowMessage: Center or zero {0} and press any button or wait + for the timer to finish. + _calibrateAxisStep2WindowTitle: Calibrate Range + _calibrateAxisStep2WindowMessage: Move {0} through its entire range then press any + button or wait for the timer to finish. + _inputBehaviorSettingsWindowTitle: Sensitivity Settings + _restoreDefaultsWindowTitle: Restore Defaults + _restoreDefaultsWindowMessage_onePlayer: This will restore the default input configuration. + Are you sure you want to do this? + _restoreDefaultsWindowMessage_multiPlayer: This will restore the default input configuration + for all players. Are you sure you want to do this? + _actionColumnLabel: Actions + _keyboardColumnLabel: Keyboard + _mouseColumnLabel: Mouse + _controllerColumnLabel: Controller + _removeControllerButtonLabel: Remove + _calibrateControllerButtonLabel: Calibrate + _assignControllerButtonLabel: Assign Controller + _inputBehaviorSettingsButtonLabel: Sensitivity + _doneButtonLabel: Done + _restoreDefaultsButtonLabel: Restore Defaults + _playersGroupLabel: 'Players:' + _controllerSettingsGroupLabel: 'Controller:' + _assignedControllersGroupLabel: 'Assigned Controllers:' + _settingsGroupLabel: 'Settings:' + _mapCategoriesGroupLabel: 'Categories:' + _calibrateWindow_deadZoneSliderLabel: 'Dead Zone:' + _calibrateWindow_zeroSliderLabel: 'Zero:' + _calibrateWindow_sensitivitySliderLabel: 'Sensitivity:' + _calibrateWindow_invertToggleLabel: Invert + _calibrateWindow_calibrateButtonLabel: Calibrate + _customEntries: [] diff --git a/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset.meta b/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset.meta new file mode 100644 index 0000000..abc64dd --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Languages/DefaultEnglish.asset.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2be3ae985e9faeb4b9dd3a1c915a3fc7 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs.meta new file mode 100644 index 0000000..a4bfb8f --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 3b1ac3ec61d77f44998262e4e7bc7f4a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab new file mode 100644 index 0000000..0ba7259 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab @@ -0,0 +1,3872 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152070 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452072} + - 114: {fileID: 11451994} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152072 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452074} + - 114: {fileID: 11451996} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152074 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452076} + - 114: {fileID: 11451998} + m_Layer: 5 + m_Name: ControllerLabelGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152076 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452078} + - 114: {fileID: 11452000} + - 114: {fileID: 11445496} + m_Layer: 5 + m_Name: WindowButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152078 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452080} + - 222: {fileID: 22252122} + - 114: {fileID: 11452002} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152080 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452082} + - 222: {fileID: 22252124} + - 114: {fileID: 11452010} + - 114: {fileID: 11452012} + - 114: {fileID: 11452008} + - 114: {fileID: 11452006} + - 114: {fileID: 11452004} + m_Layer: 5 + m_Name: AssignControllerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152082 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452084} + - 114: {fileID: 11452014} + m_Layer: 5 + m_Name: ControllerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &152084 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452086} + - 114: {fileID: 11452018} + - 222: {fileID: 22252126} + - 114: {fileID: 11452020} + - 114: {fileID: 11452022} + m_Layer: 5 + m_Name: ScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152086 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452088} + - 222: {fileID: 22252128} + - 114: {fileID: 11452028} + - 114: {fileID: 11452032} + - 114: {fileID: 11452030} + - 114: {fileID: 11452026} + - 114: {fileID: 11452024} + m_Layer: 5 + m_Name: RemoveButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152088 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452090} + - 222: {fileID: 22252130} + - 114: {fileID: 11452040} + - 114: {fileID: 11452042} + - 114: {fileID: 11452038} + - 114: {fileID: 11452036} + - 114: {fileID: 11452034} + m_Layer: 5 + m_Name: CalibrateButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152090 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452092} + - 114: {fileID: 11452044} + m_Layer: 5 + m_Name: HeadersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152092 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452094} + - 225: {fileID: 22552158} + m_Layer: 5 + m_Name: MainPageGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152094 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452096} + - 222: {fileID: 22252132} + - 114: {fileID: 11452048} + - 114: {fileID: 11452046} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152096 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452098} + - 114: {fileID: 11452052} + - 114: {fileID: 11452050} + - 114: {fileID: 11495596} + m_Layer: 5 + m_Name: PlayersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &152098 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452100} + - 114: {fileID: 11452056} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152100 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452102} + - 114: {fileID: 11452060} + - 114: {fileID: 11452058} + m_Layer: 5 + m_Name: AssignedControllersGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152102 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452104} + - 222: {fileID: 22252134} + - 114: {fileID: 11452064} + - 114: {fileID: 11452062} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152104 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452106} + - 114: {fileID: 11452066} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152106 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452108} + - 222: {fileID: 22252136} + - 114: {fileID: 11452068} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152108 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452110} + - 222: {fileID: 22252138} + - 114: {fileID: 11452072} + - 114: {fileID: 11452070} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152110 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452112} + - 222: {fileID: 22252140} + - 114: {fileID: 11452076} + - 114: {fileID: 11452074} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152112 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452114} + - 114: {fileID: 11452080} + - 114: {fileID: 11452082} + - 114: {fileID: 11452078} + m_Layer: 5 + m_Name: MapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152114 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 452158} + - 114: {fileID: 11452084} + m_Layer: 5 + m_Name: ControlMapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152116 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452116} + - 114: {fileID: 11452086} + m_Layer: 5 + m_Name: ControllerNameWrapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152118 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452118} + - 222: {fileID: 22252142} + - 114: {fileID: 11452088} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152120 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452120} + - 222: {fileID: 22252144} + - 114: {fileID: 11452090} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152122 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452122} + - 222: {fileID: 22252146} + - 114: {fileID: 11452096} + - 114: {fileID: 11452098} + - 114: {fileID: 11452094} + - 114: {fileID: 11452092} + - 114: {fileID: 11422530} + - 114: {fileID: 11445494} + m_Layer: 5 + m_Name: DoneButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152124 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452124} + - 222: {fileID: 22252148} + - 114: {fileID: 11452100} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152126 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452126} + - 222: {fileID: 22252150} + - 114: {fileID: 11452102} + - 114: {fileID: 11452104} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152128 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452128} + - 114: {fileID: 11452110} + - 114: {fileID: 11452108} + - 114: {fileID: 11452106} + m_Layer: 5 + m_Name: ControllerSettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152130 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452130} + - 114: {fileID: 11452112} + m_Layer: 5 + m_Name: InputGridContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152132 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452132} + - 114: {fileID: 11452114} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152134 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452134} + - 114: {fileID: 11452116} + m_Layer: 5 + m_Name: ButtonLayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152136 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452136} + - 222: {fileID: 22252152} + - 114: {fileID: 11452120} + - 114: {fileID: 11452118} + m_Layer: 5 + m_Name: ControllerNameLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152138 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452138} + m_Layer: 5 + m_Name: MainContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152140 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452140} + - 222: {fileID: 22252154} + - 114: {fileID: 11452122} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152142 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452142} + - 114: {fileID: 11452126} + - 114: {fileID: 11452124} + m_Layer: 5 + m_Name: InputGridGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152144 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452144} + - 114: {fileID: 11452128} + m_Layer: 5 + m_Name: MainContentInner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152146 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452146} + - 114: {fileID: 11452132} + - 114: {fileID: 11452134} + - 114: {fileID: 11452130} + m_Layer: 5 + m_Name: SettingsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152148 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452148} + - 114: {fileID: 11452136} + m_Layer: 5 + m_Name: SettingAndMapCategoriesGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &152150 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452150} + - 114: {fileID: 11452140} + - 114: {fileID: 11452138} + m_Layer: 5 + m_Name: InputGridInnerGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152152 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452152} + - 223: {fileID: 22352158} + - 114: {fileID: 11452144} + - 114: {fileID: 11423346} + - 114: {fileID: 11423344} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &152154 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452154} + - 222: {fileID: 22252156} + - 114: {fileID: 11452148} + - 114: {fileID: 11452150} + - 114: {fileID: 11452146} + m_Layer: 5 + m_Name: ScrollbarVert + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152156 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452156} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152158 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22452158} + - 222: {fileID: 22252158} + - 114: {fileID: 11452156} + - 114: {fileID: 11452158} + - 114: {fileID: 11452154} + - 114: {fileID: 11452152} + - 114: {fileID: 11422534} + - 114: {fileID: 11445492} + m_Layer: 5 + m_Name: RestoreDefaultsButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &195596 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22495596} + - 222: {fileID: 22295596} + - 114: {fileID: 11495594} + - 114: {fileID: 11495592} + m_Layer: 5 + m_Name: ControllerLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &452158 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152114} + 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: 22452152} + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &11422530 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11422534 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11423344 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b7420df3cab0ff46a7188a17749d1cc, type: 3} + m_Name: + m_EditorClassIdentifier: + breakPoints: + - name: 2:1 + screenAspectRatio: 2 + referenceResolution: {x: 2110, y: 600} + - name: 16:9 + screenAspectRatio: 1.77699995 + referenceResolution: {x: 1885, y: 600} + - name: 16:10 + screenAspectRatio: 1.60000002 + referenceResolution: {x: 1694, y: 600} + - name: 3:2 + screenAspectRatio: 1.5 + referenceResolution: {x: 1530, y: 600} + - name: 4:3 + screenAspectRatio: 1.33299994 + referenceResolution: {x: 1360, y: 600} + - name: 5:4 + screenAspectRatio: 1.25 + referenceResolution: {x: 1280, y: 600} + - name: Square + screenAspectRatio: 1 + referenceResolution: {x: 1020, y: 600} + - name: 4:5 + screenAspectRatio: .800000012 + referenceResolution: {x: 920, y: 600} + - name: 3:4 + screenAspectRatio: .75 + referenceResolution: {x: 880, y: 600} + - name: 2:3 + screenAspectRatio: .666000009 + referenceResolution: {x: 960, y: 600} + - name: 10:16 + screenAspectRatio: .625 + referenceResolution: {x: 960, y: 600} + - name: 9:16 + screenAspectRatio: .5625 + referenceResolution: {x: 880, y: 600} + - name: 1:2 + screenAspectRatio: .5 + referenceResolution: {x: 840, y: 600} +--- !u!114 &11423346 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d5765b502c6a5e4ab9dfff21808a241, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + 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!114 &11445492 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11445494 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11445496 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11451994 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &11451996 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 200, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &11451998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452000 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452002 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Done +--- !u!114 &11452004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452006 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452012} + - _themeClass: button + _component: {fileID: 11452088} +--- !u!114 &11452008 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: AssignController + intData: 0 + text: {fileID: 11452088} +--- !u!114 &11452010 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452010} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11452084} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 11452008} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11452014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22452150} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: .100000001 + m_Inertia: 1 + m_DecelerationRate: .135000005 + m_ScrollSensitivity: 50 + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11452150} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11452020 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452022 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &11452024 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452026 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452032} + - _themeClass: button + _component: {fileID: 11452090} +--- !u!114 &11452028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452030 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RemoveController + intData: 0 + text: {fileID: 11452090} +--- !u!114 &11452032 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452028} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11452084} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 11452030} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11452034 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452036 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452042} + - _themeClass: button + _component: {fileID: 11452122} +--- !u!114 &11452038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: CalibrateController + intData: 0 + text: {fileID: 11452122} +--- !u!114 &11452040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452042 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452040} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11452084} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 11452038} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11452044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 40 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11452046 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452048} +--- !u!114 &11452048 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Players:' +--- !u!114 &11452050 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 11452048} + _content: {fileID: 22452106} +--- !u!114 &11452052 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452056 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11452058 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 11452076} + _content: {fileID: 22452074} +--- !u!114 &11452060 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452062 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: mainWindow + _component: {fileID: 11452064} +--- !u!114 &11452064 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .862745106} + 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 +--- !u!114 &11452066 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152104} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &11452068 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Restore Defaults +--- !u!114 &11452070 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452072} +--- !u!114 &11452072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Categories:' +--- !u!114 &11452074 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452076} +--- !u!114 &11452076 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Assigned Controllers:' +--- !u!114 &11452078 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 11452072} + _content: {fileID: 22452072} +--- !u!114 &11452080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11452082 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11452084 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edac79059a45d244a8050315593a7e9e, type: 3} + m_Name: + m_EditorClassIdentifier: + _rewiredInputManager: {fileID: 0} + _openOnStart: 0 + _keyboardMapDefaultLayout: 0 + _mouseMapDefaultLayout: 0 + _joystickMapDefaultLayout: 0 + _mappingSets: + - _mapCategoryId: 0 + _actionListMode: 0 + _actionCategoryIds: 00000000 + _actionIds: + _showPlayers: 1 + _showControllers: 1 + _showKeyboard: 1 + _showMouse: 1 + _maxControllersPerPlayer: 1 + _showActionCategoryLabels: 0 + _keyboardInputFieldCount: 2 + _mouseInputFieldCount: 1 + _controllerInputFieldCount: 1 + _allowElementAssignmentConflicts: 0 + _actionLabelWidth: 200 + _keyboardColMaxWidth: 360 + _mouseColMaxWidth: 200 + _controllerColMaxWidth: 200 + _inputRowHeight: 40 + _inputColumnSpacing: 40 + _inputRowCategorySpacing: 20 + _invertToggleWidth: 40 + _defaultWindowWidth: 500 + _defaultWindowHeight: 400 + _controllerAssignmentTimeout: 5 + _preInputAssignmentTimeout: 5 + _inputAssignmentTimeout: 5 + _axisCalibrationTimeout: 5 + _ignoreMouseXAxisAssignment: 1 + _ignoreMouseYAxisAssignment: 1 + _screenToggleAction: -1 + _screenOpenAction: -1 + _screenCloseAction: -1 + _universalCancelAction: -1 + _universalCancelClosesScreen: 1 + _showInputBehaviorSettings: 0 + _inputBehaviorSettings: + - _inputBehaviorId: 0 + _showJoystickAxisSensitivity: 0 + _showMouseXYAxisSensitivity: 0 + _labelLanguageKey: + _joystickAxisSensitivityLabelLanguageKey: + _mouseXYAxisSensitivityLabelLanguageKey: + _joystickAxisSensitivityIcon: {fileID: 21300000, guid: 0c9ce4e64fb83764aa394faeeed56210, + type: 3} + _mouseXYAxisSensitivityIcon: {fileID: 21300000, guid: fc88ce24a47f4014cb0ad237abc8d1dd, + type: 3} + _joystickAxisSensitivityMin: 0 + _joystickAxisSensitivityMax: 2 + _mouseXYAxisSensitivityMin: 0 + _mouseXYAxisSensitivityMax: 2 + _useThemeSettings: 1 + _themeSettings: {fileID: 11400000, guid: e15b0a66770d13f41a9adbbf6a4d7423, type: 2} + _language: {fileID: 11400000, guid: 2be3ae985e9faeb4b9dd3a1c915a3fc7, type: 2} + prefabs: + _button: {fileID: 143110, guid: f71e844abdb0e87458f73bf1ce75ee09, type: 2} + _fitButton: {fileID: 143110, guid: 758f91be5975d8842a43a078fec194f4, type: 2} + _inputGridLabel: {fileID: 190600, guid: 1814d9153fc43ff478f555945e287f39, type: 2} + _inputGridHeaderLabel: {fileID: 190600, guid: da3d4a59e237f72498b31e02d8f9f733, + type: 2} + _inputGridFieldButton: {fileID: 143110, guid: afbefb47f672f4c488150a435dfe5013, + type: 2} + _inputGridFieldInvertToggle: {fileID: 142746, guid: a183756d778416d4d885ecf041d1acda, + type: 2} + _window: {fileID: 194268, guid: e3a57c68883dca4408b56577d0a4d600, type: 2} + _windowTitleText: {fileID: 139440, guid: 518aee9201d061d49aa25a25483697f9, type: 2} + _windowContentText: {fileID: 187138, guid: 50862c6ce73c3dc4d988ad75d9de58ae, type: 2} + _fader: {fileID: 178326, guid: 24fe236f96731dd4189a177bb71019c7, type: 2} + _calibrationWindow: {fileID: 109856, guid: 38d33a94cb0d1e74c87c949cc4554f33, type: 2} + _inputBehaviorsWindow: {fileID: 134678, guid: 981cd43603172924c95b6c4ef0a81a7d, + type: 2} + _centerStickGraphic: {fileID: 115408, guid: aeba11a7084ef414baffd3b727f50ad2, + type: 2} + _moveStickGraphic: {fileID: 194384, guid: b633b9499355c8d44b2d5b99832f1790, type: 2} + references: + _canvas: {fileID: 22352158} + _mainCanvasGroup: {fileID: 22552158} + _mainContent: {fileID: 22452138} + _mainContentInner: {fileID: 22452144} + _playersGroup: {fileID: 11452050} + _controllerGroup: {fileID: 22452084} + _controllerGroupLabelGroup: {fileID: 22452076} + _controllerSettingsGroup: {fileID: 11452106} + _assignedControllersGroup: {fileID: 11452058} + _settingsAndMapCategoriesGroup: {fileID: 22452148} + _settingsGroup: {fileID: 11452130} + _mapCategoriesGroup: {fileID: 11452078} + _inputGridGroup: {fileID: 22452142} + _inputGridContainer: {fileID: 22452130} + _inputGridHeadersGroup: {fileID: 22452092} + _inputGridVScrollbar: {fileID: 11452150} + _inputGridScrollRect: {fileID: 11452018} + _inputGridInnerGroup: {fileID: 22452150} + _controllerNameLabel: {fileID: 11452120} + _removeControllerButton: {fileID: 11452032} + _assignControllerButton: {fileID: 11452012} + _calibrateControllerButton: {fileID: 11452042} + _doneButton: {fileID: 11452098} + _restoreDefaultsButton: {fileID: 11452158} + _defaultSelection: {fileID: 11452098} + _fixedSelectableUIElements: + - {fileID: 152122} + - {fileID: 152158} + - {fileID: 152086} + - {fileID: 152088} + - {fileID: 152080} + _mainBackgroundImage: {fileID: 11452064} + _showPlayersGroupLabel: 1 + _showControllerGroupLabel: 1 + _showAssignedControllersGroupLabel: 1 + _showSettingsGroupLabel: 1 + _showMapCategoriesGroupLabel: 1 + _showControllerNameLabel: 1 + _showAssignedControllers: 1 +--- !u!114 &11452086 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452088 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Assign Controller +--- !u!114 &11452090 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Remove +--- !u!114 &11452092 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452098} + - _themeClass: button + _component: {fileID: 11452002} +--- !u!114 &11452094 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: Done + intData: 0 + text: {fileID: 11452002} +--- !u!114 &11452096 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452098 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 11452158} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452096} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11452084} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 11452094} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11452100 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152124} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Settings:' +--- !u!114 &11452104 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452102} +--- !u!114 &11452106 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 11495594} + _content: {fileID: 22452134} +--- !u!114 &11452108 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 470 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 +--- !u!114 &11452110 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452112 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 +--- !u!114 &11452114 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &11452116 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152134} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 150, y: 40} + m_Spacing: {x: 10, y: 10} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &11452118 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452120} +--- !u!114 &11452120 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: None +--- !u!114 &11452122 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Calibrate +--- !u!114 &11452124 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 +--- !u!114 &11452126 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11452128 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452130 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d106210a51deb8b48beec828f2164128, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 11452102} + _content: {fileID: 22452132} +--- !u!114 &11452132 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11452134 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: 0 +--- !u!114 &11452136 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452138 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 679ba094c265ca5468c417c33c76603c, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 11452018} +--- !u!114 &11452140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11452144 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Priority: 3 + ignoreReversedGraphics: 1 + blockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11452146 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452150} +--- !u!114 &11452148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11452150 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452100} + m_HandleRect: {fileID: 22452124} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11452152 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11452158} + - _themeClass: button + _component: {fileID: 11452068} +--- !u!114 &11452154 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: RestoreDefaults + intData: 0 + text: {fileID: 11452068} +--- !u!114 &11452156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11452158 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 11452098} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11452156} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11452084} + m_MethodName: OnButtonActivated + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 11452154} + m_ObjectArgumentAssemblyTypeName: Rewired.UI.ControlMapper.ButtonInfo, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: 0, b: 0, a: 0} + _disabledHighlightedTrigger: + _autoNavUp: 0 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11495592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11495594} +--- !u!114 &11495594 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Controller:' +--- !u!114 &11495596 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!222 &22252122 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152078} +--- !u!222 &22252124 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} +--- !u!222 &22252126 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152084} +--- !u!222 &22252128 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} +--- !u!222 &22252130 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} +--- !u!222 &22252132 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152094} +--- !u!222 &22252134 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152102} +--- !u!222 &22252136 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152106} +--- !u!222 &22252138 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152108} +--- !u!222 &22252140 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152110} +--- !u!222 &22252142 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152118} +--- !u!222 &22252144 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152120} +--- !u!222 &22252146 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} +--- !u!222 &22252148 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152124} +--- !u!222 &22252150 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152126} +--- !u!222 &22252152 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152136} +--- !u!222 &22252154 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152140} +--- !u!222 &22252156 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152154} +--- !u!222 &22252158 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} +--- !u!222 &22295596 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195596} +--- !u!223 &22352158 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152152} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &22452072 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152070} + 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: 22452114} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 824, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452074 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152072} + 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: 22452102} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 494, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452076 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152074} + 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: 22495596} + - {fileID: 22452116} + m_Father: {fileID: 22452128} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 470, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452078 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152076} + 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: 22452122} + - {fileID: 22452158} + m_Father: {fileID: 22452144} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452080 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152078} + 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: 22452122} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 71.3740463, y: -20} + m_SizeDelta: {x: 42.7480927, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452082 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152080} + 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: 22452118} + m_Father: {fileID: 22452134} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 395, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452084 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152082} + 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: 22452128} + - {fileID: 22452102} + m_Father: {fileID: 22452144} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -30} + m_SizeDelta: {x: 984, y: 76} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452086 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152084} + 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: 22452150} + m_Father: {fileID: 22452100} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -50} + m_SizeDelta: {x: 0, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452088 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152086} + 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: 22452120} + m_Father: {fileID: 22452134} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 75, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452090 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152088} + 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: 22452140} + m_Father: {fileID: 22452134} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -20} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452092 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152090} + 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: 22452100} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452094 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152092} + 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: 22452104} + - {fileID: 22452138} + m_Father: {fileID: 22452152} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -10, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452096 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152094} + 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: 22452098} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452098 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152096} + 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: 22452096} + - {fileID: 22452106} + m_Father: {fileID: 22452144} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152098} + 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: 22452092} + - {fileID: 22452086} + m_Father: {fileID: 22452130} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -60, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452102 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152100} + 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: 22452112} + - {fileID: 22452074} + m_Father: {fileID: 22452084} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 490, y: 0} + m_SizeDelta: {x: 494, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452104 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152102} + 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: 22452094} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452106 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152104} + 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: 22452098} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 984, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452108 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152106} + 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: 22452158} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.03054, y: -20} + m_SizeDelta: {x: 132.061081, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452110 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152108} + 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: 22452114} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 824, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452112 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152110} + 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: 22452102} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 494, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452114 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152112} + 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: 22452110} + - {fileID: 22452072} + m_Father: {fileID: 22452148} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 160, y: 0} + m_SizeDelta: {x: 824, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452116 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152116} + 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: 22452136} + m_Father: {fileID: 22452076} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 133.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452118 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152118} + 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: 22452082} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452120 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152120} + 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: 22452088} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452122 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152122} + 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: 22452080} + m_Father: {fileID: 22452078} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 142.748093, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452124 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152124} + 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: 22452156} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452126 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152126} + 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: 22452146} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452128 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152128} + 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: 22452076} + - {fileID: 22452134} + m_Father: {fileID: 22452084} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -38} + m_SizeDelta: {x: 470, y: 76} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452130 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152130} + 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: 22452154} + - {fileID: 22452100} + m_Father: {fileID: 22452142} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452132 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152132} + 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: 22452146} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 150, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452134 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152134} + 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: 22452088} + - {fileID: 22452090} + - {fileID: 22452082} + m_Father: {fileID: 22452128} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -76} + m_SizeDelta: {x: 470, y: 40} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22452136 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152136} + 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: 22452116} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 21.5, y: -10.5} + m_SizeDelta: {x: 43, y: 21} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452138 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152138} + 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: 22452144} + m_Father: {fileID: 22452094} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -80, y: -80} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452140 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152140} + 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: 22452090} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452142 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152142} + 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: 22452130} + m_Father: {fileID: 22452144} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 709.999939, y: -70} + m_SizeDelta: {x: 709.999939, y: 625.496216} + m_Pivot: {x: 1, y: 1} +--- !u!224 &22452144 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152144} + 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: 22452078} + - {fileID: 22452098} + - {fileID: 22452084} + - {fileID: 22452148} + - {fileID: 22452142} + m_Father: {fileID: 22452138} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452146 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152146} + 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: 22452126} + - {fileID: 22452132} + m_Father: {fileID: 22452148} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 36} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452148 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152148} + 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: 22452146} + - {fileID: 22452114} + m_Father: {fileID: 22452144} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 492, y: -154} + m_SizeDelta: {x: 984, y: 36} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22452150 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152150} + 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: 22452086} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452152 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152152} + 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: 22452094} + m_Father: {fileID: 452158} + m_RootOrder: 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!224 &22452154 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152154} + 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: 22452156} + m_Father: {fileID: 22452130} + m_RootOrder: 0 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -50} + m_SizeDelta: {x: 40, y: -50} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22452156 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152156} + 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: 22452124} + m_Father: {fileID: 22452154} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22452158 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152158} + 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: 22452108} + m_Father: {fileID: 22452078} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 384.809174, y: 0} + m_SizeDelta: {x: 232.061081, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!224 &22495596 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 195596} + 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: 22452076} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 92, y: 21} + m_Pivot: {x: 0, y: 1} +--- !u!225 &22552158 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152092} + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 152114} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab.meta new file mode 100644 index 0000000..104954a --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/ControlMapper.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 03b9a6db219d12e4f8ec2934e0c7e721 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts.meta new file mode 100644 index 0000000..ccdbceb --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 9d4c4f91c0f28bd44845a044b5057ee4 +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab new file mode 100644 index 0000000..efbfb4f --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab @@ -0,0 +1,241 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &174586 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22474586} + - 222: {fileID: 22274586} + - 114: {fileID: 11474586} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &174588 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22474588} + - 222: {fileID: 22274588} + - 114: {fileID: 11474592} + - 114: {fileID: 11483594} + - 114: {fileID: 11485630} + - 114: {fileID: 11474588} + - 114: {fileID: 11471228} + m_Layer: 5 + m_Name: AxisButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11471228 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11483594} + - _themeClass: button + _component: {fileID: 11474586} +--- !u!114 &11474586 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 15 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!114 &11474588 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 40 + m_PreferredWidth: -1 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11474592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11483594 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11474592} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11485630 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c357af2e3002c314992d9c9d2811dac5, type: 3} + m_Name: + m_EditorClassIdentifier: + useCustomEdgePadding: 0 + customEdgePadding: 50 +--- !u!222 &22274586 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174586} +--- !u!222 &22274588 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} +--- !u!224 &22474586 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174586} + 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: 22474588} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22474588 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174588} + 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: 22474586} + m_Father: {fileID: 0} + m_RootOrder: 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: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 174588} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab.meta new file mode 100644 index 0000000..7686b68 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/AxisButton.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: dccefe3d1d2b9d14e86eca57b9cc5307 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab new file mode 100644 index 0000000..6a4a559 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab @@ -0,0 +1,223 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &143108 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443108} + - 222: {fileID: 22243108} + - 114: {fileID: 11443102} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143110 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443110} + - 222: {fileID: 22243110} + - 114: {fileID: 11443106} + - 114: {fileID: 11420626} + - 114: {fileID: 11443110} + - 114: {fileID: 11498774} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11420626 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11443106} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11443102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!114 &11443106 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11443110 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: None + intData: 0 + text: {fileID: 11443102} +--- !u!114 &11498774 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11420626} + - _themeClass: button + _component: {fileID: 11443102} +--- !u!222 &22243108 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} +--- !u!222 &22243110 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} +--- !u!224 &22443108 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + 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: 22443110} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22443110 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + 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: 22443108} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 143110} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab.meta new file mode 100644 index 0000000..b1ef371 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Button.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f71e844abdb0e87458f73bf1ce75ee09 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab new file mode 100644 index 0000000..dc97673 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab @@ -0,0 +1,75 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &115408 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22415408} + - 222: {fileID: 22215408} + - 114: {fileID: 11415408} + m_Layer: 5 + m_Name: CenterStickGraphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11415408 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: ec2db8ab6243b9545bbe7e137131b6c3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22215408 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115408} +--- !u!224 &22415408 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115408} + 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_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 264, y: 126} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 115408} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab.meta new file mode 100644 index 0000000..27eac0a --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/CenterStickGraphic.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: aeba11a7084ef414baffd3b727f50ad2 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab new file mode 100644 index 0000000..3bfda61 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab @@ -0,0 +1,109 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &187138 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22487138} + - 222: {fileID: 22287138} + - 114: {fileID: 11487138} + - 114: {fileID: 11479576} + - 114: {fileID: 11410068} + m_Layer: 5 + m_Name: ContentText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11410068 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11487138} +--- !u!114 &11479576 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &11487138 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 26 + m_Alignment: 1 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Content Text +--- !u!222 &22287138 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187138} +--- !u!224 &22487138 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187138} + 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_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -70} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 187138} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab.meta new file mode 100644 index 0000000..2fdbc1e --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/ContentText.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 50862c6ce73c3dc4d988ad75d9de58ae +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab new file mode 100644 index 0000000..0c86ebd --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab @@ -0,0 +1,75 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &178326 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22478326} + - 222: {fileID: 22278326} + - 114: {fileID: 11478326} + m_Layer: 5 + m_Name: Fader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11478326 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: .501960814} + 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 +--- !u!222 &22278326 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178326} +--- !u!224 &22478326 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178326} + 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_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: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 178326} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab.meta new file mode 100644 index 0000000..fdcdec5 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Fader.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 24fe236f96731dd4189a177bb71019c7 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab new file mode 100644 index 0000000..9f66657 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab @@ -0,0 +1,244 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &143108 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443108} + - 222: {fileID: 22243108} + - 114: {fileID: 11443102} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143110 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443110} + - 222: {fileID: 22243110} + - 114: {fileID: 11443106} + - 114: {fileID: 11420626} + - 114: {fileID: 11443104} + - 114: {fileID: 11443110} + - 114: {fileID: 11498774} + m_Layer: 5 + m_Name: FitButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11420626 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11443106} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11443102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Button +--- !u!114 &11443104 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11443106 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11443110 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0463b06a911144bb290fdd9fadedf6, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: None + intData: 0 + text: {fileID: 11443102} +--- !u!114 &11498774 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11420626} + - _themeClass: button + _component: {fileID: 11443102} +--- !u!222 &22243108 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} +--- !u!222 &22243110 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} +--- !u!224 &22443108 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + 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: 22443110} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22443110 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + 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: 22443108} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 40} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 143110} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab.meta new file mode 100644 index 0000000..50b283b --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/FitButton.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 758f91be5975d8842a43a078fec194f4 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab new file mode 100644 index 0000000..aa378c9 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab @@ -0,0 +1,277 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &143108 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443108} + - 222: {fileID: 22243108} + - 114: {fileID: 11443102} + - 114: {fileID: 11445102} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &143110 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22443110} + - 222: {fileID: 22243110} + - 114: {fileID: 11443106} + - 114: {fileID: 11437632} + - 114: {fileID: 11493180} + - 114: {fileID: 11443104} + - 114: {fileID: 11456230} + - 114: {fileID: 11461988} + m_Layer: 5 + m_Name: InputGridFieldButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11437632 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11443106} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!114 &11443102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 16 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!114 &11443104 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 +--- !u!114 &11443106 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11445102 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 200 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11456230 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c119c127d72b1a43918619144949697, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: + intData: 0 + text: {fileID: 11443102} +--- !u!114 &11461988 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: inputGridField + _component: {fileID: 11437632} + - _themeClass: inputGridField + _component: {fileID: 11443102} +--- !u!114 &11493180 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c357af2e3002c314992d9c9d2811dac5, type: 3} + m_Name: + m_EditorClassIdentifier: + useCustomEdgePadding: 0 + customEdgePadding: 50 +--- !u!222 &22243108 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} +--- !u!222 &22243110 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} +--- !u!224 &22443108 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143108} + 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: 22443110} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22443110 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143110} + 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: 22443108} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 143110} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab.meta new file mode 100644 index 0000000..2e522a7 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldButton.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: afbefb47f672f4c488150a435dfe5013 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab new file mode 100644 index 0000000..df3d3fb --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab @@ -0,0 +1,341 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &142742 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22442742} + - 222: {fileID: 22242742} + - 114: {fileID: 11442744} + - 114: {fileID: 11442742} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142744 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22442744} + - 222: {fileID: 22242744} + - 114: {fileID: 11442746} + - 114: {fileID: 11430488} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142746 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22442746} + - 114: {fileID: 11496952} + - 114: {fileID: 11455030} + - 114: {fileID: 11403018} + - 114: {fileID: 11481094} + - 114: {fileID: 11480584} + m_Layer: 5 + m_Name: InputGridFieldInvertToggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11403018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e7caacab17a8ea349a0d4d47c7f1d923, type: 3} + m_Name: + m_EditorClassIdentifier: + identifier: + intData: 0 + text: {fileID: 0} +--- !u!114 &11430488 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 40 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 +--- !u!114 &11442742 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5ee15fd4a916c224db6e6389a7119709, type: 3} + m_Name: + m_EditorClassIdentifier: + enabledState: + color: {r: 1, g: 1, b: 1, a: 1} + disabledState: + color: {r: .0551480204, g: .0745695606, b: .0862745121, a: 1} +--- !u!114 &11442744 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .0551480204, g: .0745695606, b: .0862745121, a: 1} + m_Sprite: {fileID: 21300000, guid: c084db22e43bd61499f3d42d7946ba31, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11442746 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11455030 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c357af2e3002c314992d9c9d2811dac5, type: 3} + m_Name: + m_EditorClassIdentifier: + useCustomEdgePadding: 0 + customEdgePadding: 50 +--- !u!114 &11480584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11496952} + - _themeClass: + _component: {fileID: 11442744} + - _themeClass: invertToggle + _component: {fileID: 11442742} + - _themeClass: invertToggleBackground + _component: {fileID: 11442746} +--- !u!114 &11481094 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11496952 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a88ff81c0189fb49a20062465f1ce37, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11442746} + toggleTransition: 1 + graphic: {fileID: 0} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11442742} + m_MethodName: SetEnabledState + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 1 + _autoNavRight: 1 +--- !u!222 &22242742 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142742} +--- !u!222 &22242744 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142744} +--- !u!224 &22442742 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142742} + 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: 22442744} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22442744 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142744} + 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: 22442742} + m_Father: {fileID: 22442746} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22442746 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142746} + 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: 22442744} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 142746} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab.meta new file mode 100644 index 0000000..680e7c6 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridFieldInvertToggle.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: a183756d778416d4d885ecf041d1acda +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab new file mode 100644 index 0000000..6f4062a --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &190600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22490600} + - 222: {fileID: 22290600} + - 114: {fileID: 11490600} + - 114: {fileID: 11437868} + m_Layer: 5 + m_Name: InputGridHeaderLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11437868 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11490600} +--- !u!114 &11490600 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 24 + m_Alignment: 3 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Label +--- !u!222 &22290600 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} +--- !u!224 &22490600 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + 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_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, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 190600} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab.meta new file mode 100644 index 0000000..152bcd1 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridHeaderLabel.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: da3d4a59e237f72498b31e02d8f9f733 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab new file mode 100644 index 0000000..044dfab --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &190600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22490600} + - 222: {fileID: 22290600} + - 114: {fileID: 11490600} + - 114: {fileID: 11437328} + m_Layer: 5 + m_Name: InputGridLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11437328 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11490600} +--- !u!114 &11490600 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 8 + m_MaxSize: 18 + m_Alignment: 3 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Label +--- !u!222 &22290600 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} +--- !u!224 &22490600 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 190600} + 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_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 190600} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab.meta new file mode 100644 index 0000000..e72fdd8 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/InputGridLabel.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 1814d9153fc43ff478f555945e287f39 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab new file mode 100644 index 0000000..453a756 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab @@ -0,0 +1,75 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &194384 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494384} + - 222: {fileID: 22294384} + - 114: {fileID: 11494384} + m_Layer: 5 + m_Name: MoveStickGraphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11494384 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: a734389a53a8a384888da1abcad1dd1f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22294384 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194384} +--- !u!224 &22494384 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194384} + 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_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 264, y: 126} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 194384} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab.meta new file mode 100644 index 0000000..d02c520 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/MoveStickGraphic.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: b633b9499355c8d44b2d5b99832f1790 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab new file mode 100644 index 0000000..1f70013 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &139440 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22439440} + - 222: {fileID: 22239440} + - 114: {fileID: 11439440} + - 114: {fileID: 11425068} + m_Layer: 5 + m_Name: TitleText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11425068 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11439440} +--- !u!114 &11439440 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 30 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Title +--- !u!222 &22239440 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139440} +--- !u!224 &22439440 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 139440} + 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_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 139440} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab.meta new file mode 100644 index 0000000..7c001fe --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/TitleText.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 518aee9201d061d49aa25a25483697f9 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab new file mode 100644 index 0000000..921ee4f --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab @@ -0,0 +1,181 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &106688 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22406688} + - 222: {fileID: 22206690} + - 114: {fileID: 11406682} + - 114: {fileID: 11406684} + - 114: {fileID: 11406686} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &106690 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22406690} + - 114: {fileID: 11406690} + - 114: {fileID: 11406688} + m_Layer: 5 + m_Name: UIControlSet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11406682 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Look Sensitivity +--- !u!114 &11406684 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11406682} +--- !u!114 &11406686 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 25 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 0 +--- !u!114 &11406688 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11406690 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8440a2f4f56c1b441813c53be6341e58, type: 3} + m_Name: + m_EditorClassIdentifier: + title: {fileID: 11406682} +--- !u!222 &22206690 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106688} +--- !u!224 &22406688 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106688} + 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: 22406690} + m_RootOrder: 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: 1} +--- !u!224 &22406690 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 106690} + 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: 22406688} + m_Father: {fileID: 0} + m_RootOrder: 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: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 106690} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab.meta new file mode 100644 index 0000000..7462e41 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UIControlSet.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 47fb4e1b0f1159042ac032a510a3b81a +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab new file mode 100644 index 0000000..6003087 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab @@ -0,0 +1,690 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &116140 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416140} + - 222: {fileID: 22216140} + - 114: {fileID: 11416144} + - 114: {fileID: 11416142} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116142 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416142} + - 114: {fileID: 11416140} + - 114: {fileID: 11463176} + m_Layer: 5 + m_Name: UISliderControl + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116144 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416144} + - 114: {fileID: 11427558} + - 114: {fileID: 11416150} + - 114: {fileID: 11416148} + - 114: {fileID: 11427560} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116146 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416146} + - 222: {fileID: 22216142} + - 114: {fileID: 11416156} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116148 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416148} + 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!1 &116150 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416150} + - 222: {fileID: 22216144} + - 114: {fileID: 11416158} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116152 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416152} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &116154 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22416154} + - 222: {fileID: 22216146} + - 114: {fileID: 11416160} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163176 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22463176} + - 114: {fileID: 11463178} + m_Layer: 5 + m_Name: HorizontalLayout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163178 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22463178} + - 222: {fileID: 22263176} + - 114: {fileID: 11463180} + - 114: {fileID: 11443126} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11416140 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a64895c80f33d2345837b43e3dd26acc, type: 3} + m_Name: + m_EditorClassIdentifier: + title: {fileID: 11463180} + iconImage: {fileID: 11416144} + slider: {fileID: 11427558} +--- !u!114 &11416142 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 40 + m_PreferredHeight: 40 + m_FlexibleWidth: 0 + m_FlexibleHeight: 0 +--- !u!114 &11416144 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11416148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 30 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: 0 +--- !u!114 &11416150 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11427558} + - _themeClass: guiControlBackgroundColor + _component: {fileID: 0} +--- !u!114 &11416156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .300484419, g: .399280936, b: .458823532, a: 1} + 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 +--- !u!114 &11416158 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11416160 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11427558 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e53a7baa30e8cd345b7e6f4ea659452f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 2 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11416160} + m_FillRect: {fileID: 22416146} + m_HandleRect: {fileID: 22416154} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: .5 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 1 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11427560 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c357af2e3002c314992d9c9d2811dac5, type: 3} + m_Name: + m_EditorClassIdentifier: + useCustomEdgePadding: 1 + customEdgePadding: 60 +--- !u!114 &11443126 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11463180} +--- !u!114 &11463176 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11463178 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 +--- !u!114 &11463180 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Title +--- !u!222 &22216140 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116140} +--- !u!222 &22216142 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116146} +--- !u!222 &22216144 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116150} +--- !u!222 &22216146 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116154} +--- !u!222 &22263176 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163178} +--- !u!224 &22416140 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116140} + 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: 22463176} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22416142 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116142} + 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: 22463178} + - {fileID: 22463176} + m_Father: {fileID: 0} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22416144 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116144} + 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: 22416150} + - {fileID: 22416152} + - {fileID: 22416148} + m_Father: {fileID: 22463176} + m_RootOrder: 1 + 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!224 &22416146 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116146} + 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: 22416152} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22416148 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116148} + 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: 22416154} + m_Father: {fileID: 22416144} + m_RootOrder: 2 + 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: .5, y: .5} +--- !u!224 &22416150 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116150} + 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: 22416144} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22416152 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116152} + 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: 22416146} + m_Father: {fileID: 22416144} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22416154 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 116154} + 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: 22416148} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 30, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22463176 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163176} + 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: 22416140} + - {fileID: 22416144} + m_Father: {fileID: 22416142} + m_RootOrder: 1 + 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: .5, y: .5} +--- !u!224 &22463178 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163178} + 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: 22416142} + m_RootOrder: 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: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 116142} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab.meta new file mode 100644 index 0000000..cd00562 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/UISliderControl.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 31c5c2ae2cefb724180d371f82059183 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows.meta new file mode 100644 index 0000000..7d0f274 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 10dbeb61dd22cf448a8e55e563b086ad +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab new file mode 100644 index 0000000..c347c9b --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab @@ -0,0 +1,4235 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &104612 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404612} + 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!1 &104614 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404614} + - 222: {fileID: 22204612} + - 114: {fileID: 11404612} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104616 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404616} + - 222: {fileID: 22204614} + - 114: {fileID: 11404614} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104618 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404618} + - 222: {fileID: 22204616} + - 114: {fileID: 11404616} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104620 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404620} + - 114: {fileID: 11404618} + - 114: {fileID: 11490650} + - 114: {fileID: 11404620} + m_Layer: 5 + m_Name: ZeroSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104622 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404622} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &104624 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22404624} + - 222: {fileID: 22204618} + - 114: {fileID: 11404622} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105424 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405424} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105426 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405426} + 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!1 &105428 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405428} + - 222: {fileID: 22205430} + - 114: {fileID: 11405428} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105430 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405430} + - 222: {fileID: 22205432} + - 114: {fileID: 11405430} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105432 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405432} + - 114: {fileID: 11405432} + - 114: {fileID: 11470664} + - 114: {fileID: 11433570} + m_Layer: 5 + m_Name: DeadzoneSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105434 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405434} + - 222: {fileID: 22205434} + - 114: {fileID: 11405434} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &105436 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22405436} + - 222: {fileID: 22205436} + - 114: {fileID: 11405436} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109800 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409800} + - 222: {fileID: 22209800} + - 114: {fileID: 11409800} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109802 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409802} + - 222: {fileID: 22209802} + - 114: {fileID: 11409802} + - 114: {fileID: 11405940} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109804 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409804} + - 222: {fileID: 22209804} + - 114: {fileID: 11409804} + m_Layer: 5 + m_Name: DeadzoneArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109806 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409806} + - 222: {fileID: 22209806} + - 114: {fileID: 11409808} + - 114: {fileID: 11498646} + - 114: {fileID: 11433560} + - 114: {fileID: 11402362} + m_Layer: 5 + m_Name: DoneButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109808 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409808} + - 114: {fileID: 11409810} + m_Layer: 5 + m_Name: WindowButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109810 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409810} + - 222: {fileID: 22209808} + - 114: {fileID: 11409812} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109812 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409812} + m_Layer: 5 + m_Name: InnerContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109814 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409814} + - 222: {fileID: 22209810} + - 114: {fileID: 11409814} + - 114: {fileID: 11437030} + m_Layer: 5 + m_Name: ScrollboxContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109816 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409816} + - 222: {fileID: 22209812} + - 114: {fileID: 11409816} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109818 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409818} + - 222: {fileID: 22209814} + - 114: {fileID: 11409820} + - 114: {fileID: 11409818} + - 114: {fileID: 11433566} + m_Layer: 5 + m_Name: CalibrateButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109820 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409820} + - 114: {fileID: 11409822} + - 114: {fileID: 11470662} + - 114: {fileID: 11433572} + m_Layer: 5 + m_Name: SensitivitySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109822 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409822} + - 222: {fileID: 22209816} + - 114: {fileID: 11409824} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109824 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409824} + m_Layer: 5 + m_Name: LeftGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109826 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409826} + - 222: {fileID: 22209818} + - 114: {fileID: 11409826} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109828 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409828} + - 222: {fileID: 22209820} + - 114: {fileID: 11409828} + - 114: {fileID: 11485920} + m_Layer: 5 + m_Name: CalibratedValueMarker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109830 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409830} + - 114: {fileID: 11409830} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109832 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409832} + - 222: {fileID: 22209824} + - 114: {fileID: 11409832} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109834 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409834} + - 222: {fileID: 22209826} + - 114: {fileID: 11409834} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109836 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409836} + - 114: {fileID: 11409836} + - 222: {fileID: 22209828} + - 114: {fileID: 11409840} + - 114: {fileID: 11409838} + m_Layer: 5 + m_Name: ScrollArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109838 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409838} + - 114: {fileID: 11409844} + - 222: {fileID: 22209830} + - 114: {fileID: 11409842} + - 114: {fileID: 11433568} + m_Layer: 5 + m_Name: InvertToggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109840 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409840} + m_Layer: 5 + m_Name: RightGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109842 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409842} + - 222: {fileID: 22209832} + - 114: {fileID: 11409848} + - 114: {fileID: 11498650} + - 114: {fileID: 11433564} + - 114: {fileID: 11402366} + m_Layer: 5 + m_Name: DefaultButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109844 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409844} + 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!1 &109846 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409846} + - 222: {fileID: 22209834} + - 114: {fileID: 11409852} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109848 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409848} + - 222: {fileID: 22209836} + - 114: {fileID: 11409854} + - 114: {fileID: 11409856} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109850 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409850} + - 222: {fileID: 22209838} + - 114: {fileID: 11409858} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109852 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409852} + - 222: {fileID: 22209840} + - 114: {fileID: 11409862} + - 114: {fileID: 11409860} + - 114: {fileID: 11433574} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109854 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409854} + - 222: {fileID: 22209842} + - 114: {fileID: 11409866} + - 114: {fileID: 11498648} + - 114: {fileID: 11433562} + - 114: {fileID: 11402364} + m_Layer: 5 + m_Name: CancelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109856 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409856} + - 225: {fileID: 22505076} + - 114: {fileID: 11409870} + m_Layer: 5 + m_Name: CalibrationWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109858 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409858} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109860 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409860} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109864 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409864} + - 222: {fileID: 22209846} + - 114: {fileID: 11409874} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109866 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409866} + - 222: {fileID: 22209848} + - 114: {fileID: 11409876} + m_Layer: 5 + m_Name: CalibratedZeroMarker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109868 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409868} + - 114: {fileID: 11409878} + m_Layer: 5 + m_Name: ButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109870 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409870} + - 222: {fileID: 22209850} + - 114: {fileID: 11409880} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109872 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22409872} + - 222: {fileID: 22209852} + - 114: {fileID: 11409882} + - 114: {fileID: 11485918} + m_Layer: 5 + m_Name: RawValueMarker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &114402 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22414402} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134586 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434586} + - 222: {fileID: 22234586} + - 114: {fileID: 11434588} + - 114: {fileID: 11434586} + m_Layer: 5 + m_Name: DeadzoneMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150566 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22450566} + m_Layer: 5 + m_Name: ValueDisplayGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &150568 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22450568} + - 114: {fileID: 11437028} + m_Layer: 5 + m_Name: Labels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168552 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22468552} + - 222: {fileID: 22268552} + - 114: {fileID: 11468552} + m_Layer: 5 + m_Name: ZeroMarker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197776 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497776} + - 222: {fileID: 22297776} + - 114: {fileID: 11497776} + m_Layer: 5 + m_Name: Label_Neg1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197778 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497778} + - 222: {fileID: 22297778} + - 114: {fileID: 11497778} + m_Layer: 5 + m_Name: Label_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &197780 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22497780} + - 222: {fileID: 22297780} + - 114: {fileID: 11497780} + m_Layer: 5 + m_Name: Label_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11402362 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11402364 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11402366 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11404612 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11404614 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 15 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Zero:' +--- !u!114 &11404616 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .300484419, g: .399280936, b: .458823532, a: 1} + 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 +--- !u!114 &11404618 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 11405432} + m_SelectOnDown: {fileID: 11409822} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11404612} + m_FillRect: {fileID: 22404618} + m_HandleRect: {fileID: 22404614} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnZeroValueChange + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11404620 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11404618} + - _themeClass: guiControlBackgroundColor + _component: {fileID: 11404614} +--- !u!114 &11404622 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11405428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .300484419, g: .399280936, b: .458823532, a: 1} + 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 +--- !u!114 &11405430 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11405432 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105432} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 11409860} + m_SelectOnDown: {fileID: 11404618} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11405434} + m_FillRect: {fileID: 22405428} + m_HandleRect: {fileID: 22405434} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnDeadzoneValueChange + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11405434 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11405436 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 15 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Dead Zone:' +--- !u!114 &11405940 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: popupWindow + _component: {fileID: 11409802} +--- !u!114 &11409800 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 15 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Sensitivity:' +--- !u!114 &11409802 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11409804 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .352941185, g: 0, b: 0, a: 1} + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11409808 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409810 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11409812 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409814 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11409816 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409818 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 11409822} + m_SelectOnDown: {fileID: 11498650} + m_SelectOnLeft: {fileID: 11409844} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409820} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnCalibrate + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11409820 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409822 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 11404618} + m_SelectOnDown: {fileID: 11409844} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409816} + m_FillRect: {fileID: 22409832} + m_HandleRect: {fileID: 22409816} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 2 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnSensitivityValueChange + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11409824 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11409826 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Cancel +--- !u!114 &11409828 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109828} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 21300000, guid: 7f4e5f9eac93c0a4ab5e638adf6b02e1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11409830 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 +--- !u!114 &11409832 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .300484419, g: .399280936, b: .458823532, a: 1} + 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 +--- !u!114 &11409834 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Invert +--- !u!114 &11409836 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22409830} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: .100000001 + m_Inertia: 1 + m_DecelerationRate: .135000005 + m_ScrollSensitivity: 20 + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11409860} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnAxisScrollRectScroll + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11409838 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &11409840 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409842 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409844 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 11409822} + m_SelectOnDown: {fileID: 11498648} + m_SelectOnLeft: {fileID: 11409860} + m_SelectOnRight: {fileID: 11409818} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409842} + toggleTransition: 0 + graphic: {fileID: 0} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnInvert + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 11409856} + m_MethodName: SetEnabledState + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!114 &11409848 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409852 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109846} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Done +--- !u!114 &11409854 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .0551480204, g: .0745695606, b: .0862745121, a: 1} + m_Sprite: {fileID: 21300000, guid: c084db22e43bd61499f3d42d7946ba31, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11409856 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5ee15fd4a916c224db6e6389a7119709, type: 3} + m_Name: + m_EditorClassIdentifier: + enabledState: + color: {r: 1, g: 1, b: 1, a: 1} + disabledState: + color: {r: .0551480204, g: .0745695606, b: .0862745121, a: 1} +--- !u!114 &11409858 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Calibrate +--- !u!114 &11409860 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 11409844} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409812} + m_HandleRect: {fileID: 22409810} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11409862 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11409866 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11409870 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e99c23df54f27446bb8e263e0ceb8ff, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundImage: {fileID: 11409802} + content: {fileID: 114402} + rightContentContainer: {fileID: 22409840} + valueDisplayGroup: {fileID: 22450566} + calibratedValueMarker: {fileID: 22409828} + rawValueMarker: {fileID: 22409872} + calibratedZeroMarker: {fileID: 22409866} + deadzoneArea: {fileID: 22409804} + deadzoneSlider: {fileID: 11405432} + zeroSlider: {fileID: 11404618} + sensitivitySlider: {fileID: 11409822} + invertToggle: {fileID: 11409844} + axisScrollAreaContent: {fileID: 22409830} + doneButton: {fileID: 11498646} + calibrateButton: {fileID: 11409818} + doneButtonLabel: {fileID: 11409852} + cancelButtonLabel: {fileID: 11409826} + defaultButtonLabel: {fileID: 11409874} + deadzoneSliderLabel: {fileID: 11405436} + zeroSliderLabel: {fileID: 11404614} + sensitivitySliderLabel: {fileID: 11409800} + invertToggleLabel: {fileID: 11409834} + calibrateButtonLabel: {fileID: 11409858} + axisButtonPrefab: {fileID: 174588, guid: dccefe3d1d2b9d14e86eca57b9cc5307, type: 2} +--- !u!114 &11409874 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Default +--- !u!114 &11409876 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .566176474, g: 0, b: 0, a: 1} + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11409878 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11409880 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11409882 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_Sprite: {fileID: 21300000, guid: 7f4e5f9eac93c0a4ab5e638adf6b02e1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11433560 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11498646} + - _themeClass: button + _component: {fileID: 11409852} +--- !u!114 &11433562 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11498648} + - _themeClass: button + _component: {fileID: 11409826} +--- !u!114 &11433564 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11498650} + - _themeClass: button + _component: {fileID: 11409874} +--- !u!114 &11433566 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11409818} + - _themeClass: button + _component: {fileID: 11409858} +--- !u!114 &11433568 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: button + _component: {fileID: 11409844} + - _themeClass: button + _component: {fileID: 11409834} + - _themeClass: + _component: {fileID: 11409854} + - _themeClass: invertToggle + _component: {fileID: 11409856} + - _themeClass: invertToggleButtonBackground + _component: {fileID: 11409842} +--- !u!114 &11433570 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105432} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11405432} + - _themeClass: guiControlBackgroundColor + _component: {fileID: 11405436} +--- !u!114 &11433572 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11409822} + - _themeClass: guiControlBackgroundColor + _component: {fileID: 11409800} +--- !u!114 &11433574 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11409860} +--- !u!114 &11434586 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &11434588 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11437028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150568} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11497780} + - _themeClass: + _component: {fileID: 11497778} + - _themeClass: + _component: {fileID: 11497776} +--- !u!114 &11437030 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: area + _component: {fileID: 11409814} +--- !u!114 &11468552 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .529411793, g: .529411793, b: .529411793, a: 1} + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11470662 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnSensitivityCancel + m_Mode: 4 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11470664 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105432} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnDeadzoneCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11485918 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: calibrationRawValueMarker + _component: {fileID: 11409882} +--- !u!114 &11485920 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109828} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: calibrationValueMarker + _component: {fileID: 11409828} +--- !u!114 &11490650 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnZeroCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11497776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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: 1 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: -1 +--- !u!114 &11497778 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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: 1 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 1 +--- !u!114 &11497780 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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: 1 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11498646 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 11498648} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409808} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnDone + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11498648 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 11498646} + m_SelectOnRight: {fileID: 11498650} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409866} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11498650 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 11498648} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11409848} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11409870} + m_MethodName: OnRestoreDefault + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!222 &22204612 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104614} +--- !u!222 &22204614 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104616} +--- !u!222 &22204616 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104618} +--- !u!222 &22204618 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104624} +--- !u!222 &22205430 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105428} +--- !u!222 &22205432 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105430} +--- !u!222 &22205434 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105434} +--- !u!222 &22205436 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105436} +--- !u!222 &22209800 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109800} +--- !u!222 &22209802 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109802} +--- !u!222 &22209804 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109804} +--- !u!222 &22209806 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} +--- !u!222 &22209808 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109810} +--- !u!222 &22209810 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109814} +--- !u!222 &22209812 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109816} +--- !u!222 &22209814 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109818} +--- !u!222 &22209816 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109822} +--- !u!222 &22209818 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109826} +--- !u!222 &22209820 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109828} +--- !u!222 &22209824 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109832} +--- !u!222 &22209826 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109834} +--- !u!222 &22209828 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109836} +--- !u!222 &22209830 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109838} +--- !u!222 &22209832 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} +--- !u!222 &22209834 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109846} +--- !u!222 &22209836 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109848} +--- !u!222 &22209838 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} +--- !u!222 &22209840 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109852} +--- !u!222 &22209842 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} +--- !u!222 &22209846 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109864} +--- !u!222 &22209848 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109866} +--- !u!222 &22209850 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109870} +--- !u!222 &22209852 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109872} +--- !u!222 &22234586 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134586} +--- !u!222 &22268552 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168552} +--- !u!222 &22297776 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197776} +--- !u!222 &22297778 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197778} +--- !u!222 &22297780 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197780} +--- !u!224 &22404612 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104612} + 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: 22404614} + m_Father: {fileID: 22404620} + m_RootOrder: 3 + 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: .5, y: .5} +--- !u!224 &22404614 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104614} + 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: 22404612} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22404616 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104616} + 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: 22404620} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2, y: 10} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22404618 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104618} + 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: 22404622} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22404620 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104620} + 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: 22404616} + - {fileID: 22404624} + - {fileID: 22404622} + - {fileID: 22404612} + m_Father: {fileID: 22409840} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 125} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22404622 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104622} + 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: 22404618} + m_Father: {fileID: 22404620} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22404624 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104624} + 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: 22404620} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22405424 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105424} + 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: 22405428} + m_Father: {fileID: 22405432} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22405426 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105426} + 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: 22405434} + m_Father: {fileID: 22405432} + m_RootOrder: 3 + 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: .5, y: .5} +--- !u!224 &22405428 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105428} + 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: 22405424} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22405430 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105430} + 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: 22405432} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22405432 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105432} + 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: 22405436} + - {fileID: 22405430} + - {fileID: 22405424} + - {fileID: 22405426} + m_Father: {fileID: 22409840} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 175} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22405434 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105434} + 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: 22405426} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22405436 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 105436} + 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: 22405432} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2, y: 10} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22409800 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109800} + 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: 22409820} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2, y: 10} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22409802 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109802} + 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: 22409856} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409804 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109804} + 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: 22434586} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: 0} + m_AnchorMax: {x: .5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 244, y: 15} + m_Pivot: {x: .5, y: 0} +--- !u!224 &22409806 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109806} + 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: 22409846} + m_Father: {fileID: 22409808} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409808 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109808} + 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: 22409806} + - {fileID: 22409854} + - {fileID: 22409842} + m_Father: {fileID: 22409812} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22409810 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109810} + 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: 22409860} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22409812 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109812} + 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: 22409824} + - {fileID: 22409840} + - {fileID: 22409808} + m_Father: {fileID: 22414402} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: -60, y: -100} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22409814 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109814} + 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: 22409836} + m_Father: {fileID: 22409824} + m_RootOrder: 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, y: 1} +--- !u!224 &22409816 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109816} + 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: 22409844} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409818 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109818} + 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: 22409850} + m_Father: {fileID: 22409868} + m_RootOrder: 1 + 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: .5, y: .5} +--- !u!224 &22409820 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109820} + 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: 22409800} + - {fileID: 22409822} + - {fileID: 22409858} + - {fileID: 22409844} + m_Father: {fileID: 22409840} + m_RootOrder: 3 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 75} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22409822 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109822} + 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: 22409820} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22409824 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109824} + 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: 22409814} + - {fileID: 22409852} + m_Father: {fileID: 22409812} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 275} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22409826 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109826} + 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: 22409854} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409828 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109828} + 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: 22450566} + m_RootOrder: 4 + m_AnchorMin: {x: .5, y: 1} + m_AnchorMax: {x: .5, y: 1} + m_AnchoredPosition: {x: 0, y: 10} + m_SizeDelta: {x: 38, y: 18} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22409830 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109830} + 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: 22409836} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 140, y: 210} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22409832 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109832} + 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: 22409858} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409834 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109834} + 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: 22409838} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: .5} + m_AnchorMax: {x: 1, y: .5} + m_AnchoredPosition: {x: -20, y: 0} + m_SizeDelta: {x: 45, y: 40} + m_Pivot: {x: 1, y: .5} +--- !u!224 &22409836 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109836} + 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: 22409830} + m_Father: {fileID: 22409814} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -5} + m_SizeDelta: {x: -40, y: -10} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22409838 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109838} + 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: 22409848} + - {fileID: 22409834} + m_Father: {fileID: 22409868} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409840 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109840} + 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: 22450566} + - {fileID: 22405432} + - {fileID: 22404620} + - {fileID: 22409820} + - {fileID: 22409868} + m_Father: {fileID: 22409812} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 240, y: 275} + m_Pivot: {x: 1, y: 1} +--- !u!224 &22409842 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109842} + 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: 22409864} + m_Father: {fileID: 22409808} + m_RootOrder: 2 + 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: .5, y: .5} +--- !u!224 &22409844 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109844} + 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: 22409816} + m_Father: {fileID: 22409820} + m_RootOrder: 3 + 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: .5, y: .5} +--- !u!224 &22409846 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109846} + 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: 22409806} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409848 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109848} + 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: 22409838} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: .5} + m_AnchorMax: {x: 0, y: .5} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0, y: .5} +--- !u!224 &22409850 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109850} + 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: 22409818} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409852 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109852} + 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: 22409860} + m_Father: {fileID: 22409824} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -32, y: -5} + m_SizeDelta: {x: 27, y: -10} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22409854 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109854} + 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: 22409826} + m_Father: {fileID: 22409808} + m_RootOrder: 1 + 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: .5, y: .5} +--- !u!224 &22409856 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109856} + 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: 22409802} + - {fileID: 22414402} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 475} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22409858 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109858} + 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: 22409832} + m_Father: {fileID: 22409820} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: .25} + m_AnchorMax: {x: 1, y: .75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22409860 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109860} + 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: 22409810} + m_Father: {fileID: 22409852} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409864 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109864} + 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: 22409842} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22409866 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109866} + 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: 22450566} + m_RootOrder: 2 + m_AnchorMin: {x: .5, y: 0} + m_AnchorMax: {x: .5, y: 1} + m_AnchoredPosition: {x: 0, y: -2} + m_SizeDelta: {x: 1, y: -4} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22409868 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109868} + 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: 22409838} + - {fileID: 22409818} + m_Father: {fileID: 22409840} + m_RootOrder: 4 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: .5, y: 0} +--- !u!224 &22409870 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109870} + 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: 22450566} + m_RootOrder: 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, y: 1} +--- !u!224 &22409872 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109872} + m_LocalRotation: {x: 1, y: 0, z: 0, w: -4.37113883e-08} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: .75, y: .75, z: 1} + m_Children: [] + m_Father: {fileID: 22450566} + m_RootOrder: 5 + m_AnchorMin: {x: .5, y: 0} + m_AnchorMax: {x: .5, y: 0} + m_AnchoredPosition: {x: 0, y: 6} + m_SizeDelta: {x: 38, y: 18} + m_Pivot: {x: .5, y: 0} +--- !u!224 &22414402 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 114402} + 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: 22409812} + m_Father: {fileID: 22409856} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -5} + m_SizeDelta: {x: 0, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22434586 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134586} + 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: 22409804} + m_Father: {fileID: 22450566} + m_RootOrder: 1 + 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, y: 1} +--- !u!224 &22450566 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150566} + 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: 22409870} + - {fileID: 22434586} + - {fileID: 22409866} + - {fileID: 22468552} + - {fileID: 22409828} + - {fileID: 22409872} + - {fileID: 22450568} + m_Father: {fileID: 22409840} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22450568 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 150568} + 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: 22497780} + - {fileID: 22497778} + - {fileID: 22497776} + m_Father: {fileID: 22450566} + m_RootOrder: 6 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: -26} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22468552 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168552} + 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: 22450566} + m_RootOrder: 3 + m_AnchorMin: {x: .5, y: 0} + m_AnchorMax: {x: .5, y: 1} + m_AnchoredPosition: {x: 0, y: -2} + m_SizeDelta: {x: 1, y: -4} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22497776 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197776} + 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: 22450568} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: .5} + m_AnchorMax: {x: 0, y: .5} + m_AnchoredPosition: {x: 0, y: 55} + m_SizeDelta: {x: 30, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22497778 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197778} + 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: 22450568} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: .5} + m_AnchorMax: {x: 1, y: .5} + m_AnchoredPosition: {x: 0, y: 55} + m_SizeDelta: {x: 30, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22497780 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 197780} + 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: 22450568} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 55} + m_SizeDelta: {x: 30, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!225 &22505076 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109856} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 109856} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab.meta new file mode 100644 index 0000000..7e84e0a --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/CalibrationWindow.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 38d33a94cb0d1e74c87c949cc4554f33 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab new file mode 100644 index 0000000..57f226b --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab @@ -0,0 +1,1516 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &134650 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434650} + - 222: {fileID: 22234650} + - 114: {fileID: 11434652} + - 114: {fileID: 11434654} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134652 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434652} + - 222: {fileID: 22234652} + - 114: {fileID: 11434658} + - 114: {fileID: 11434656} + - 114: {fileID: 11434660} + - 114: {fileID: 11434662} + m_Layer: 5 + m_Name: DoneButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134654 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434654} + - 114: {fileID: 11434664} + m_Layer: 5 + m_Name: WindowButtonGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134656 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434656} + - 222: {fileID: 22234654} + - 114: {fileID: 11434666} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134658 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434658} + m_Layer: 5 + m_Name: InnerContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134660 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434660} + - 222: {fileID: 22234656} + - 114: {fileID: 11434670} + - 114: {fileID: 11434668} + m_Layer: 5 + m_Name: ScrollboxContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134662 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434662} + m_Layer: 5 + m_Name: ScrollContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134664 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434664} + - 222: {fileID: 22234658} + - 114: {fileID: 11434672} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134666 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434666} + - 114: {fileID: 11434676} + - 114: {fileID: 11434674} + - 114: {fileID: 11434678} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134668 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434668} + - 114: {fileID: 11434680} + - 222: {fileID: 22234660} + - 114: {fileID: 11434684} + - 114: {fileID: 11434682} + m_Layer: 5 + m_Name: ScrollArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134670 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434670} + - 222: {fileID: 22234662} + - 114: {fileID: 11434688} + - 114: {fileID: 11434686} + - 114: {fileID: 11434690} + - 114: {fileID: 11434692} + m_Layer: 5 + m_Name: DefaultButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134672 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434672} + - 222: {fileID: 22234664} + - 114: {fileID: 11434694} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134674 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434674} + - 222: {fileID: 22234666} + - 114: {fileID: 11434698} + - 114: {fileID: 11434696} + - 114: {fileID: 11434700} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134676 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434676} + - 222: {fileID: 22234668} + - 114: {fileID: 11434704} + - 114: {fileID: 11434702} + - 114: {fileID: 11434706} + - 114: {fileID: 11434708} + m_Layer: 5 + m_Name: CancelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134678 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434678} + - 225: {fileID: 22534650} + - 114: {fileID: 11434650} + m_Layer: 5 + m_Name: InputBehaviorWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134680 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434680} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &134684 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22434684} + - 222: {fileID: 22234672} + - 114: {fileID: 11434714} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &185298 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22485298} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11434650 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6aa89d54922800f4c9fa81625f03ac3d, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundImage: {fileID: 11434652} + content: {fileID: 185298} + spawnTransform: {fileID: 22434666} + doneButton: {fileID: 11434656} + cancelButton: {fileID: 11434702} + defaultButton: {fileID: 11434686} + doneButtonLabel: {fileID: 11434694} + cancelButtonLabel: {fileID: 11434672} + defaultButtonLabel: {fileID: 11434714} + uiControlSetPrefab: {fileID: 106690, guid: 47fb4e1b0f1159042ac032a510a3b81a, type: 2} + uiSliderControlPrefab: {fileID: 116142, guid: 31c5c2ae2cefb724180d371f82059183, + type: 2} +--- !u!114 &11434652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11434654 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: popupWindow + _component: {fileID: 11434652} +--- !u!114 &11434656 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 11434702} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434658} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnDone + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11434658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11434660 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11434656} + - _themeClass: button + _component: {fileID: 11434694} +--- !u!114 &11434662 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11434664 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11434666 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11434668 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: area + _component: {fileID: 11434670} +--- !u!114 &11434670 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + 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 +--- !u!114 &11434672 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Cancel +--- !u!114 &11434674 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &11434676 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!114 &11434678 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 679ba094c265ca5468c417c33c76603c, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 11434680} +--- !u!114 &11434680 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22434666} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: .100000001 + m_Inertia: 1 + m_DecelerationRate: .135000005 + m_ScrollSensitivity: 20 + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11434696} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: OnAxisScrollRectScroll + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11434682 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &11434684 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11434686 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 11434702} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434688} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnRestoreDefault + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11434688 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11434690 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11434686} + - _themeClass: button + _component: {fileID: 11434714} +--- !u!114 &11434692 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11434694 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Done +--- !u!114 &11434696 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434666} + m_HandleRect: {fileID: 22434656} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &11434698 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11434700 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11434696} +--- !u!114 &11434702 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f3c86bd947a7414080a238779a33248, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 11434656} + m_SelectOnRight: {fileID: 11434686} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: .300484419, g: .399280936, b: .458823532, a: 1} + m_HighlightedColor: {r: 0, g: .419929147, b: .669117689, a: 1} + m_PressedColor: {r: 0, g: .627586365, b: 1, a: 1} + m_DisabledColor: {r: .140376776, g: .18981342, b: .219607845, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434704} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + _disabledHighlightedSprite: {fileID: 0} + _disabledHighlightedColor: {r: 0, g: .419929147, b: .669117689, a: .494117647} + _disabledHighlightedTrigger: + _autoNavUp: 1 + _autoNavDown: 0 + _autoNavLeft: 0 + _autoNavRight: 0 +--- !u!114 &11434704 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + 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 +--- !u!114 &11434706 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: + _component: {fileID: 11434702} + - _themeClass: button + _component: {fileID: 11434672} +--- !u!114 &11434708 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + delegates: + - eventID: 16 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11434650} + m_MethodName: OnCancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &11434714 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Default +--- !u!222 &22234650 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134650} +--- !u!222 &22234652 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} +--- !u!222 &22234654 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134656} +--- !u!222 &22234656 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134660} +--- !u!222 &22234658 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134664} +--- !u!222 &22234660 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134668} +--- !u!222 &22234662 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} +--- !u!222 &22234664 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134672} +--- !u!222 &22234666 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134674} +--- !u!222 &22234668 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} +--- !u!222 &22234672 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134684} +--- !u!224 &22434650 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134650} + 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: 22434678} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434652 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134652} + 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: 22434672} + m_Father: {fileID: 22434654} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434654 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134654} + 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: 22434652} + - {fileID: 22434676} + - {fileID: 22434670} + m_Father: {fileID: 22434658} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22434656 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134656} + 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: 22434680} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22434658 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134658} + 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: 22434662} + - {fileID: 22434654} + m_Father: {fileID: 22485298} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: -60, y: -100} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22434660 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134660} + 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: 22434668} + m_Father: {fileID: 22434662} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434662 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134662} + 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: 22434660} + - {fileID: 22434674} + m_Father: {fileID: 22434658} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 325} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22434664 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134664} + 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: 22434676} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434666 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134666} + 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: 22434668} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: 1} +--- !u!224 &22434668 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134668} + 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: 22434666} + m_Father: {fileID: 22434660} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: -40, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22434670 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134670} + 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: 22434684} + m_Father: {fileID: 22434654} + m_RootOrder: 2 + 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: .5, y: .5} +--- !u!224 &22434672 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134672} + 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: 22434652} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434674 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134674} + 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: 22434680} + m_Father: {fileID: 22434662} + m_RootOrder: 1 + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -32, y: -5} + m_SizeDelta: {x: 27, y: -10} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22434676 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134676} + 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: 22434664} + m_Father: {fileID: 22434654} + m_RootOrder: 1 + 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: .5, y: .5} +--- !u!224 &22434678 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134678} + 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: 22434650} + - {fileID: 22485298} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 525} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22434680 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134680} + 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: 22434656} + m_Father: {fileID: 22434674} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22434684 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134684} + 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: 22434670} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22485298 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 185298} + 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: 22434658} + m_Father: {fileID: 22434678} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -5} + m_SizeDelta: {x: 0, y: -10} + m_Pivot: {x: .5, y: .5} +--- !u!225 &22534650 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 134678} + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 134678} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab.meta new file mode 100644 index 0000000..d761b8c --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/InputBehaviorWindow.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 981cd43603172924c95b6c4ef0a81a7d +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab new file mode 100644 index 0000000..dd7b65f --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab @@ -0,0 +1,182 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &194266 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494266} + - 222: {fileID: 22294270} + - 114: {fileID: 11494268} + - 114: {fileID: 11440684} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &194268 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494268} + - 225: {fileID: 22524224} + - 114: {fileID: 11494270} + m_Layer: 5 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &194270 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22494270} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11440684 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caf493bc378f92447a8a228821ba4eaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _elements: + - _themeClass: popupWindow + _component: {fileID: 11494268} +--- !u!114 &11494268 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .140376776, g: .18981342, b: .219607845, a: 1} + 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 +--- !u!114 &11494270 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c9e2756f6b40c8b89e4abff4ff190d, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundImage: {fileID: 11494268} + content: {fileID: 194270} +--- !u!222 &22294270 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194266} +--- !u!224 &22494266 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194266} + 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: 22494268} + m_RootOrder: 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: .5, y: .5} +--- !u!224 &22494268 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194268} + 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: 22494266} + - {fileID: 22494270} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 400} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22494270 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194270} + 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: 22494268} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 5} + m_SizeDelta: {x: -40, y: -30} + m_Pivot: {x: .5, y: .5} +--- !u!225 &22524224 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 194268} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 194268} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab.meta b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab.meta new file mode 100644 index 0000000..6afe7cc --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Prefabs/Parts/Windows/Window.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e3a57c68883dca4408b56577d0a4d600 +NativeFormatImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Scripts.meta b/Assets/Control Mapper/Extras/ControlMapper/Scripts.meta new file mode 100644 index 0000000..dffac3d --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Scripts.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: d8d82d6f384466c458e2ded1432df36e +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs b/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs new file mode 100644 index 0000000..7041bdd --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs @@ -0,0 +1,14 @@ +// Copyright (c) 2015 Augie R. Maddox, Guavaman Enterprises. All rights reserved. +#pragma warning disable 0219 +#pragma warning disable 0618 +#pragma warning disable 0649 + +namespace Rewired.UI.ControlMapper { + + using UnityEngine; + + [AddComponentMenu("")] + public class ButtonInfo : UIElementInfo { + + } +} \ No newline at end of file diff --git a/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs.meta b/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs.meta new file mode 100644 index 0000000..df419c7 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Scripts/ButtonInfo.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd0463b06a911144bb290fdd9fadedf6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Control Mapper/Extras/ControlMapper/Scripts/CalibrationWindow.cs b/Assets/Control Mapper/Extras/ControlMapper/Scripts/CalibrationWindow.cs new file mode 100644 index 0000000..430c5e7 --- /dev/null +++ b/Assets/Control Mapper/Extras/ControlMapper/Scripts/CalibrationWindow.cs @@ -0,0 +1,472 @@ +// Copyright (c) 2015 Augie R. Maddox, Guavaman Enterprises. All rights reserved. +#pragma warning disable 0219 +#pragma warning disable 0618 +#pragma warning disable 0649 + +namespace Rewired.UI.ControlMapper { + + using UnityEngine; + using UnityEngine.UI; + using System.Collections.Generic; + using Rewired; + using Rewired.Utils; + using Rewired.Integration.UnityUI; + + [AddComponentMenu("")] + public class CalibrationWindow : Window { + + private const float minSensitivityOtherAxes = 0.1f; // used for non-menu axes, min value to prevent axis from becoming useless + private const float maxDeadzone = 0.8f; // max dead zone value user is allowed to set to prevent full axis from becoming useless + + [SerializeField] + private RectTransform rightContentContainer; + [SerializeField] + private RectTransform valueDisplayGroup; + [SerializeField] + private RectTransform calibratedValueMarker; + [SerializeField] + private RectTransform rawValueMarker; + [SerializeField] + private RectTransform calibratedZeroMarker; + [SerializeField] + private RectTransform deadzoneArea; + [SerializeField] + private Slider deadzoneSlider; + [SerializeField] + private Slider zeroSlider; + [SerializeField] + private Slider sensitivitySlider; + [SerializeField] + private Toggle invertToggle; + [SerializeField] + private RectTransform axisScrollAreaContent; + [SerializeField] + private Button doneButton; + [SerializeField] + private Button calibrateButton; + [SerializeField] + private Text doneButtonLabel; + [SerializeField] + private Text cancelButtonLabel; + [SerializeField] + private Text defaultButtonLabel; + [SerializeField] + private Text deadzoneSliderLabel; + [SerializeField] + private Text zeroSliderLabel; + [SerializeField] + private Text sensitivitySliderLabel; + [SerializeField] + private Text invertToggleLabel; + [SerializeField] + private Text calibrateButtonLabel; + + [SerializeField] + private GameObject axisButtonPrefab; + + private Joystick joystick; + + private string origCalibrationData; + private int selectedAxis = -1; + private AxisCalibrationData origSelectedAxisCalibrationData; + private float displayAreaWidth; + private List