[
  {
    "path": ".gitignore",
    "content": "# This .gitignore file should be placed at the root of your Unity project directory\n#\n# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore\n#\n/[Ll]ibrary/\n/[Tt]emp/\n/[Oo]bj/\n/[Bb]uild/\n/[Bb]uilds/\n/[Ll]ogs/\n/[Mm]emoryCaptures/\n\n# Asset meta data should only be ignored when the corresponding asset is also ignored\n!/[Aa]ssets/**/*.meta\n\n# Uncomment this line if you wish to ignore the asset store tools plugin\n# /[Aa]ssets/AssetStoreTools*\n\n# Autogenerated Jetbrains Rider plugin\n[Aa]ssets/Plugins/Editor/JetBrains*\n\n# Visual Studio cache directory\n.vs/\n\n# Gradle cache directory\n.gradle/\n\n# Autogenerated VS/MD/Consulo solution and project files\nExportedObj/\n.consulo/\n*.csproj\n*.unityproj\n*.sln\n*.suo\n*.tmp\n*.user\n*.userprefs\n*.pidb\n*.booproj\n*.svd\n*.pdb\n*.mdb\n*.opendb\n*.VC.db\n\n# Unity3D generated meta files\n*.pidb.meta\n*.pdb.meta\n*.mdb.meta\n\n# Unity3D generated file on crash reports\nsysinfo.txt\n\n# Builds\n*.apk\n*.unitypackage\n\n# Crashlytics generated file\ncrashlytics-build.properties\n\n/.idea*\n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources/Shaders/AdvancedHandleShader.shader",
    "content": "﻿/**\n * Created by Peter @sHTiF Stefcek 20.10.2020\n */\n\nShader \"sHTiF/AdvancedHandleShader\"\n{\n    Properties\n    {\n        _Color (\"Color\", Color) = (1,1,1,1)\n        _CameraPosition (\"Camera Position\", Vector) = (0,0,0,0)\n        _CameraDistance (\"Camera Distance\", float) = 0\n    }\n    SubShader\n    {\n        Tags { \"RenderType\"=\"Transparent\" \"Queue\"=\"Transparent+1\" }\n        LOD 100\n        \n        ZWrite On\n        ZTest Always\n        Cull Off\n        Blend SrcAlpha OneMinusSrcAlpha\n\n        Pass\n        {\n            CGPROGRAM\n            #pragma vertex vert\n            #pragma fragment frag\n\n            #include \"UnityCG.cginc\"\n\n            struct IN\n            {\n                float4 vertex : POSITION;\n            };\n\n            struct OUT\n            {\n                float4 vertex : SV_POSITION;\n                float4 positionWS : TEXCOORD1;\n            };\n\n            float4 _Color;\n            float3 _CameraPosition;\n            float _CameraDistance;\n\n            OUT vert (IN v)\n            {\n                OUT o;\n                o.vertex = UnityObjectToClipPos(v.vertex);\n                o.positionWS = mul(unity_ObjectToWorld, float4(v.vertex.xyz,1.0));\n                \n                return o;\n            }\n\n            fixed4 frag (OUT i) : SV_Target\n            {\n                if (distance(i.positionWS, _CameraPosition) > _CameraDistance)\n                    return float4(0,0,0,0.1f);\n                \n                return _Color;\n            }\n            ENDCG\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources/Shaders/AdvancedHandleShader.shader.meta",
    "content": "fileFormatVersion: 2\nguid: 1008cb9dd02145ec90ad3213cd72bac8\ntimeCreated: 1684239200"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources/Shaders/HandleShader.shader",
    "content": "﻿/**\n * Created by Peter @sHTiF Stefcek 20.10.2020\n */\n\nShader \"sHTiF/HandleShader\"\n{\n    Properties\n    {\n        _Color (\"Color\", Color) = (1,1,1,1)\n    }\n    SubShader\n    {\n        Tags { \"RenderType\"=\"Transparent\" \"Queue\"=\"Transparent+1\" }\n        LOD 100\n        \n        ZWrite On\n        ZTest Always\n        Cull Off\n        Blend SrcAlpha OneMinusSrcAlpha\n\n        Pass\n        {\n            CGPROGRAM\n            #pragma vertex vert\n            #pragma fragment frag\n\n            #include \"UnityCG.cginc\"\n\n            struct appdata\n            {\n                float4 vertex : POSITION;\n            };\n\n            struct v2f\n            {\n                float4 vertex : SV_POSITION;\n            };\n\n            float4 _Color;\n\n            v2f vert (appdata v)\n            {\n                v2f o;\n                o.vertex = UnityObjectToClipPos(v.vertex);\n                \n                return o;\n            }\n\n            fixed4 frag (v2f i) : SV_Target\n            {\n                return _Color;\n            }\n            ENDCG\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources/Shaders/HandleShader.shader.meta",
    "content": "fileFormatVersion: 2\nguid: 3f2eb4d1f3e2b144991ccf3f3a019f91\nShaderImporter:\n  externalObjects: {}\n  defaultTextures: []\n  nonModifiableTextures: []\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources/Shaders.meta",
    "content": "fileFormatVersion: 2\nguid: 89706ea9f1b2943b4af61baa2b55853e\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Resources.meta",
    "content": "﻿fileFormatVersion: 2\nguid: bed7928ed89f4a7ab2abc3aea954441f\ntimeCreated: 1603357821"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/RuntimeTransformHandle.asmdef",
    "content": "{\n    \"name\": \"RuntimeTransformHandle\",\n    \"rootNamespace\": \"\",\n    \"references\": [\n        \"GUID:75469ad4d38634e559750d17036d5f7c\"\n    ],\n    \"includePlatforms\": [],\n    \"excludePlatforms\": [],\n    \"allowUnsafeCode\": false,\n    \"overrideReferences\": false,\n    \"precompiledReferences\": [],\n    \"autoReferenced\": true,\n    \"defineConstraints\": [],\n    \"versionDefines\": [],\n    \"noEngineReferences\": false\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/RuntimeTransformHandle.asmdef.meta",
    "content": "fileFormatVersion: 2\nguid: bd138c7a207f4ee4894d6faa1b365b8c\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleAxes.cs",
    "content": "namespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public enum HandleAxes\n    {\n        X = 0b100,\n        Y = 0b010,\n        Z = 0b001,\n        XY = 0b110,\n        XZ = 0b101,\n        YZ = 0b011,\n        XYZ = 0b111\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleAxes.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 0f8747d6fd4e4dfbb3654026c416b588\ntimeCreated: 1603396831"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleBase.cs",
    "content": "using System;\nusing System.IO;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public abstract class HandleBase : MonoBehaviour\n    {\n        public event Action InteractionStart;\n        public event Action InteractionEnd;\n        public event Action<float> InteractionUpdate;\n        \n        protected RuntimeTransformHandle _parentTransformHandle;\n\n        protected Color _defaultColor;\n\n        protected Material _material;\n\n        protected Vector3 _hitPoint;\n\n        protected bool _isInteracting = false;\n\n        public float delta;\n\n        protected virtual void InitializeMaterial()\n        {\n            _material = new Material(Resources.Load(\"Shaders/HandleShader\") as Shader);\n            _material.color = _defaultColor;\n        }\n        \n        public void SetDefaultColor()\n        {\n            _material.color = _defaultColor;\n        }\n        \n        public void SetColor(Color p_color)\n        {\n            _material.color = p_color;\n        }\n        \n        public virtual void StartInteraction(Vector3 p_hitPoint)\n        {\n            _hitPoint = p_hitPoint;\n            InteractionStart?.Invoke();\n            _isInteracting = true;\n        }\n\n        public virtual bool CanInteract(Vector3 p_hitPoint)\n        {\n            return true;\n        }\n        \n        public virtual void Interact(Vector3 p_previousPosition)\n        {\n            InteractionUpdate?.Invoke(delta);\n        }\n\n        public virtual void EndInteraction()\n        {\n            _isInteracting = false;\n            InteractionEnd?.Invoke();\n            delta = 0;\n            SetDefaultColor();\n        }\n\n        static public Vector3 GetVectorFromAxes(HandleAxes p_axes)\n        {\n            switch (p_axes)\n            {\n                case HandleAxes.X:\n                    return new Vector3(1,0,0);\n                case HandleAxes.Y:\n                    return new Vector3(0,1,0);\n                case HandleAxes.Z:\n                    return new Vector3(0,0,1);\n                case HandleAxes.XY:\n                    return new Vector3(1,1,0);\n                case HandleAxes.XZ:\n                    return new Vector3(1,0,1);\n                case HandleAxes.YZ:\n                    return new Vector3(0,1,1);\n                default:\n                    return new Vector3(1,1,1);\n            }\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleBase.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 18fdd5d34b974458a9622a65624bb704\ntimeCreated: 1603269597"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleSnappingType.cs",
    "content": "namespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public enum HandleSnappingType\n    {\n        ABSOLUTE,\n        RELATIVE\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleSnappingType.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: cfac020ebdcf4d3a835fec9855abd233\ntimeCreated: 1603399999"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleSpace.cs",
    "content": "namespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public enum HandleSpace\n    {\n        WORLD,\n        LOCAL\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleSpace.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 9873d4af6ebd422187dc7894d4c6774a\ntimeCreated: 1603316095"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleType.cs",
    "content": "namespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public enum HandleType\n    {\n        POSITION,\n        ROTATION,\n        SCALE\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/HandleType.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: ab5ba2a246f74a698d4cf4c4457d2311\ntimeCreated: 1603294240"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionAxis.cs",
    "content": "using System;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class PositionAxis : HandleBase\n    {\n        protected Vector3 _startPosition;\n        protected Vector3 _axis;\n\n        private Vector3 _interactionOffset;\n        private Ray     _raxisRay;\n\n        public PositionAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Color p_color)\n        {\n            _parentTransformHandle = p_runtimeHandle;\n            _axis = p_axis;\n            _defaultColor = p_color;\n            \n            InitializeMaterial();\n\n            transform.SetParent(p_runtimeHandle.transform, false);\n\n            GameObject o = new GameObject();\n            o.transform.SetParent(transform, false);\n            MeshRenderer mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            MeshFilter mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateCone(2f, .02f, .02f, 8, 1);\n            MeshCollider mc = o.AddComponent<MeshCollider>();\n            mc.sharedMesh = MeshUtils.CreateCone(2f, .1f, .02f, 8, 1);\n            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis);\n\n            o = new GameObject();\n            o.transform.SetParent(transform, false);\n            mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateCone(.4f, .2f, .0f, 8, 1);\n            mc = o.AddComponent<MeshCollider>();\n            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis);\n            o.transform.localPosition = p_axis * 2;\n\n            return this;\n        }\n\n        public override void Interact(Vector3 p_previousPosition)\n        {\n            Ray cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n\n            float   closestT = HandleMathUtils.ClosestPointOnRay(_raxisRay, cameraRay);\n            Vector3 hitPoint = _raxisRay.GetPoint(closestT);\n            \n            Vector3 offset = hitPoint + _interactionOffset - _startPosition;\n            \n            Vector3 snapping = _parentTransformHandle.positionSnap;\n            float   snap     = Vector3.Scale(snapping, _axis).magnitude;\n            if (snap != 0 && _parentTransformHandle.snappingType == HandleSnappingType.RELATIVE)\n            {\n                offset = (Mathf.Round(offset.magnitude / snap) * snap) * offset.normalized; \n            }\n\n            Vector3 position = _startPosition + offset;\n            \n            if (snap != 0 && _parentTransformHandle.snappingType == HandleSnappingType.ABSOLUTE)\n            {\n                if (snapping.x != 0) position.x = Mathf.Round(position.x / snapping.x) * snapping.x;\n                if (snapping.y != 0) position.y = Mathf.Round(position.y / snapping.y) * snapping.y;\n                if (snapping.x != 0) position.z = Mathf.Round(position.z / snapping.z) * snapping.z;\n            }\n            \n            _parentTransformHandle.target.position = position;\n\n            base.Interact(p_previousPosition);\n        }\n        \n        public override void StartInteraction(Vector3 p_hitPoint)\n        {\n            base.StartInteraction(p_hitPoint);\n            \n            _startPosition = _parentTransformHandle.target.position;\n\n            Vector3 raxis = _parentTransformHandle.space == HandleSpace.LOCAL\n                ? _parentTransformHandle.target.rotation * _axis\n                : _axis;\n            \n            _raxisRay = new Ray(_startPosition, raxis);\n\n            Ray cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n\n            float closestT = HandleMathUtils.ClosestPointOnRay(_raxisRay, cameraRay);\n            Vector3 hitPoint = _raxisRay.GetPoint(closestT);\n            \n            _interactionOffset = _startPosition - hitPoint;\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionAxis.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 3d71686958d04dd4bbcdb353ff4c95e0\ntimeCreated: 1603268885"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionHandle.cs",
    "content": "using System.Collections.Generic;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class PositionHandle : MonoBehaviour\n    {\n        protected RuntimeTransformHandle _parentTransformHandle;\n        protected List<PositionAxis> _axes;\n        protected List<PositionPlane> _planes;\n\n        public PositionHandle Initialize(RuntimeTransformHandle p_runtimeHandle)\n        {\n            _parentTransformHandle = p_runtimeHandle;\n            transform.SetParent(_parentTransformHandle.transform, false);\n\n            _axes = new List<PositionAxis>();\n\n            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<PositionAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.right, Color.red));\n            \n            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<PositionAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.up, Color.green));\n\n            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<PositionAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.forward, Color.blue));\n\n            _planes = new List<PositionPlane>();\n            \n            if (_parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _planes.Add(new GameObject().AddComponent<PositionPlane>()\n                    .Initialize(_parentTransformHandle, Vector3.right, Vector3.up, -Vector3.forward, new Color(0,0,1,.2f)));\n\n            if (_parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _planes.Add(new GameObject().AddComponent<PositionPlane>()\n                    .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Vector3.right, new Color(1, 0, 0, .2f)));\n\n            if (_parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _planes.Add(new GameObject().AddComponent<PositionPlane>()\n                    .Initialize(_parentTransformHandle, Vector3.right, Vector3.forward, Vector3.up, new Color(0, 1, 0, .2f)));\n\n            return this;\n        }\n\n        public void Destroy()\n        {\n            foreach (PositionAxis axis in _axes)\n                Destroy(axis.gameObject);\n            \n            foreach (PositionPlane plane in _planes)\n                Destroy(plane.gameObject);\n            \n            Destroy(this);\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionHandle.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: b74328aefac54b6ba984bdeb94170a79\ntimeCreated: 1603382407"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionPlane.cs",
    "content": "using UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class PositionPlane : HandleBase\n    {\n        protected Vector3 _startPosition;\n        protected Vector3 _axis1;\n        protected Vector3 _axis2;\n        protected Vector3 _perp;\n        protected Plane _plane;\n        protected Vector3 _interactionOffset;\n        protected GameObject _handle;\n        \n        public PositionPlane Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis1, Vector3 p_axis2, Vector3 p_perp, Color p_color)\n        {\n            _parentTransformHandle = p_runtimeHandle;\n            _defaultColor = p_color;\n            _axis1 = p_axis1;\n            _axis2 = p_axis2;\n            _perp = p_perp;\n\n            InitializeMaterial();\n\n            transform.SetParent(p_runtimeHandle.transform, false);\n\n            _handle = new GameObject();\n            _handle.transform.SetParent(transform, false);\n            MeshRenderer mr = _handle.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            MeshFilter mf = _handle.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateBox(.02f, .5f, 0.5f);\n            MeshCollider mc = _handle.AddComponent<MeshCollider>();\n            _handle.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _perp);\n            _handle.transform.localPosition = (_axis1 + _axis2) * .25f;\n\n            return this;\n        }\n\n        public override void Interact(Vector3 p_previousPosition)\n        {\n            Ray ray = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n\n            float d = 0.0f;\n            _plane.Raycast(ray, out d);\n            \n            Vector3 hitPoint = ray.GetPoint(d);\n\n            Vector3 offset = hitPoint + _interactionOffset - _startPosition;\n\n            Vector3 axis = _axis1 + _axis2;\n            Vector3 snapping = _parentTransformHandle.positionSnap;\n            float snap = Vector3.Scale(snapping, axis).magnitude;\n            if (snap != 0 && _parentTransformHandle.snappingType == HandleSnappingType.RELATIVE)\n            {\n                if (snapping.x != 0) offset.x = Mathf.Round(offset.x / snapping.x) * snapping.x;\n                if (snapping.y != 0) offset.y = Mathf.Round(offset.y / snapping.y) * snapping.y;\n                if (snapping.z != 0) offset.z = Mathf.Round(offset.z / snapping.z) * snapping.z;\n            }\n\n            Vector3 position = _startPosition + offset;\n            \n            if (snap != 0 && _parentTransformHandle.snappingType == HandleSnappingType.ABSOLUTE)\n            {\n                if (snapping.x != 0) position.x = Mathf.Round(position.x / snapping.x) * snapping.x;\n                if (snapping.y != 0) position.y = Mathf.Round(position.y / snapping.y) * snapping.y;\n                if (snapping.x != 0) position.z = Mathf.Round(position.z / snapping.z) * snapping.z;\n            }\n\n            _parentTransformHandle.target.position = position;\n\n            base.Interact(p_previousPosition);\n        }\n\n        public override void StartInteraction(Vector3 p_hitPoint)\n        {\n            Vector3 rperp = _parentTransformHandle.space == HandleSpace.LOCAL\n                ? _parentTransformHandle.target.rotation * _perp\n                : _perp;\n            \n            _plane = new Plane(rperp, _parentTransformHandle.target.position);\n            \n            Ray ray = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n\n            float d = 0.0f;\n            _plane.Raycast(ray, out d);\n            \n            Vector3 hitPoint = ray.GetPoint(d);\n            _startPosition = _parentTransformHandle.target.position;\n            _interactionOffset = _startPosition - hitPoint;\n        }\n\n        void Update()\n        {\n            Vector3 axis1 = _axis1;\n            Vector3 raxis1 = _parentTransformHandle.space == HandleSpace.LOCAL\n                ? _parentTransformHandle.target.rotation * axis1\n                : axis1;\n            float angle1 = Vector3.Angle(_parentTransformHandle.handleCamera.transform.forward, raxis1);\n            if (angle1 < 90)\n                axis1 = -axis1;\n            \n            //Debug.Log(Vector3.Angle(_parentTransformHandle.handleCamera.transform.forward, raxis1));\n            // if (Vector3.Angle(_parentTransformHandle.handleCamera.transform.forward, axis1) > 90)\n            //     axis1 = -axis1;\n            \n            Vector3 axis2 = _axis2;\n            Vector3 raxis2 = _parentTransformHandle.space == HandleSpace.LOCAL\n                ? _parentTransformHandle.target.rotation * axis2\n                : axis2;\n            float angle2 = Vector3.Angle(_parentTransformHandle.handleCamera.transform.forward, raxis2);\n            if (angle2 < 90)\n                axis2 = -axis2;\n\n            _handle.transform.localPosition = (axis1 + axis2) * .25f;\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position/PositionPlane.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 5a5015f7e5184426a12b667bac91ff94\ntimeCreated: 1603382398"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Position.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 749259c97ae845798e58978915f5b894\ntimeCreated: 1603379534"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Rotation/RotationAxis.cs",
    "content": "using System;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class RotationAxis : HandleBase\n    {\n        private Mesh     _arcMesh;\n        private Material _arcMaterial;\n        private Vector3  _axis;\n        private Vector3  _rotatedAxis;\n        private Plane    _axisPlane;\n        private Vector3  _tangent;\n        private Vector3  _biTangent;\n        \n        private Quaternion _startRotation;\n\n        public RotationAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Color p_color)\n        {\n            _parentTransformHandle = p_runtimeHandle;\n            _axis = p_axis;\n            _defaultColor = p_color;\n            \n            InitializeMaterial();\n\n            transform.SetParent(p_runtimeHandle.transform, false);\n\n            GameObject o = new GameObject();\n            o.transform.SetParent(transform, false);\n            MeshRenderer mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            MeshFilter mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateTorus(2f, .02f, 32, 6);\n            MeshCollider mc = o.AddComponent<MeshCollider>();\n            mc.sharedMesh = MeshUtils.CreateTorus(2f, .1f, 32, 6);\n            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis);\n            return this;\n        }\n        \n        protected override void InitializeMaterial()\n        {\n            _material = new Material(Resources.Load(\"Shaders/AdvancedHandleShader\") as Shader);\n            _material.color = _defaultColor;\n        }\n\n        public void Update()\n        {\n            _material.SetVector(\"_CameraPosition\", _parentTransformHandle.handleCamera.transform.position);\n            _material.SetFloat(\"_CameraDistance\",\n                (_parentTransformHandle.handleCamera.transform.position - _parentTransformHandle.transform.position)\n                .magnitude);\n        }\n\n        public override void Interact(Vector3 p_previousPosition)\n        {\n            Ray cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n            \n            if (!_axisPlane.Raycast(cameraRay, out float hitT))\n            {\n                base.Interact(p_previousPosition);\n                return;\n            }\n            \n            Vector3 hitPoint     = cameraRay.GetPoint(hitT);\n            Vector3 hitDirection = (hitPoint - _parentTransformHandle.target.position).normalized;\n            float   x            = Vector3.Dot(hitDirection, _tangent);\n            float   y            = Vector3.Dot(hitDirection, _biTangent);\n            float   angleRadians = Mathf.Atan2(y, x);\n            float   angleDegrees = angleRadians * Mathf.Rad2Deg;\n\n            if (_parentTransformHandle.rotationSnap != 0)\n            {\n                angleDegrees = Mathf.Round(angleDegrees / _parentTransformHandle.rotationSnap) * _parentTransformHandle.rotationSnap;\n                angleRadians = angleDegrees                                                    * Mathf.Deg2Rad;\n            }\n\n            if (_parentTransformHandle.space == HandleSpace.LOCAL)\n            {\n                _parentTransformHandle.target.localRotation = _startRotation * Quaternion.AngleAxis(angleDegrees, _axis);\n            }\n            else\n            {\n                Vector3 invertedRotatedAxis = Quaternion.Inverse(_startRotation) * _axis;\n                _parentTransformHandle.target.rotation = _startRotation * Quaternion.AngleAxis(angleDegrees, invertedRotatedAxis);\n            }\n\n            _arcMesh = MeshUtils.CreateArc(transform.position, _hitPoint, _rotatedAxis, 2, angleRadians, Mathf.Abs(Mathf.CeilToInt(angleDegrees)) + 1);\n            DrawArc();\n\n            base.Interact(p_previousPosition);\n        }\n        \n        public override bool CanInteract(Vector3 p_hitPoint)\n        {\n            var cameraDistance = (_parentTransformHandle.transform.position - _parentTransformHandle.handleCamera.transform.position).magnitude;\n            var pointDistance = (p_hitPoint - _parentTransformHandle.handleCamera.transform.position).magnitude;\n            return pointDistance <= cameraDistance;\n        }\n\n        public override void StartInteraction(Vector3 p_hitPoint)\n        {\n            if (!CanInteract(p_hitPoint))\n                return;\n           \n            \n            base.StartInteraction(p_hitPoint);\n            \n            _startRotation = _parentTransformHandle.space == HandleSpace.LOCAL ? _parentTransformHandle.target.localRotation : _parentTransformHandle.target.rotation;\n\n            _arcMaterial = new Material(Shader.Find(\"sHTiF/HandleShader\"));\n            _arcMaterial.color = new Color(1,1,0,.4f);\n            _arcMaterial.renderQueue = 5000;\n            //_arcMesh.gameObject.SetActive(true);\n\n            if (_parentTransformHandle.space == HandleSpace.LOCAL)\n            {\n                _rotatedAxis = _startRotation * _axis;\n            }\n            else\n            {\n                _rotatedAxis     = _axis;\n            }\n\n            _axisPlane = new Plane(_rotatedAxis, _parentTransformHandle.target.position);\n\n            Vector3 startHitPoint;\n            Ray     cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n            if (_axisPlane.Raycast(cameraRay, out float hitT))\n            {\n                startHitPoint = cameraRay.GetPoint(hitT);\n            }\n            else\n            {\n                startHitPoint = _axisPlane.ClosestPointOnPlane(p_hitPoint);\n            }\n            \n            _tangent   = (startHitPoint - _parentTransformHandle.target.position).normalized;\n            _biTangent = Vector3.Cross(_rotatedAxis, _tangent);\n        }\n        \n        public override void EndInteraction()\n        {\n            base.EndInteraction();\n            //Destroy(_arcMesh.gameObject);\n            delta = 0;\n        }\n\n        void DrawArc()\n        {\n            // _arcMaterial.SetPass(0);\n            // Graphics.DrawMeshNow(_arcMesh, Matrix4x4.identity);\n            Graphics.DrawMesh(_arcMesh, Matrix4x4.identity, _arcMaterial, 0);\n\n            // GameObject arc = new GameObject();\n            // MeshRenderer mr = arc.AddComponent<MeshRenderer>();\n            // mr.material = new Material(Shader.Find(\"sHTiF/HandleShader\"));\n            // mr.material.color = new Color(1,1,0,.5f);\n            // _arcMesh = arc.AddComponent<MeshFilter>();\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Rotation/RotationAxis.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 887cfee69e3349bc94c52b27882d2a32\ntimeCreated: 1603287291"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Rotation/RotationHandle.cs",
    "content": "using System.Collections.Generic;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class RotationHandle : MonoBehaviour\n    {\n        protected RuntimeTransformHandle _parentTransformHandle;\n        protected List<RotationAxis> _axes;\n\n        public RotationHandle Initialize(RuntimeTransformHandle p_parentTransformHandle)\n        {\n            _parentTransformHandle = p_parentTransformHandle;\n            transform.SetParent(_parentTransformHandle.transform, false);\n\n            _axes = new List<RotationAxis>();\n            \n            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<RotationAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.right, Color.red));\n            \n            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<RotationAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.up, Color.green));\n\n            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<RotationAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.forward, Color.blue));\n\n            return this;\n        }\n\n        public void Destroy()\n        {\n            foreach (RotationAxis axis in _axes)\n                Destroy(axis.gameObject);\n            \n            Destroy(this);\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Rotation/RotationHandle.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 1742203d7bd34c8fb00333fe33169a0b\ntimeCreated: 1603382419"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Rotation.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 809e64720473404b9320301c1ce89ce2\ntimeCreated: 1603379562"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleAxis.cs",
    "content": "using System.IO;\nusing System.Security.Permissions;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class ScaleAxis : HandleBase\n    {\n        private const float SIZE = 2;\n        \n        private Vector3 _axis;\n        private Vector3 _startScale;\n\n        private float _interactionDistance;\n        private Ray     _raxisRay;\n        \n        public ScaleAxis Initialize(RuntimeTransformHandle p_parentTransformHandle, Vector3 p_axis, Color p_color)\n        {\n            _parentTransformHandle = p_parentTransformHandle;\n            _axis = p_axis;\n            _defaultColor = p_color;\n\n            InitializeMaterial();\n\n            transform.SetParent(p_parentTransformHandle.transform, false);\n\n            GameObject o = new GameObject();\n            o.transform.SetParent(transform, false);\n            MeshRenderer mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            MeshFilter mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .02f, .02f, 8, 1);\n            MeshCollider mc = o.AddComponent<MeshCollider>();\n            mc.sharedMesh = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .1f, .02f, 8, 1);\n            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis);\n\n            o = new GameObject();\n            o.transform.SetParent(transform, false);\n            mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateBox(.25f, .25f, .25f);\n            mc = o.AddComponent<MeshCollider>();\n            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis);\n            o.transform.localPosition = p_axis * SIZE;\n\n            return this;\n        }\n\n        protected void Update()\n        {\n            transform.GetChild(0).localScale = new Vector3(1, 1+delta, 1);\n            transform.GetChild(1).localPosition = _axis * (SIZE * (1 + delta));\n        }\n\n        public override void Interact(Vector3 p_previousPosition)\n        {\n            Ray cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n\n            float   closestT = HandleMathUtils.ClosestPointOnRay(_raxisRay, cameraRay);\n            Vector3 hitPoint = _raxisRay.GetPoint(closestT);\n            \n            float distance = Vector3.Distance(_parentTransformHandle.target.position, hitPoint);\n            float axisScaleDelta    = distance / _interactionDistance - 1f;\n\n            Vector3 snapping = _parentTransformHandle.scaleSnap;\n            float   snap     = Mathf.Abs(Vector3.Dot(snapping, _axis));\n            if (snap != 0)\n            {\n                if (_parentTransformHandle.snappingType == HandleSnappingType.RELATIVE)\n                {\n                    axisScaleDelta = Mathf.Round(axisScaleDelta / snap) * snap;\n                }\n                else\n                {\n                    float axisStartScale = Mathf.Abs(Vector3.Dot(_startScale, _axis));\n                    axisScaleDelta = Mathf.Round((axisScaleDelta + axisStartScale) / snap) * snap - axisStartScale;\n                }\n            }\n\n            delta = axisScaleDelta;\n            Vector3 scale = Vector3.Scale(_startScale, _axis * axisScaleDelta + Vector3.one);\n\n            _parentTransformHandle.target.localScale = scale;\n\n            base.Interact(p_previousPosition);\n        }\n\n        public override void StartInteraction(Vector3 p_hitPoint)\n        {\n            base.StartInteraction(p_hitPoint);\n            _startScale = _parentTransformHandle.target.localScale;\n\n            Vector3 raxis = _parentTransformHandle.space == HandleSpace.LOCAL\n                ? _parentTransformHandle.target.rotation * _axis\n                : _axis;\n            \n            _raxisRay = new Ray(_parentTransformHandle.target.position, raxis);\n            \n            Ray cameraRay = Camera.main.ScreenPointToRay(RuntimeTransformHandle.GetMousePosition());\n            \n            float   closestT = HandleMathUtils.ClosestPointOnRay(_raxisRay, cameraRay);\n            Vector3 hitPoint = _raxisRay.GetPoint(closestT);\n            \n            _interactionDistance = Vector3.Distance(_parentTransformHandle.target.position, hitPoint);\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleAxis.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 9c35d890b25848d384900b0bf5bfaeba\ntimeCreated: 1603294174"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleGlobal.cs",
    "content": "using System.IO;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class ScaleGlobal : HandleBase\n    {\n        protected Vector3 _axis;\n        protected Vector3 _startScale;\n        \n        public ScaleGlobal Initialize(RuntimeTransformHandle p_parentTransformHandle, Vector3 p_axis, Color p_color)\n        {\n            _parentTransformHandle = p_parentTransformHandle;\n            _axis = p_axis;\n            _defaultColor = p_color;\n            \n            InitializeMaterial();\n\n            transform.SetParent(p_parentTransformHandle.transform, false);\n\n            GameObject o = new GameObject();\n            o.transform.SetParent(transform, false);\n            MeshRenderer mr = o.AddComponent<MeshRenderer>();\n            mr.material = _material;\n            MeshFilter mf = o.AddComponent<MeshFilter>();\n            mf.mesh = MeshUtils.CreateBox(.35f, .35f, .35f);\n            MeshCollider mc = o.AddComponent<MeshCollider>();\n\n            return this;\n        }\n\n        public override void Interact(Vector3 p_previousPosition)\n        {\n            Vector3 mouseVector = (RuntimeTransformHandle.GetMousePosition() - p_previousPosition);\n            float d = (mouseVector.x + mouseVector.y) * Time.deltaTime * 2;\n            delta += d;\n            _parentTransformHandle.target.localScale = _startScale + Vector3.Scale(_startScale,_axis) * delta;\n            \n            base.Interact(p_previousPosition);\n        }\n\n        public override void StartInteraction(Vector3 p_hitPoint)\n        {\n            base.StartInteraction(p_hitPoint);\n            _startScale = _parentTransformHandle.target.localScale;\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleGlobal.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 68740daa55f44180892aca8775a8c0ee\ntimeCreated: 1603318850"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleHandle.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 20.10.2020\n     */\n    public class ScaleHandle : MonoBehaviour\n    {\n        protected RuntimeTransformHandle _parentTransformHandle;\n        protected List<ScaleAxis> _axes;\n        protected ScaleGlobal _globalAxis;\n        \n        public ScaleHandle Initialize(RuntimeTransformHandle p_parentTransformHandle)\n        {\n            _parentTransformHandle = p_parentTransformHandle;\n            transform.SetParent(_parentTransformHandle.transform, false);\n\n            _axes = new List<ScaleAxis>();\n            \n            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<ScaleAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.right, Color.red));\n            \n            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<ScaleAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.up, Color.green));\n\n            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)\n                _axes.Add(new GameObject().AddComponent<ScaleAxis>()\n                    .Initialize(_parentTransformHandle, Vector3.forward, Color.blue));\n\n            if (_parentTransformHandle.axes != HandleAxes.X && _parentTransformHandle.axes != HandleAxes.Y && _parentTransformHandle.axes != HandleAxes.Z)\n            {\n                _globalAxis = new GameObject().AddComponent<ScaleGlobal>()\n                    .Initialize(_parentTransformHandle, HandleBase.GetVectorFromAxes(_parentTransformHandle.axes), Color.white);\n                \n                _globalAxis.InteractionStart += OnGlobalInteractionStart;\n                _globalAxis.InteractionUpdate += OnGlobalInteractionUpdate;\n                _globalAxis.InteractionEnd += OnGlobalInteractionEnd;\n            }\n\n            return this;\n        }\n\n        void OnGlobalInteractionStart()\n        {\n            foreach (ScaleAxis axis in _axes)\n            {\n                axis.SetColor(Color.yellow);\n            }\n        }\n\n        void OnGlobalInteractionUpdate(float p_delta)\n        {\n            foreach (ScaleAxis axis in _axes)\n            {\n                axis.delta = p_delta;\n            }\n        }\n\n        void OnGlobalInteractionEnd()\n        {\n            foreach (ScaleAxis axis in _axes)\n            {\n                axis.SetDefaultColor();\n                axis.delta = 0;\n            }\n        }\n\n        public void Destroy()\n        {\n            foreach (ScaleAxis axis in _axes)\n                Destroy(axis.gameObject);\n\n            if (_globalAxis) Destroy(_globalAxis.gameObject);\n            \n            Destroy(this);\n        }\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale/ScaleHandle.cs.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 563d66185932403da1818cdbc93a7cb7\ntimeCreated: 1603358227"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles/Scale.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 2b844fc0a14b4a878e70f4b7a6af3137\ntimeCreated: 1603379502"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Handles.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 8bb76c032e1042dcaaf13886a877b980\ntimeCreated: 1603358181"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/RuntimeTransformHandle.cs",
    "content": "﻿using UnityEngine;\nusing UnityEngine.Events;\n#if ENABLE_INPUT_SYSTEM\nusing UnityEngine.InputSystem;\n#endif\n\nnamespace RuntimeHandle\n{\n    /**\n     * Created by Peter @sHTiF Stefcek 21.10.2020\n     */\n    public class RuntimeTransformHandle : MonoBehaviour\n    {\n        public HandleAxes axes = HandleAxes.XYZ;\n        public HandleSpace space = HandleSpace.LOCAL;\n        public HandleType type = HandleType.POSITION;\n        public HandleSnappingType snappingType = HandleSnappingType.RELATIVE;\n\n        public Vector3 positionSnap = Vector3.zero;\n        public float rotationSnap = 0;\n        public Vector3 scaleSnap = Vector3.zero;\n\n        public bool autoScale = false;\n        public float autoScaleFactor = 1;\n        public Camera handleCamera;\n\n        private Vector3 _previousMousePosition;\n        private HandleBase _previousAxis;\n\n        private HandleBase _draggingHandle;\n\n        private HandleType _previousType;\n        private HandleAxes _previousAxes;\n\n        private PositionHandle _positionHandle;\n        private RotationHandle _rotationHandle;\n        private ScaleHandle _scaleHandle;\n\n        public Transform target;\n\n        public UnityEvent startedDraggingHandle = new UnityEvent();\n        public UnityEvent isDraggingHandle = new UnityEvent();\n        public UnityEvent endedDraggingHandle = new UnityEvent();\n\n        [SerializeField] private bool disableWhenNoTarget;\n\n        void Start()\n        {\n            if (handleCamera == null)\n                handleCamera = Camera.main;\n\n            _previousType = type;\n\n            if (target == null)\n                target = transform;\n\n            if (disableWhenNoTarget && target == transform)\n                gameObject.SetActive(false);\n\n            CreateHandles();\n        }\n\n        void CreateHandles()\n        {\n            switch (type)\n            {\n                case HandleType.POSITION:\n                    _positionHandle = gameObject.AddComponent<PositionHandle>().Initialize(this);\n                    break;\n                case HandleType.ROTATION:\n                    _rotationHandle = gameObject.AddComponent<RotationHandle>().Initialize(this);\n                    break;\n                case HandleType.SCALE:\n                    _scaleHandle = gameObject.AddComponent<ScaleHandle>().Initialize(this);\n                    break;\n            }\n        }\n\n        void Clear()\n        {\n            _draggingHandle = null;\n\n            if (_positionHandle) _positionHandle.Destroy();\n            if (_rotationHandle) _rotationHandle.Destroy();\n            if (_scaleHandle) _scaleHandle.Destroy();\n        }\n\n        void Update()\n        {\n            if (autoScale)\n                transform.localScale =\n                    Vector3.one * (Vector3.Distance(handleCamera.transform.position, transform.position) * autoScaleFactor) / 15;\n\n            if (_previousType != type || _previousAxes != axes)\n            {\n                Clear();\n                CreateHandles();\n                _previousType = type;\n                _previousAxes = axes;\n            }\n\n            HandleBase handle = null;\n            Vector3 hitPoint = Vector3.zero;\n            GetHandle(ref handle, ref hitPoint);\n\n            HandleOverEffect(handle, hitPoint);\n\n            if (PointerIsDown() && _draggingHandle != null)\n            {\n                _draggingHandle.Interact(_previousMousePosition);\n                isDraggingHandle.Invoke();\n            }\n\n            if (GetPointerDown() && handle != null)\n            {\n                _draggingHandle = handle;\n                _draggingHandle.StartInteraction(hitPoint);\n                startedDraggingHandle.Invoke();\n            }\n\n            if (GetPointerUp() && _draggingHandle != null)\n            {\n                _draggingHandle.EndInteraction();\n                _draggingHandle = null;\n                endedDraggingHandle.Invoke();\n            }\n\n            _previousMousePosition = GetMousePosition();\n\n            transform.position = target.transform.position;\n            if (space == HandleSpace.LOCAL || type == HandleType.SCALE)\n            {\n                transform.rotation = target.transform.rotation;\n            }\n            else\n            {\n                transform.rotation = Quaternion.identity;\n            }\n        }\n\n        public static bool GetPointerDown()\n        {\n#if ENABLE_INPUT_SYSTEM\n            return Mouse.current.leftButton.wasPressedThisFrame;\n#else\n            return Input.GetMouseButtonDown(0);\n#endif\n        }\n\n        public static bool PointerIsDown()\n        {\n#if ENABLE_INPUT_SYSTEM\n            return Mouse.current.leftButton.isPressed;\n#else\n            return Input.GetMouseButton(0);\n#endif\n        }\n\n        public static bool GetPointerUp()\n        {\n#if ENABLE_INPUT_SYSTEM\n            return Mouse.current.leftButton.wasReleasedThisFrame;\n#else\n            return Input.GetMouseButtonUp(0);\n#endif\n        }\n\n        public static Vector3 GetMousePosition()\n        {\n#if ENABLE_INPUT_SYSTEM\n            return Mouse.current.position.ReadValue();\n#else\n            return Input.mousePosition;\n#endif\n        }\n\n        void HandleOverEffect(HandleBase p_axis, Vector3 p_hitPoint)\n        {\n            if (_draggingHandle == null && _previousAxis != null && (_previousAxis != p_axis || !_previousAxis.CanInteract(p_hitPoint)))\n            {\n                _previousAxis.SetDefaultColor();\n            }\n\n            if (p_axis != null && _draggingHandle == null && p_axis.CanInteract(p_hitPoint))\n            {\n                p_axis.SetColor(Color.yellow);\n            }\n\n            _previousAxis = p_axis;\n        }\n\n        private void GetHandle(ref HandleBase p_handle, ref Vector3 p_hitPoint)\n        {\n            Ray ray = Camera.main.ScreenPointToRay(GetMousePosition());\n            RaycastHit[] hits = Physics.RaycastAll(ray);\n            if (hits.Length == 0)\n                return;\n\n            foreach (RaycastHit hit in hits)\n            {\n                p_handle = hit.collider.gameObject.GetComponentInParent<HandleBase>();\n\n                if (p_handle != null)\n                {\n                    p_hitPoint = hit.point;\n                    return;\n                }\n            }\n        }\n\n        static public RuntimeTransformHandle Create(Transform p_target, HandleType p_handleType)\n        {\n            RuntimeTransformHandle runtimeTransformHandle = new GameObject().AddComponent<RuntimeTransformHandle>();\n            runtimeTransformHandle.target = p_target;\n            runtimeTransformHandle.type = p_handleType;\n\n            return runtimeTransformHandle;\n        }\n\n        #region public methods to control handles\n        public void SetTarget(Transform newTarget)\n        {\n            target = newTarget;\n        }\n\n        public void SetTarget(GameObject newTarget)\n        {\n            target = newTarget.transform;\n\n            if (target == null)\n                target = transform;\n\n            if (disableWhenNoTarget && target == transform)\n                gameObject.SetActive(false);\n            else if(disableWhenNoTarget && target != transform)\n                gameObject.SetActive(true);\n        }\n\n        public void SetHandleMode(int mode)\n        {\n            SetHandleMode((HandleType)mode);\n        }\n\n        public void SetHandleMode(HandleType mode)\n        {\n            type = mode;\n        }\n\n        public void EnableXAxis(bool enable)\n        {\n            if (enable)\n                axes |= HandleAxes.X;\n            else\n                axes &= ~HandleAxes.X;\n        }\n\n        public void EnableYAxis(bool enable)\n        {\n            if (enable)\n                axes |= HandleAxes.Y;\n            else\n                axes &= ~HandleAxes.Y;\n        }\n\n        public void EnableZAxis(bool enable)\n        {\n            if (enable)\n                axes |= HandleAxes.Z;\n            else\n                axes &= ~HandleAxes.Z;\n        }\n\n        public void SetAxis(HandleAxes newAxes)\n        {\n            axes = newAxes;\n        }\n        #endregion\n    }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/RuntimeTransformHandle.cs.meta",
    "content": "fileFormatVersion: 2\nguid: ecfa17e94c9ff9c47b43ede109092ac1\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Utils/HandleMathUtils.cs",
    "content": "using UnityEngine;\r\n\r\nnamespace RuntimeHandle\r\n{\r\n\tpublic static class HandleMathUtils\r\n\t{\r\n\t\tpublic const float PRECISION_THRESHOLD = 0.001f;\r\n\t\t\r\n\t\tpublic static float ClosestPointOnRay(Ray ray, Ray other)\r\n\t\t{\r\n\t\t\t// based on: https://math.stackexchange.com/questions/1036959/midpoint-of-the-shortest-distance-between-2-rays-in-3d\r\n\t\t\t// note: directions of both rays must be normalized\r\n\t\t\t// ray.origin -> a\r\n\t\t\t// ray.direction -> b\r\n\t\t\t// other.origin -> c\r\n\t\t\t// other.direction -> d\r\n\r\n\t\t\tfloat bd = Vector3.Dot(ray.direction, other.direction);\r\n\t\t\tfloat cd = Vector3.Dot(other.origin,  other.direction);\r\n\t\t\tfloat ad = Vector3.Dot(ray.origin,    other.direction);\r\n\t\t\tfloat bc = Vector3.Dot(ray.direction, other.origin);\r\n\t\t\tfloat ab = Vector3.Dot(ray.origin,    ray.direction);\r\n\t\t\t\r\n\t\t\tfloat bottom = bd * bd - 1f;\r\n\t\t\tif (Mathf.Abs(bottom) < PRECISION_THRESHOLD)\r\n\t\t\t{\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\tfloat top = ab - bc + bd * (cd - ad);\r\n\t\t\treturn top / bottom;\r\n\t\t}\r\n\t}\r\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Utils/HandleMathUtils.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 4dcd8e76b88b4fa792b0112ce898f6b2\ntimeCreated: 1655982569"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Utils/MeshUtils.cs",
    "content": "﻿using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\nnamespace RuntimeHandle\n{\n\t/**\n     * Created by Peter @sHTiF Stefcek 20.10.2020, some functions based on Unity wiki\n     */\n\tpublic class MeshUtils\n\t{\n\t\tstatic public Mesh CreateArc(Vector3 p_center, Vector3 p_startPoint, Vector3 p_axis, float p_radius, float p_angle, int p_segmentCount)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\t\t\t\n\t\t\tVector3[] vertices = new Vector3[p_segmentCount+2];\n\n\t\t\tVector3 startVector = (p_startPoint - p_center).normalized * p_radius;\n\t\t\tfor (int i = 0; i<=p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tfloat rad = (float) i / p_segmentCount * p_angle;\n\t\t\t\tVector3 v = Quaternion.AngleAxis(rad*180f/Mathf.PI, p_axis) * startVector;\n\t\t\t\tvertices[i] = v + p_center;\n\t\t\t}\n\t\t\tvertices[p_segmentCount+1] = p_center;\n\t\t\t\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tfor( int n = 0; n < normals.Length; n++ )\n\t\t\t\tnormals[n] = Vector3.up;\n\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\t\t\tfor (int i = 0; i<=p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tfloat rad = (float) i / p_segmentCount * p_angle;\n\t\t\t\tuvs[i] = new Vector2(Mathf.Cos(rad) * .5f + .5f, Mathf.Sin(rad) * .5f + .5f);\n\t\t\t}\n\t\t\tuvs[p_segmentCount + 1] = Vector2.one / 2f;\n\t\t\t\n\t\t\tint[] triangles = new int[ p_segmentCount * 3 ];\n\t\t\tfor (int i = 0; i < p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tint index = i * 3;\n\t\t\t\ttriangles[index] = p_segmentCount+1;\n\t\t\t\ttriangles[index+1] = i;\n\t\t\t\ttriangles[index+2] = i + 1;\n\t\t\t}\n\t\t\t\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n \n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\t\t\t\n\t\t\treturn mesh;\n\t\t}\n\t\t\n\t\tstatic public Mesh CreateArc(float p_radius, float p_angle, int p_segmentCount)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\t\t\t\n\t\t\tVector3[] vertices = new Vector3[p_segmentCount+2];\n\t\t\t\n\t\t\tfor (int i = 0; i<=p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tfloat rad = (float) i / p_segmentCount * p_angle;\n\t\t\t\tvertices[i] = new Vector3(Mathf.Cos(rad) * p_radius, 0f, Mathf.Sin(rad) * p_radius);\n\t\t\t}\n\t\t\tvertices[p_segmentCount+1] = Vector3.zero;\n\t\t\t\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tfor( int n = 0; n < normals.Length; n++ )\n\t\t\t\tnormals[n] = Vector3.up;\n\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\t\t\tfor (int i = 0; i<=p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tfloat rad = (float) i / p_segmentCount * p_angle;\n\t\t\t\tuvs[i] = new Vector2(Mathf.Cos(rad) * .5f + .5f, Mathf.Sin(rad) * .5f + .5f);\n\t\t\t}\n\t\t\tuvs[p_segmentCount + 1] = Vector2.one / 2f;\n\t\t\t\n\t\t\tint[] triangles = new int[ p_segmentCount * 3 ];\n\t\t\tfor (int i = 0; i < p_segmentCount; i++)\n\t\t\t{\n\t\t\t\tint index = i * 3;\n\t\t\t\ttriangles[index] = p_segmentCount+1;\n\t\t\t\ttriangles[index+1] = i;\n\t\t\t\ttriangles[index+2] = i + 1;\n\t\t\t}\n\t\t\t\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n \n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\t\t\t\n\t\t\treturn mesh;\n\t\t}\n\t\t\n\t\tstatic public Mesh CreateGrid(float p_width, float p_height, int p_segmentsX = 1, int p_segmentsY = 1)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\n\t\t\tint resX = p_segmentsX + 1;\n\t\t\tint resZ = p_segmentsY + 1;\n\t\t\t\n\t\t\tVector3[] vertices = new Vector3[ resX * resZ ];\n\t\t\tfor(int z = 0; z < resZ; z++)\n\t\t\t{\n\t\t\t\tfloat zPos = ((float)z / (resZ - 1) - .5f) * p_height;\n\t\t\t\tfor(int x = 0; x < resX; x++)\n\t\t\t\t{\n\t\t\t\t\tfloat xPos = ((float)x / (resX - 1) - .5f) * p_width;\n\t\t\t\t\tvertices[ x + z * resX ] = new Vector3( xPos, 0f, zPos );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\n\t\t\tVector3[] normals = new Vector3[ vertices.Length ];\n\t\t\tfor( int n = 0; n < normals.Length; n++ )\n\t\t\t\tnormals[n] = Vector3.up;\n\n\t\t\t\n\t\t\tVector2[] uvs = new Vector2[ vertices.Length ];\n\t\t\tfor(int v = 0; v < resZ; v++)\n\t\t\t{\n\t\t\t\tfor(int u = 0; u < resX; u++)\n\t\t\t\t{\n\t\t\t\t\tuvs[ u + v * resX ] = new Vector2( (float)u / (resX - 1), (float)v / (resZ - 1) );\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tint faceCount = (resX - 1) * (resZ - 1);\n\t\t\tint[] triangles = new int[ faceCount * 6 ];\n\t\t\tint t = 0;\n\t\t\tfor(int face = 0; face < faceCount; face++ )\n\t\t\t{\n\t\t\t\t// Retrieve lower left corner from face ind\n\t\t\t\tint i = face % (resX - 1) + (face / (resZ - 1) * resX);\n \n\t\t\t\ttriangles[t++] = i + resX;\n\t\t\t\ttriangles[t++] = i + 1;\n\t\t\t\ttriangles[t++] = i;\n \n\t\t\t\ttriangles[t++] = i + resX;\t\n\t\t\t\ttriangles[t++] = i + resX + 1;\n\t\t\t\ttriangles[t++] = i + 1; \n\t\t\t}\n\n \n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n \n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\t\t\n\t\tstatic public Mesh CreateBox(float p_width, float p_height, float p_depth)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\n\t\t\tVector3 v0 = new Vector3(-p_depth * .5f, -p_width * .5f, p_height * .5f);\n\t\t\tVector3 v1 = new Vector3(p_depth * .5f, -p_width * .5f, p_height * .5f);\n\t\t\tVector3 v2 = new Vector3(p_depth * .5f, -p_width * .5f, -p_height * .5f);\n\t\t\tVector3 v3 = new Vector3(-p_depth * .5f, -p_width * .5f, -p_height * .5f);\n\n\t\t\tVector3 v4 = new Vector3(-p_depth * .5f, p_width * .5f, p_height * .5f);\n\t\t\tVector3 v5 = new Vector3(p_depth * .5f, p_width * .5f, p_height * .5f);\n\t\t\tVector3 v6 = new Vector3(p_depth * .5f, p_width * .5f, -p_height * .5f);\n\t\t\tVector3 v7 = new Vector3(-p_depth * .5f, p_width * .5f, -p_height * .5f);\n\n\t\t\tVector3[] vertices = new Vector3[]\n\t\t\t{\n\t\t\t\t// Bottom\n\t\t\t\tv0, v1, v2, v3,\n\n\t\t\t\t// Left\n\t\t\t\tv7, v4, v0, v3,\n\n\t\t\t\t// Front\n\t\t\t\tv4, v5, v1, v0,\n\n\t\t\t\t// Back\n\t\t\t\tv6, v7, v3, v2,\n\n\t\t\t\t// Right\n\t\t\t\tv5, v6, v2, v1,\n\n\t\t\t\t// Top\n\t\t\t\tv7, v6, v5, v4\n\t\t\t};\n\n\t\t\tVector3 up = Vector3.up;\n\t\t\tVector3 down = Vector3.down;\n\t\t\tVector3 front = Vector3.forward;\n\t\t\tVector3 back = Vector3.back;\n\t\t\tVector3 left = Vector3.left;\n\t\t\tVector3 right = Vector3.right;\n\n\t\t\tVector3[] normals = new Vector3[]\n\t\t\t{\n\t\t\t\tdown, down, down, down,\n\n\t\t\t\tleft, left, left, left,\n\n\t\t\t\tfront, front, front, front,\n\n\t\t\t\tback, back, back, back,\n\n\t\t\t\tright, right, right, right,\n\n\t\t\t\tup, up, up, up\n\t\t\t};\n\n\t\t\tVector2 _00 = new Vector2(0f, 0f);\n\t\t\tVector2 _10 = new Vector2(1f, 0f);\n\t\t\tVector2 _01 = new Vector2(0f, 1f);\n\t\t\tVector2 _11 = new Vector2(1f, 1f);\n\n\t\t\tVector2[] uvs = new Vector2[]\n\t\t\t{\n\t\t\t\t// Bottom\n\t\t\t\t_11, _01, _00, _10,\n\n\t\t\t\t// Left\n\t\t\t\t_11, _01, _00, _10,\n\n\t\t\t\t// Front\n\t\t\t\t_11, _01, _00, _10,\n\n\t\t\t\t// Back\n\t\t\t\t_11, _01, _00, _10,\n\n\t\t\t\t// Right\n\t\t\t\t_11, _01, _00, _10,\n\n\t\t\t\t// Top\n\t\t\t\t_11, _01, _00, _10,\n\t\t\t};\n\n\t\t\tint[] triangles = new int[]\n\t\t\t{\n\t\t\t\t// Bottom\n\t\t\t\t3, 1, 0,\n\t\t\t\t3, 2, 1,\n\n\t\t\t\t// Left\n\t\t\t\t3 + 4 * 1, 1 + 4 * 1, 0 + 4 * 1,\n\t\t\t\t3 + 4 * 1, 2 + 4 * 1, 1 + 4 * 1,\n\n\t\t\t\t// Front\n\t\t\t\t3 + 4 * 2, 1 + 4 * 2, 0 + 4 * 2,\n\t\t\t\t3 + 4 * 2, 2 + 4 * 2, 1 + 4 * 2,\n\n\t\t\t\t// Back\n\t\t\t\t3 + 4 * 3, 1 + 4 * 3, 0 + 4 * 3,\n\t\t\t\t3 + 4 * 3, 2 + 4 * 3, 1 + 4 * 3,\n\n\t\t\t\t// Right\n\t\t\t\t3 + 4 * 4, 1 + 4 * 4, 0 + 4 * 4,\n\t\t\t\t3 + 4 * 4, 2 + 4 * 4, 1 + 4 * 4,\n\n\t\t\t\t// Top\n\t\t\t\t3 + 4 * 5, 1 + 4 * 5, 0 + 4 * 5,\n\t\t\t\t3 + 4 * 5, 2 + 4 * 5, 1 + 4 * 5,\n\t\t\t};\n\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n\n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\n\t\tstatic public Mesh CreateCone(float p_height, float p_bottomRadius, float p_topRadius, int p_sideCount,\n\t\t\tint p_heightSegmentCount)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\n\t\t\tint vertexCapCount = p_sideCount + 1;\n\n\t\t\t// bottom + top + sides\n\t\t\tVector3[] vertices =\n\t\t\t\tnew Vector3[vertexCapCount + vertexCapCount + p_sideCount * p_heightSegmentCount * 2 + 2];\n\t\t\tint vert = 0;\n\t\t\tfloat _2pi = Mathf.PI * 2f;\n\n\t\t\t// Bottom cap\n\t\t\tvertices[vert++] = new Vector3(0f, 0f, 0f);\n\t\t\twhile (vert <= p_sideCount)\n\t\t\t{\n\t\t\t\tfloat rad = (float) vert / p_sideCount * _2pi;\n\t\t\t\tvertices[vert] = new Vector3(Mathf.Cos(rad) * p_bottomRadius, 0f, Mathf.Sin(rad) * p_bottomRadius);\n\t\t\t\tvert++;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\tvertices[vert++] = new Vector3(0f, p_height, 0f);\n\t\t\twhile (vert <= p_sideCount * 2 + 1)\n\t\t\t{\n\t\t\t\tfloat rad = (float) (vert - p_sideCount - 1) / p_sideCount * _2pi;\n\t\t\t\tvertices[vert] = new Vector3(Mathf.Cos(rad) * p_topRadius, p_height, Mathf.Sin(rad) * p_topRadius);\n\t\t\t\tvert++;\n\t\t\t}\n\n\t\t\t// Sides\n\t\t\tint v = 0;\n\t\t\twhile (vert <= vertices.Length - 4)\n\t\t\t{\n\t\t\t\tfloat rad = (float) v / p_sideCount * _2pi;\n\t\t\t\tvertices[vert] = new Vector3(Mathf.Cos(rad) * p_topRadius, p_height, Mathf.Sin(rad) * p_topRadius);\n\t\t\t\tvertices[vert + 1] = new Vector3(Mathf.Cos(rad) * p_bottomRadius, 0, Mathf.Sin(rad) * p_bottomRadius);\n\t\t\t\tvert += 2;\n\t\t\t\tv++;\n\t\t\t}\n\n\t\t\tvertices[vert] = vertices[p_sideCount * 2 + 2];\n\t\t\tvertices[vert + 1] = vertices[p_sideCount * 2 + 3];\n\n\n\t\t\t// bottom + top + sides\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tvert = 0;\n\n\t\t\t// Bottom cap\n\t\t\twhile (vert <= p_sideCount)\n\t\t\t{\n\t\t\t\tnormals[vert++] = Vector3.down;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\twhile (vert <= p_sideCount * 2 + 1)\n\t\t\t{\n\t\t\t\tnormals[vert++] = Vector3.up;\n\t\t\t}\n\n\t\t\t// Sides\n\t\t\tv = 0;\n\t\t\twhile (vert <= vertices.Length - 4)\n\t\t\t{\n\t\t\t\tfloat rad = (float) v / p_sideCount * _2pi;\n\t\t\t\tfloat cos = Mathf.Cos(rad);\n\t\t\t\tfloat sin = Mathf.Sin(rad);\n\n\t\t\t\tnormals[vert] = new Vector3(cos, 0f, sin);\n\t\t\t\tnormals[vert + 1] = normals[vert];\n\n\t\t\t\tvert += 2;\n\t\t\t\tv++;\n\t\t\t}\n\n\t\t\tnormals[vert] = normals[p_sideCount * 2 + 2];\n\t\t\tnormals[vert + 1] = normals[p_sideCount * 2 + 3];\n\n\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\n\t\t\t// Bottom cap\n\t\t\tint u = 0;\n\t\t\tuvs[u++] = new Vector2(0.5f, 0.5f);\n\t\t\twhile (u <= p_sideCount)\n\t\t\t{\n\t\t\t\tfloat rad = (float) u / p_sideCount * _2pi;\n\t\t\t\tuvs[u] = new Vector2(Mathf.Cos(rad) * .5f + .5f, Mathf.Sin(rad) * .5f + .5f);\n\t\t\t\tu++;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\tuvs[u++] = new Vector2(0.5f, 0.5f);\n\t\t\twhile (u <= p_sideCount * 2 + 1)\n\t\t\t{\n\t\t\t\tfloat rad = (float) u / p_sideCount * _2pi;\n\t\t\t\tuvs[u] = new Vector2(Mathf.Cos(rad) * .5f + .5f, Mathf.Sin(rad) * .5f + .5f);\n\t\t\t\tu++;\n\t\t\t}\n\n\t\t\t// Sides\n\t\t\tint u_sides = 0;\n\t\t\twhile (u <= uvs.Length - 4)\n\t\t\t{\n\t\t\t\tfloat t = (float) u_sides / p_sideCount;\n\t\t\t\tuvs[u] = new Vector3(t, 1f);\n\t\t\t\tuvs[u + 1] = new Vector3(t, 0f);\n\t\t\t\tu += 2;\n\t\t\t\tu_sides++;\n\t\t\t}\n\n\t\t\tuvs[u] = new Vector2(1f, 1f);\n\t\t\tuvs[u + 1] = new Vector2(1f, 0f);\n\n\t\t\tint triangleCount = p_sideCount + p_sideCount + p_sideCount * 2;\n\t\t\tint[] triangles = new int[triangleCount * 3 + 3];\n\n\t\t\t// Bottom cap\n\t\t\tint tri = 0;\n\t\t\tint i = 0;\n\t\t\twhile (tri < p_sideCount - 1)\n\t\t\t{\n\t\t\t\ttriangles[i] = 0;\n\t\t\t\ttriangles[i + 1] = tri + 1;\n\t\t\t\ttriangles[i + 2] = tri + 2;\n\t\t\t\ttri++;\n\t\t\t\ti += 3;\n\t\t\t}\n\n\t\t\ttriangles[i] = 0;\n\t\t\ttriangles[i + 1] = tri + 1;\n\t\t\ttriangles[i + 2] = 1;\n\t\t\ttri++;\n\t\t\ti += 3;\n\n\t\t\t// Top cap\n\t\t\twhile (tri < p_sideCount * 2)\n\t\t\t{\n\t\t\t\ttriangles[i] = tri + 2;\n\t\t\t\ttriangles[i + 1] = tri + 1;\n\t\t\t\ttriangles[i + 2] = vertexCapCount;\n\t\t\t\ttri++;\n\t\t\t\ti += 3;\n\t\t\t}\n\n\t\t\ttriangles[i] = vertexCapCount + 1;\n\t\t\ttriangles[i + 1] = tri + 1;\n\t\t\ttriangles[i + 2] = vertexCapCount;\n\t\t\ttri++;\n\t\t\ti += 3;\n\t\t\ttri++;\n\n\t\t\t// Sides\n\t\t\twhile (tri <= triangleCount)\n\t\t\t{\n\t\t\t\ttriangles[i] = tri + 2;\n\t\t\t\ttriangles[i + 1] = tri + 1;\n\t\t\t\ttriangles[i + 2] = tri + 0;\n\t\t\t\ttri++;\n\t\t\t\ti += 3;\n\n\t\t\t\ttriangles[i] = tri + 1;\n\t\t\t\ttriangles[i + 1] = tri + 2;\n\t\t\t\ttriangles[i + 2] = tri + 0;\n\t\t\t\ttri++;\n\t\t\t\ti += 3;\n\t\t\t}\n\n\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n\n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\n\t\tstatic public Mesh CreateTube(float p_height, int p_sideCount, float p_bottomRadius, float p_bottomThickness,\n\t\t\tfloat p_topRadius, float p_topThickness)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\n\t\t\tint vertexCapCount = p_sideCount * 2 + 2;\n\t\t\tint vertexSideCount = p_sideCount * 2 + 2;\n\n\n\t\t\t// bottom + top + sides\n\t\t\tVector3[] vertices = new Vector3[vertexCapCount * 2 + vertexSideCount * 2];\n\t\t\tint vert = 0;\n\t\t\tfloat _2pi = Mathf.PI * 2f;\n\n\t\t\t// Bottom cap\n\t\t\tint sideCounter = 0;\n\t\t\twhile (vert < vertexCapCount)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\t\t\t\tfloat cos = Mathf.Cos(r1);\n\t\t\t\tfloat sin = Mathf.Sin(r1);\n\t\t\t\tvertices[vert] = new Vector3(cos * (p_bottomRadius - p_bottomThickness * .5f), 0f,\n\t\t\t\t\tsin * (p_bottomRadius - p_bottomThickness * .5f));\n\t\t\t\tvertices[vert + 1] = new Vector3(cos * (p_bottomRadius + p_bottomThickness * .5f), 0f,\n\t\t\t\t\tsin * (p_bottomRadius + p_bottomThickness * .5f));\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount * 2)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\t\t\t\tfloat cos = Mathf.Cos(r1);\n\t\t\t\tfloat sin = Mathf.Sin(r1);\n\t\t\t\tvertices[vert] = new Vector3(cos * (p_topRadius - p_topThickness * .5f), p_height,\n\t\t\t\t\tsin * (p_topRadius - p_topThickness * .5f));\n\t\t\t\tvertices[vert + 1] = new Vector3(cos * (p_topRadius + p_topThickness * .5f), p_height,\n\t\t\t\t\tsin * (p_topRadius + p_topThickness * .5f));\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\t\t\t// Sides (out)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount * 2 + vertexSideCount)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\t\t\t\tfloat cos = Mathf.Cos(r1);\n\t\t\t\tfloat sin = Mathf.Sin(r1);\n\n\t\t\t\tvertices[vert] = new Vector3(cos * (p_topRadius + p_topThickness * .5f), p_height,\n\t\t\t\t\tsin * (p_topRadius + p_topThickness * .5f));\n\t\t\t\tvertices[vert + 1] = new Vector3(cos * (p_bottomRadius + p_bottomThickness * .5f), 0,\n\t\t\t\t\tsin * (p_bottomRadius + p_bottomThickness * .5f));\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\t\t\t// Sides (in)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertices.Length)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\t\t\t\tfloat cos = Mathf.Cos(r1);\n\t\t\t\tfloat sin = Mathf.Sin(r1);\n\n\t\t\t\tvertices[vert] = new Vector3(cos * (p_topRadius - p_topThickness * .5f), p_height,\n\t\t\t\t\tsin * (p_topRadius - p_topThickness * .5f));\n\t\t\t\tvertices[vert + 1] = new Vector3(cos * (p_bottomRadius - p_bottomThickness * .5f), 0,\n\t\t\t\t\tsin * (p_bottomRadius - p_bottomThickness * .5f));\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\n\t\t\t// bottom + top + sides\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tvert = 0;\n\n\t\t\t// Bottom cap\n\t\t\twhile (vert < vertexCapCount)\n\t\t\t{\n\t\t\t\tnormals[vert++] = Vector3.down;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\twhile (vert < vertexCapCount * 2)\n\t\t\t{\n\t\t\t\tnormals[vert++] = Vector3.up;\n\t\t\t}\n\n\t\t\t// Sides (out)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount * 2 + vertexSideCount)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\n\t\t\t\tnormals[vert] = new Vector3(Mathf.Cos(r1), 0f, Mathf.Sin(r1));\n\t\t\t\tnormals[vert + 1] = normals[vert];\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\t\t\t// Sides (in)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertices.Length)\n\t\t\t{\n\t\t\t\tsideCounter = sideCounter == p_sideCount ? 0 : sideCounter;\n\n\t\t\t\tfloat r1 = (float) (sideCounter++) / p_sideCount * _2pi;\n\n\t\t\t\tnormals[vert] = -(new Vector3(Mathf.Cos(r1), 0f, Mathf.Sin(r1)));\n\t\t\t\tnormals[vert + 1] = normals[vert];\n\t\t\t\tvert += 2;\n\t\t\t}\n\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\n\t\t\tvert = 0;\n\t\t\t// Bottom cap\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount)\n\t\t\t{\n\t\t\t\tfloat t = (float) (sideCounter++) / p_sideCount;\n\t\t\t\tuvs[vert++] = new Vector2(0f, t);\n\t\t\t\tuvs[vert++] = new Vector2(1f, t);\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount * 2)\n\t\t\t{\n\t\t\t\tfloat t = (float) (sideCounter++) / p_sideCount;\n\t\t\t\tuvs[vert++] = new Vector2(0f, t);\n\t\t\t\tuvs[vert++] = new Vector2(1f, t);\n\t\t\t}\n\n\t\t\t// Sides (out)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertexCapCount * 2 + vertexSideCount)\n\t\t\t{\n\t\t\t\tfloat t = (float) (sideCounter++) / p_sideCount;\n\t\t\t\tuvs[vert++] = new Vector2(t, 0f);\n\t\t\t\tuvs[vert++] = new Vector2(t, 1f);\n\t\t\t}\n\n\t\t\t// Sides (in)\n\t\t\tsideCounter = 0;\n\t\t\twhile (vert < vertices.Length)\n\t\t\t{\n\t\t\t\tfloat t = (float) (sideCounter++) / p_sideCount;\n\t\t\t\tuvs[vert++] = new Vector2(t, 0f);\n\t\t\t\tuvs[vert++] = new Vector2(t, 1f);\n\t\t\t}\n\n\t\t\tint faceCount = p_sideCount * 4;\n\t\t\tint triangleCount = faceCount * 2;\n\t\t\tint indexCount = triangleCount * 3;\n\t\t\tint[] triangles = new int[indexCount];\n\n\t\t\t// Bottom cap\n\t\t\tint i = 0;\n\t\t\tsideCounter = 0;\n\t\t\twhile (sideCounter < p_sideCount)\n\t\t\t{\n\t\t\t\tint current = sideCounter * 2;\n\t\t\t\tint next = sideCounter * 2 + 2;\n\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = next;\n\t\t\t\ttriangles[i++] = current;\n\n\t\t\t\ttriangles[i++] = current + 1;\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = current;\n\n\t\t\t\tsideCounter++;\n\t\t\t}\n\n\t\t\t// Top cap\n\t\t\twhile (sideCounter < p_sideCount * 2)\n\t\t\t{\n\t\t\t\tint current = sideCounter * 2 + 2;\n\t\t\t\tint next = sideCounter * 2 + 4;\n\n\t\t\t\ttriangles[i++] = current;\n\t\t\t\ttriangles[i++] = next;\n\t\t\t\ttriangles[i++] = next + 1;\n\n\t\t\t\ttriangles[i++] = current;\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = current + 1;\n\n\t\t\t\tsideCounter++;\n\t\t\t}\n\n\t\t\t// Sides (out)\n\t\t\twhile (sideCounter < p_sideCount * 3)\n\t\t\t{\n\t\t\t\tint current = sideCounter * 2 + 4;\n\t\t\t\tint next = sideCounter * 2 + 6;\n\n\t\t\t\ttriangles[i++] = current;\n\t\t\t\ttriangles[i++] = next;\n\t\t\t\ttriangles[i++] = next + 1;\n\n\t\t\t\ttriangles[i++] = current;\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = current + 1;\n\n\t\t\t\tsideCounter++;\n\t\t\t}\n\n\n\t\t\t// Sides (in)\n\t\t\twhile (sideCounter < p_sideCount * 4)\n\t\t\t{\n\t\t\t\tint current = sideCounter * 2 + 6;\n\t\t\t\tint next = sideCounter * 2 + 8;\n\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = next;\n\t\t\t\ttriangles[i++] = current;\n\n\t\t\t\ttriangles[i++] = current + 1;\n\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\ttriangles[i++] = current;\n\n\t\t\t\tsideCounter++;\n\t\t\t}\n\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n\n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\n\t\tstatic public Mesh CreateTorus(float p_radius, float p_thickness, int p_radiusSegmentCount, int p_sideCount)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\n\n\t\t\tVector3[] vertices = new Vector3[(p_radiusSegmentCount + 1) * (p_sideCount + 1)];\n\t\t\tfloat _2pi = Mathf.PI * 2f;\n\t\t\tfor (int seg = 0; seg <= p_radiusSegmentCount; seg++)\n\t\t\t{\n\t\t\t\tint currSeg = seg == p_radiusSegmentCount ? 0 : seg;\n\n\t\t\t\tfloat t1 = (float) currSeg / p_radiusSegmentCount * _2pi;\n\t\t\t\tVector3 r1 = new Vector3(Mathf.Cos(t1) * p_radius, 0f, Mathf.Sin(t1) * p_radius);\n\n\t\t\t\tfor (int side = 0; side <= p_sideCount; side++)\n\t\t\t\t{\n\t\t\t\t\tint currSide = side == p_sideCount ? 0 : side;\n\n\t\t\t\t\tVector3 normale = Vector3.Cross(r1, Vector3.up);\n\t\t\t\t\tfloat t2 = (float) currSide / p_sideCount * _2pi;\n\t\t\t\t\tVector3 r2 = Quaternion.AngleAxis(-t1 * Mathf.Rad2Deg, Vector3.up) *\n\t\t\t\t\t             new Vector3(Mathf.Sin(t2) * p_thickness, Mathf.Cos(t2) * p_thickness);\n\n\t\t\t\t\tvertices[side + seg * (p_sideCount + 1)] = r1 + r2;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tfor (int seg = 0; seg <= p_radiusSegmentCount; seg++)\n\t\t\t{\n\t\t\t\tint currSeg = seg == p_radiusSegmentCount ? 0 : seg;\n\n\t\t\t\tfloat t1 = (float) currSeg / p_radiusSegmentCount * _2pi;\n\t\t\t\tVector3 r1 = new Vector3(Mathf.Cos(t1) * p_radius, 0f, Mathf.Sin(t1) * p_radius);\n\n\t\t\t\tfor (int side = 0; side <= p_sideCount; side++)\n\t\t\t\t{\n\t\t\t\t\tnormals[side + seg * (p_sideCount + 1)] =\n\t\t\t\t\t\t(vertices[side + seg * (p_sideCount + 1)] - r1).normalized;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\t\t\tfor (int seg = 0; seg <= p_radiusSegmentCount; seg++)\n\t\t\tfor (int side = 0; side <= p_sideCount; side++)\n\t\t\t\tuvs[side + seg * (p_sideCount + 1)] =\n\t\t\t\t\tnew Vector2((float) seg / p_radiusSegmentCount, (float) side / p_sideCount);\n\n\n\t\t\tint faceCount = vertices.Length;\n\t\t\tint triangleCount = faceCount * 2;\n\t\t\tint indexCount = triangleCount * 3;\n\t\t\tint[] triangles = new int[indexCount];\n\n\t\t\tint i = 0;\n\t\t\tfor (int seg = 0; seg <= p_radiusSegmentCount; seg++)\n\t\t\t{\n\t\t\t\tfor (int side = 0; side <= p_sideCount - 1; side++)\n\t\t\t\t{\n\t\t\t\t\tint current = side + seg * (p_sideCount + 1);\n\t\t\t\t\tint next = side + (seg < (p_radiusSegmentCount) ? (seg + 1) * (p_sideCount + 1) : 0);\n\n\t\t\t\t\tif (i < triangles.Length - 6)\n\t\t\t\t\t{\n\t\t\t\t\t\ttriangles[i++] = current;\n\t\t\t\t\t\ttriangles[i++] = next;\n\t\t\t\t\t\ttriangles[i++] = next + 1;\n\n\t\t\t\t\t\ttriangles[i++] = current;\n\t\t\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\t\t\ttriangles[i++] = current + 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n\n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\n\t\tstatic public Mesh CreateSphere(float p_radius, int p_longitudeCount, int p_lattitudeCount)\n\t\t{\n\t\t\tMesh mesh = new Mesh();\n\t\t\tmesh.Clear();\n\t\t\t\n\t\t\tVector3[] vertices = new Vector3[(p_longitudeCount+1) * p_lattitudeCount + 2];\n\t\t\tfloat _pi = Mathf.PI;\n\t\t\tfloat _2pi = _pi * 2f;\n\t\t\t \n\t\t\tvertices[0] = Vector3.up * p_radius;\n\t\t\tfor( int lat = 0; lat < p_lattitudeCount; lat++ )\n\t\t\t{\n\t\t\t\tfloat a1 = _pi * (float)(lat+1) / (p_lattitudeCount+1);\n\t\t\t\tfloat sin1 = Mathf.Sin(a1);\n\t\t\t\tfloat cos1 = Mathf.Cos(a1);\n\t\t\t \n\t\t\t\tfor( int lon = 0; lon <= p_longitudeCount; lon++ )\n\t\t\t\t{\n\t\t\t\t\tfloat a2 = _2pi * (float)(lon == p_longitudeCount ? 0 : lon) / p_longitudeCount;\n\t\t\t\t\tfloat sin2 = Mathf.Sin(a2);\n\t\t\t\t\tfloat cos2 = Mathf.Cos(a2);\n\t\t\t \n\t\t\t\t\tvertices[ lon + lat * (p_longitudeCount + 1) + 1] = new Vector3( sin1 * cos2, cos1, sin1 * sin2 ) * p_radius;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvertices[vertices.Length-1] = Vector3.up * -p_radius;\n\n\n\t\t\tVector3[] normals = new Vector3[vertices.Length];\n\t\t\tfor( int n = 0; n < vertices.Length; n++ )\n\t\t\t\tnormals[n] = vertices[n].normalized;\n\n\t\t\t\n\t\t\tVector2[] uvs = new Vector2[vertices.Length];\n\t\t\tuvs[0] = Vector2.up;\n\t\t\tuvs[uvs.Length-1] = Vector2.zero;\n\t\t\tfor( int lat = 0; lat < p_lattitudeCount; lat++ )\n\t\t\t\tfor( int lon = 0; lon <= p_longitudeCount; lon++ )\n\t\t\t\t\tuvs[lon + lat * (p_longitudeCount + 1) + 1] = new Vector2( (float)lon / p_longitudeCount, 1f - (float)(lat+1) / (p_lattitudeCount+1) );\n\t\t\t\n\t\t\tint faceCount = vertices.Length;\n\t\t\tint triangleCount = faceCount * 2;\n\t\t\tint indexCount = triangleCount * 3;\n\t\t\tint[] triangles = new int[ indexCount ];\n\t\t\t \n\t\t\t//Top Cap\n\t\t\tint i = 0;\n\t\t\tfor( int lon = 0; lon < p_longitudeCount; lon++ )\n\t\t\t{\n\t\t\t\ttriangles[i++] = lon+2;\n\t\t\t\ttriangles[i++] = lon+1;\n\t\t\t\ttriangles[i++] = 0;\n\t\t\t}\n\t\t\t \n\t\t\t//Middle\n\t\t\tfor( int lat = 0; lat < p_lattitudeCount - 1; lat++ )\n\t\t\t{\n\t\t\t\tfor( int lon = 0; lon < p_longitudeCount; lon++ )\n\t\t\t\t{\n\t\t\t\t\tint current = lon + lat * (p_longitudeCount + 1) + 1;\n\t\t\t\t\tint next = current + p_longitudeCount + 1;\n\t\t\t \n\t\t\t\t\ttriangles[i++] = current;\n\t\t\t\t\ttriangles[i++] = current + 1;\n\t\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t \n\t\t\t\t\ttriangles[i++] = current;\n\t\t\t\t\ttriangles[i++] = next + 1;\n\t\t\t\t\ttriangles[i++] = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\t \n\t\t\t//Bottom Cap\n\t\t\tfor( int lon = 0; lon < p_longitudeCount; lon++ )\n\t\t\t{\n\t\t\t\ttriangles[i++] = vertices.Length - 1;\n\t\t\t\ttriangles[i++] = vertices.Length - (lon+2) - 1;\n\t\t\t\ttriangles[i++] = vertices.Length - (lon+1) - 1;\n\t\t\t}\n\n\t\t\tmesh.vertices = vertices;\n\t\t\tmesh.normals = normals;\n\t\t\tmesh.uv = uvs;\n\t\t\tmesh.triangles = triangles;\n\t\t\t \n\t\t\tmesh.RecalculateBounds();\n\t\t\tmesh.Optimize();\n\n\t\t\treturn mesh;\n\t\t}\n\t}\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Utils/MeshUtils.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 9a4bcd6adf26f9548996c3b2dac3215a\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts/Utils.meta",
    "content": "﻿fileFormatVersion: 2\nguid: 8e54c08f563848849e74976a3cbbf235\ntimeCreated: 1603357836"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Scripts.meta",
    "content": "fileFormatVersion: 2\nguid: 394a97cdf878fda4cbed5380738fb0ac\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Sprites/Move-Icon.png.meta",
    "content": "fileFormatVersion: 2\nguid: 051bce463e99c431ab45f4b1c3734584\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 12\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  vTOnly: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 1\n    aniso: 1\n    mipBias: 0\n    wrapU: 1\n    wrapV: 1\n    wrapW: 0\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  flipbookRows: 1\n  flipbookColumns: 1\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  ignorePngGamma: 0\n  applyGammaDecoding: 0\n  cookieLightType: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Server\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Sprites/Rotate-Icon.png.meta",
    "content": "fileFormatVersion: 2\nguid: 9dc1f02eb7b3540a6899de3e2cfaa38e\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 12\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  vTOnly: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 1\n    aniso: 1\n    mipBias: 0\n    wrapU: 1\n    wrapV: 1\n    wrapW: 0\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  flipbookRows: 1\n  flipbookColumns: 1\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  ignorePngGamma: 0\n  applyGammaDecoding: 0\n  cookieLightType: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Server\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Sprites/Scale-Icon.png.meta",
    "content": "fileFormatVersion: 2\nguid: cf489f9b2f7ce40f6ad54209ee794526\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 12\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  vTOnly: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 1\n    aniso: 1\n    mipBias: 0\n    wrapU: 1\n    wrapV: 1\n    wrapW: 0\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  flipbookRows: 1\n  flipbookColumns: 1\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  ignorePngGamma: 0\n  applyGammaDecoding: 0\n  cookieLightType: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Server\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/Sprites.meta",
    "content": "fileFormatVersion: 2\nguid: f71c7cc0745fb45a38392d10844e3cfc\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/package.json",
    "content": "{\n  \"name\": \"com.shtif.runtimetransformhandle\",\n  \"displayName\": \"Runtime Transform Handle\",\n  \"version\": \"0.1.4\",\n  \"unity\": \"2019.4\",\n  \"description\": \"Transform handles/gizmos for runtime use.\",\n  \"author\": {\n\t\"name\": \"Peter @sHTiF Stefcek\",\n\t\"email\": \"psthif@gmail.com\"\n  },\n  \"keywords\": [ \n\t\"package\",\n\t\"unity\"\n  ],\n  \"dependencies\": {\n  }\n}"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle/package.json.meta",
    "content": "fileFormatVersion: 2\nguid: 31131589ff97ec446826ba4bbc7086d3\nTextScriptImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins/RuntimeTransformHandle.meta",
    "content": "fileFormatVersion: 2\nguid: a76f415e45e0b3548815bd4cd0994975\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Plugins.meta",
    "content": "fileFormatVersion: 2\nguid: f437c94b97613dc49a5933cdea3b03ff\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/RuntimeHandleTest.cs",
    "content": "using System.Collections;\nusing System.Collections.Generic;\nusing RuntimeHandle;\nusing UnityEngine;\n\npublic class RuntimeHandleTest : MonoBehaviour\n{\n    public Transform cube;\n    \n    // Start is called before the first frame update\n    void Start()\n    {\n        RuntimeTransformHandle.Create(cube, HandleType.POSITION);\n    }\n\n    // Update is called once per frame\n    void Update()\n    {\n        \n    }\n}\n"
  },
  {
    "path": "Assets/RuntimeHandleTest.cs.meta",
    "content": "fileFormatVersion: 2\nguid: abd7ea1532fb10f4981049738b87c30c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Scenes/CubeMaterial.mat",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_Name: CubeMaterial\n  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}\n  m_ShaderKeywords: \n  m_LightmapFlags: 4\n  m_EnableInstancingVariants: 0\n  m_DoubleSidedGI: 0\n  m_CustomRenderQueue: -1\n  stringTagMap: {}\n  disabledShaderPasses: []\n  m_SavedProperties:\n    serializedVersion: 3\n    m_TexEnvs:\n    - _BumpMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailAlbedoMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailMask:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailNormalMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _EmissionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MainTex:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MetallicGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _OcclusionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _ParallaxMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    m_Floats:\n    - _BumpScale: 1\n    - _Cutoff: 0.5\n    - _DetailNormalMapScale: 1\n    - _DstBlend: 0\n    - _GlossMapScale: 1\n    - _Glossiness: 0.5\n    - _GlossyReflections: 1\n    - _Metallic: 0\n    - _Mode: 0\n    - _OcclusionStrength: 1\n    - _Parallax: 0.02\n    - _SmoothnessTextureChannel: 0\n    - _SpecularHighlights: 1\n    - _SrcBlend: 1\n    - _UVSec: 0\n    - _ZWrite: 1\n    m_Colors:\n    - _Color: {r: 1, g: 1, b: 1, a: 1}\n    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}\n"
  },
  {
    "path": "Assets/Scenes/CubeMaterial.mat.meta",
    "content": "fileFormatVersion: 2\nguid: 5c949d3705413b645aa43ff6900169e4\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 2100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Scenes/TestScene.unity",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_OcclusionBakeSettings:\n    smallestOccluder: 5\n    smallestHole: 0.25\n    backfaceThreshold: 100\n  m_SceneGUID: 00000000000000000000000000000000\n  m_OcclusionCullingData: {fileID: 0}\n--- !u!104 &2\nRenderSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m_Fog: 0\n  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}\n  m_FogMode: 3\n  m_FogDensity: 0.01\n  m_LinearFogStart: 0\n  m_LinearFogEnd: 300\n  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}\n  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}\n  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}\n  m_AmbientIntensity: 1\n  m_AmbientMode: 0\n  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}\n  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}\n  m_HaloStrength: 0.5\n  m_FlareStrength: 1\n  m_FlareFadeSpeed: 3\n  m_HaloTexture: {fileID: 0}\n  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}\n  m_DefaultReflectionMode: 0\n  m_DefaultReflectionResolution: 128\n  m_ReflectionBounces: 1\n  m_ReflectionIntensity: 1\n  m_CustomReflection: {fileID: 0}\n  m_Sun: {fileID: 0}\n  m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}\n  m_UseRadianceAmbientProbe: 0\n--- !u!157 &3\nLightmapSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m_GIWorkflowMode: 1\n  m_GISettings:\n    serializedVersion: 2\n    m_BounceScale: 1\n    m_IndirectOutputScale: 1\n    m_AlbedoBoost: 1\n    m_EnvironmentLightingMode: 0\n    m_EnableBakedLightmaps: 1\n    m_EnableRealtimeLightmaps: 0\n  m_LightmapEditorSettings:\n    serializedVersion: 12\n    m_Resolution: 2\n    m_BakeResolution: 40\n    m_AtlasSize: 1024\n    m_AO: 0\n    m_AOMaxDistance: 1\n    m_CompAOExponent: 1\n    m_CompAOExponentDirect: 0\n    m_ExtractAmbientOcclusion: 0\n    m_Padding: 2\n    m_LightmapParameters: {fileID: 0}\n    m_LightmapsBakeMode: 1\n    m_TextureCompression: 1\n    m_FinalGather: 0\n    m_FinalGatherFiltering: 1\n    m_FinalGatherRayCount: 256\n    m_ReflectionCompression: 2\n    m_MixedBakeMode: 2\n    m_BakeBackend: 1\n    m_PVRSampling: 1\n    m_PVRDirectSampleCount: 32\n    m_PVRSampleCount: 512\n    m_PVRBounces: 2\n    m_PVREnvironmentSampleCount: 256\n    m_PVREnvironmentReferencePointCount: 2048\n    m_PVRFilteringMode: 1\n    m_PVRDenoiserTypeDirect: 1\n    m_PVRDenoiserTypeIndirect: 1\n    m_PVRDenoiserTypeAO: 1\n    m_PVRFilterTypeDirect: 0\n    m_PVRFilterTypeIndirect: 0\n    m_PVRFilterTypeAO: 0\n    m_PVREnvironmentMIS: 1\n    m_PVRCulling: 1\n    m_PVRFilteringGaussRadiusDirect: 1\n    m_PVRFilteringGaussRadiusIndirect: 5\n    m_PVRFilteringGaussRadiusAO: 2\n    m_PVRFilteringAtrousPositionSigmaDirect: 0.5\n    m_PVRFilteringAtrousPositionSigmaIndirect: 2\n    m_PVRFilteringAtrousPositionSigmaAO: 1\n    m_ExportTrainingData: 0\n    m_TrainingDataDestination: TrainingData\n    m_LightProbeSampleCountMultiplier: 4\n  m_LightingDataAsset: {fileID: 0}\n  m_UseShadowmask: 1\n--- !u!196 &4\nNavMeshSettings:\n  serializedVersion: 2\n  m_ObjectHideFlags: 0\n  m_BuildSettings:\n    serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.4\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    debug:\n      m_Flags: 0\n  m_NavMeshData: {fileID: 0}\n--- !u!1 &30938832\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 30938836}\n  - component: {fileID: 30938835}\n  - component: {fileID: 30938834}\n  - component: {fileID: 30938833}\n  m_Layer: 0\n  m_Name: Cube\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!65 &30938833\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 30938832}\n  m_Material: {fileID: 0}\n  m_IsTrigger: 0\n  m_Enabled: 1\n  serializedVersion: 2\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &30938834\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 30938832}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 5c949d3705413b645aa43ff6900169e4, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n--- !u!33 &30938835\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 30938832}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!4 &30938836\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 30938832}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 879991007}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &879991006\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 879991007}\n  m_Layer: 0\n  m_Name: Root\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &879991007\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 879991006}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 30938836}\n  m_Father: {fileID: 0}\n  m_RootOrder: 2\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &886247217\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 886247220}\n  - component: {fileID: 886247219}\n  - component: {fileID: 886247218}\n  - component: {fileID: 886247221}\n  m_Layer: 0\n  m_Name: Main Camera\n  m_TagString: MainCamera\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!81 &886247218\nAudioListener:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 886247217}\n  m_Enabled: 1\n--- !u!20 &886247219\nCamera:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 886247217}\n  m_Enabled: 1\n  serializedVersion: 2\n  m_ClearFlags: 1\n  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}\n  m_projectionMatrixMode: 1\n  m_GateFitMode: 2\n  m_FOVAxisMode: 0\n  m_SensorSize: {x: 36, y: 24}\n  m_LensShift: {x: 0, y: 0}\n  m_FocalLength: 50\n  m_NormalizedViewPortRect:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  near clip plane: 0.3\n  far clip plane: 1000\n  field of view: 60\n  orthographic: 0\n  orthographic size: 5\n  m_Depth: -1\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingPath: -1\n  m_TargetTexture: {fileID: 0}\n  m_TargetDisplay: 0\n  m_TargetEye: 3\n  m_HDR: 1\n  m_AllowMSAA: 1\n  m_AllowDynamicResolution: 0\n  m_ForceIntoRT: 0\n  m_OcclusionCulling: 1\n  m_StereoConvergence: 10\n  m_StereoSeparation: 0.022\n--- !u!4 &886247220\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 886247217}\n  m_LocalRotation: {x: 0.2090493, y: -0.36225063, z: 0.08372684, w: 0.90446824}\n  m_LocalPosition: {x: 3.84, y: 3.88, z: -4.02}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 26.028, y: -43.653, z: 0}\n--- !u!114 &886247221\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 886247217}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_RenderShadows: 1\n  m_RequiresDepthTextureOption: 2\n  m_RequiresOpaqueTextureOption: 2\n  m_CameraType: 0\n  m_Cameras: []\n  m_RendererIndex: -1\n  m_VolumeLayerMask:\n    serializedVersion: 2\n    m_Bits: 1\n  m_VolumeTrigger: {fileID: 0}\n  m_RenderPostProcessing: 0\n  m_Antialiasing: 0\n  m_AntialiasingQuality: 2\n  m_StopNaN: 0\n  m_Dithering: 0\n  m_ClearDepth: 1\n  m_RequiresDepthTexture: 0\n  m_RequiresColorTexture: 0\n  m_Version: 2\n--- !u!1 &988115216\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 988115218}\n  - component: {fileID: 988115217}\n  m_Layer: 0\n  m_Name: Runtime1\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 0\n--- !u!114 &988115217\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 988115216}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ecfa17e94c9ff9c47b43ede109092ac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  axes: 6\n  space: 1\n  type: 1\n  snappingType: 1\n  positionSnap: {x: 0, y: 0, z: 0}\n  rotationSnap: 0\n  scaleSnap: {x: 0, y: 0, z: 0}\n  autoScale: 0\n  autoScaleFactor: 1\n  handleCamera: {fileID: 0}\n  target: {fileID: 30938836}\n--- !u!4 &988115218\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 988115216}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 8.867656, y: 10.120395, z: -2.576685}\n  m_LocalScale: {x: 1.2, y: 1.2, z: 1.2}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 4\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1433307799\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1433307801}\n  - component: {fileID: 1433307800}\n  m_Layer: 0\n  m_Name: Runtime\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1433307800\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1433307799}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ecfa17e94c9ff9c47b43ede109092ac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  axes: 6\n  space: 1\n  type: 1\n  snappingType: 0\n  positionSnap: {x: 0, y: 0, z: 0}\n  rotationSnap: 0\n  scaleSnap: {x: 0, y: 0, z: 0}\n  autoScale: 0\n  autoScaleFactor: 1\n  handleCamera: {fileID: 0}\n  target: {fileID: 30938836}\n--- !u!4 &1433307801\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1433307799}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 8.867656, y: 10.120395, z: -2.576685}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 3\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1687873331\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1687873333}\n  - component: {fileID: 1687873332}\n  m_Layer: 0\n  m_Name: Directional Light\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!108 &1687873332\nLight:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1687873331}\n  m_Enabled: 1\n  serializedVersion: 10\n  m_Type: 1\n  m_Shape: 0\n  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}\n  m_Intensity: 1\n  m_Range: 10\n  m_SpotAngle: 30\n  m_InnerSpotAngle: 21.80208\n  m_CookieSize: 10\n  m_Shadows:\n    m_Type: 2\n    m_Resolution: -1\n    m_CustomResolution: -1\n    m_Strength: 1\n    m_Bias: 0.05\n    m_NormalBias: 0.4\n    m_NearPlane: 0.2\n    m_CullingMatrixOverride:\n      e00: 1\n      e01: 0\n      e02: 0\n      e03: 0\n      e10: 0\n      e11: 1\n      e12: 0\n      e13: 0\n      e20: 0\n      e21: 0\n      e22: 1\n      e23: 0\n      e30: 0\n      e31: 0\n      e32: 0\n      e33: 1\n    m_UseCullingMatrixOverride: 0\n  m_Cookie: {fileID: 0}\n  m_DrawHalo: 0\n  m_Flare: {fileID: 0}\n  m_RenderMode: 0\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingLayerMask: 1\n  m_Lightmapping: 4\n  m_LightShadowCasterMode: 0\n  m_AreaSize: {x: 1, y: 1}\n  m_BounceIntensity: 1\n  m_ColorTemperature: 6570\n  m_UseColorTemperature: 0\n  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_UseBoundingSphereOverride: 0\n  m_ShadowRadius: 0\n  m_ShadowAngle: 0\n--- !u!4 &1687873333\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1687873331}\n  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}\n  m_LocalPosition: {x: 0, y: 3, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}\n--- !u!1 &2017666784\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 2017666786}\n  - component: {fileID: 2017666785}\n  m_Layer: 0\n  m_Name: Runtime2\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 0\n--- !u!114 &2017666785\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 2017666784}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ecfa17e94c9ff9c47b43ede109092ac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  axes: 6\n  space: 1\n  type: 2\n  snappingType: 1\n  positionSnap: {x: 0, y: 0, z: 0}\n  rotationSnap: 0\n  scaleSnap: {x: 0, y: 0, z: 0}\n  autoScale: 0\n  autoScaleFactor: 1\n  handleCamera: {fileID: 0}\n  target: {fileID: 30938836}\n--- !u!4 &2017666786\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 2017666784}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 8.867656, y: 10.120395, z: -2.576685}\n  m_LocalScale: {x: 1.3, y: 1.3, z: 1.3}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 5\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n"
  },
  {
    "path": "Assets/Scenes/TestScene.unity.meta",
    "content": "fileFormatVersion: 2\nguid: d6325f3f903727644bba5477c9a7d0d6\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Scenes.meta",
    "content": "fileFormatVersion: 2\nguid: b6d330becb0133744859adad5284cce2\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings/ForwardRenderer.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}\n  m_Name: ForwardRenderer\n  m_EditorClassIdentifier: \n  m_RendererFeatures: []\n  postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}\n  shaders:\n    blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}\n    copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}\n    screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd,\n      type: 3}\n    samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}\n    fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}\n  m_OpaqueLayerMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_TransparentLayerMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_DefaultStencilState:\n    overrideStencilState: 0\n    stencilReference: 0\n    stencilCompareFunction: 8\n    passOperation: 0\n    failOperation: 0\n    zFailOperation: 0\n"
  },
  {
    "path": "Assets/Settings/ForwardRenderer.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 4a8e21d5c33334b11b34a596161b9360\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings/SampleSceneProfile.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-7893295128165547882\nMonoBehaviour:\n  m_ObjectHideFlags: 3\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}\n  m_Name: Bloom\n  m_EditorClassIdentifier: \n  active: 1\n  m_AdvancedMode: 0\n  threshold:\n    m_OverrideState: 1\n    m_Value: 1\n    min: 0\n  intensity:\n    m_OverrideState: 1\n    m_Value: 1\n    min: 0\n  scatter:\n    m_OverrideState: 0\n    m_Value: 0.7\n    min: 0\n    max: 1\n  clamp:\n    m_OverrideState: 0\n    m_Value: 65472\n    min: 0\n  tint:\n    m_OverrideState: 0\n    m_Value: {r: 1, g: 1, b: 1, a: 1}\n    hdr: 0\n    showAlpha: 0\n    showEyeDropper: 1\n  highQualityFiltering:\n    m_OverrideState: 0\n    m_Value: 0\n  dirtTexture:\n    m_OverrideState: 0\n    m_Value: {fileID: 0}\n  dirtIntensity:\n    m_OverrideState: 0\n    m_Value: 0\n    min: 0\n--- !u!114 &-7011558710299706105\nMonoBehaviour:\n  m_ObjectHideFlags: 3\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}\n  m_Name: Vignette\n  m_EditorClassIdentifier: \n  active: 1\n  m_AdvancedMode: 0\n  color:\n    m_OverrideState: 0\n    m_Value: {r: 0, g: 0, b: 0, a: 1}\n    hdr: 0\n    showAlpha: 0\n    showEyeDropper: 1\n  center:\n    m_OverrideState: 0\n    m_Value: {x: 0.5, y: 0.5}\n  intensity:\n    m_OverrideState: 1\n    m_Value: 0.25\n    min: 0\n    max: 1\n  smoothness:\n    m_OverrideState: 1\n    m_Value: 0.4\n    min: 0.01\n    max: 1\n  rounded:\n    m_OverrideState: 0\n    m_Value: 0\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}\n  m_Name: SampleSceneProfile\n  m_EditorClassIdentifier: \n  components:\n  - {fileID: 849379129802519247}\n  - {fileID: -7893295128165547882}\n  - {fileID: -7011558710299706105}\n--- !u!114 &849379129802519247\nMonoBehaviour:\n  m_ObjectHideFlags: 3\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}\n  m_Name: Tonemapping\n  m_EditorClassIdentifier: \n  active: 1\n  m_AdvancedMode: 0\n  mode:\n    m_OverrideState: 1\n    m_Value: 2\n"
  },
  {
    "path": "Assets/Settings/SampleSceneProfile.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 10fc4df2da32a41aaa32d77bc913491c\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings/UniversalRP-HighQuality.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}\n  m_Name: UniversalRP-HighQuality\n  m_EditorClassIdentifier: \n  k_AssetVersion: 5\n  k_AssetPreviousVersion: 5\n  m_RendererType: 1\n  m_RendererData: {fileID: 0}\n  m_RendererDataList:\n  - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2}\n  m_DefaultRendererIndex: 0\n  m_RequireDepthTexture: 0\n  m_RequireOpaqueTexture: 0\n  m_OpaqueDownsampling: 1\n  m_SupportsHDR: 1\n  m_MSAA: 2\n  m_RenderScale: 1\n  m_MainLightRenderingMode: 1\n  m_MainLightShadowsSupported: 1\n  m_MainLightShadowmapResolution: 2048\n  m_AdditionalLightsRenderingMode: 1\n  m_AdditionalLightsPerObjectLimit: 4\n  m_AdditionalLightShadowsSupported: 1\n  m_AdditionalLightsShadowmapResolution: 512\n  m_ShadowDistance: 50\n  m_ShadowCascades: 1\n  m_Cascade2Split: 0.25\n  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}\n  m_ShadowDepthBias: 1\n  m_ShadowNormalBias: 1\n  m_SoftShadowsSupported: 1\n  m_UseSRPBatcher: 1\n  m_SupportsDynamicBatching: 0\n  m_MixedLightingSupported: 1\n  m_DebugLevel: 0\n  m_ColorGradingMode: 0\n  m_ColorGradingLutSize: 32\n  m_ShadowType: 1\n  m_LocalShadowsSupported: 0\n  m_LocalShadowsAtlasResolution: 256\n  m_MaxPixelLights: 0\n  m_ShadowAtlasResolution: 256\n  m_ShaderVariantLogLevel: 0\n"
  },
  {
    "path": "Assets/Settings/UniversalRP-HighQuality.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 19ba41d7c0026c3459d37c2fe90c55a0\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings/UniversalRP-LowQuality.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}\n  m_Name: UniversalRP-LowQuality\n  m_EditorClassIdentifier: \n  k_AssetVersion: 5\n  k_AssetPreviousVersion: 5\n  m_RendererType: 1\n  m_RendererData: {fileID: 0}\n  m_RendererDataList:\n  - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2}\n  m_DefaultRendererIndex: 0\n  m_RequireDepthTexture: 0\n  m_RequireOpaqueTexture: 0\n  m_OpaqueDownsampling: 1\n  m_SupportsHDR: 0\n  m_MSAA: 1\n  m_RenderScale: 1\n  m_MainLightRenderingMode: 1\n  m_MainLightShadowsSupported: 0\n  m_MainLightShadowmapResolution: 2048\n  m_AdditionalLightsRenderingMode: 0\n  m_AdditionalLightsPerObjectLimit: 4\n  m_AdditionalLightShadowsSupported: 0\n  m_AdditionalLightsShadowmapResolution: 512\n  m_ShadowDistance: 50\n  m_ShadowCascades: 0\n  m_Cascade2Split: 0.25\n  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}\n  m_ShadowDepthBias: 1\n  m_ShadowNormalBias: 1\n  m_SoftShadowsSupported: 0\n  m_UseSRPBatcher: 1\n  m_SupportsDynamicBatching: 0\n  m_MixedLightingSupported: 1\n  m_DebugLevel: 0\n  m_ColorGradingMode: 0\n  m_ColorGradingLutSize: 16\n  m_ShadowType: 1\n  m_LocalShadowsSupported: 0\n  m_LocalShadowsAtlasResolution: 256\n  m_MaxPixelLights: 0\n  m_ShadowAtlasResolution: 256\n  m_ShaderVariantLogLevel: 0\n"
  },
  {
    "path": "Assets/Settings/UniversalRP-LowQuality.asset.meta",
    "content": "fileFormatVersion: 2\nguid: a31e9f9f9c9d4b9429ed0d1234e22103\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings/UniversalRP-MediumQuality.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}\n  m_Name: UniversalRP-MediumQuality\n  m_EditorClassIdentifier: \n  k_AssetVersion: 5\n  k_AssetPreviousVersion: 5\n  m_RendererType: 1\n  m_RendererData: {fileID: 0}\n  m_RendererDataList:\n  - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2}\n  m_DefaultRendererIndex: 0\n  m_RequireDepthTexture: 0\n  m_RequireOpaqueTexture: 0\n  m_OpaqueDownsampling: 1\n  m_SupportsHDR: 0\n  m_MSAA: 1\n  m_RenderScale: 1\n  m_MainLightRenderingMode: 1\n  m_MainLightShadowsSupported: 1\n  m_MainLightShadowmapResolution: 2048\n  m_AdditionalLightsRenderingMode: 1\n  m_AdditionalLightsPerObjectLimit: 4\n  m_AdditionalLightShadowsSupported: 0\n  m_AdditionalLightsShadowmapResolution: 512\n  m_ShadowDistance: 50\n  m_ShadowCascades: 0\n  m_Cascade2Split: 0.25\n  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}\n  m_ShadowDepthBias: 1\n  m_ShadowNormalBias: 1\n  m_SoftShadowsSupported: 0\n  m_UseSRPBatcher: 1\n  m_SupportsDynamicBatching: 0\n  m_MixedLightingSupported: 1\n  m_DebugLevel: 0\n  m_ColorGradingMode: 0\n  m_ColorGradingLutSize: 32\n  m_ShadowType: 1\n  m_LocalShadowsSupported: 0\n  m_LocalShadowsAtlasResolution: 256\n  m_MaxPixelLights: 0\n  m_ShadowAtlasResolution: 256\n  m_ShaderVariantLogLevel: 0\n"
  },
  {
    "path": "Assets/Settings/UniversalRP-MediumQuality.asset.meta",
    "content": "fileFormatVersion: 2\nguid: d847b876476d3d6468f5dfcd34266f96\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Settings.meta",
    "content": "fileFormatVersion: 2\nguid: 0735c275001a2c84dafdb30deced5d8d\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 Peter @sHTiF Stefcek\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Packages/manifest.json",
    "content": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": \"2.0.1\",\n    \"com.unity.ide.rider\": \"3.0.18\",\n    \"com.unity.ide.visualstudio\": \"2.0.17\",\n    \"com.unity.ide.vscode\": \"1.2.5\",\n    \"com.unity.inputsystem\": \"1.5.1\",\n    \"com.unity.render-pipelines.universal\": \"10.10.1\",\n    \"com.unity.test-framework\": \"1.1.33\",\n    \"com.unity.textmeshpro\": \"3.0.6\",\n    \"com.unity.timeline\": \"1.4.8\",\n    \"com.unity.ugui\": \"1.0.0\",\n    \"com.unity.modules.ai\": \"1.0.0\",\n    \"com.unity.modules.androidjni\": \"1.0.0\",\n    \"com.unity.modules.animation\": \"1.0.0\",\n    \"com.unity.modules.assetbundle\": \"1.0.0\",\n    \"com.unity.modules.audio\": \"1.0.0\",\n    \"com.unity.modules.cloth\": \"1.0.0\",\n    \"com.unity.modules.director\": \"1.0.0\",\n    \"com.unity.modules.imageconversion\": \"1.0.0\",\n    \"com.unity.modules.imgui\": \"1.0.0\",\n    \"com.unity.modules.jsonserialize\": \"1.0.0\",\n    \"com.unity.modules.particlesystem\": \"1.0.0\",\n    \"com.unity.modules.physics\": \"1.0.0\",\n    \"com.unity.modules.physics2d\": \"1.0.0\",\n    \"com.unity.modules.screencapture\": \"1.0.0\",\n    \"com.unity.modules.terrain\": \"1.0.0\",\n    \"com.unity.modules.terrainphysics\": \"1.0.0\",\n    \"com.unity.modules.tilemap\": \"1.0.0\",\n    \"com.unity.modules.ui\": \"1.0.0\",\n    \"com.unity.modules.uielements\": \"1.0.0\",\n    \"com.unity.modules.umbra\": \"1.0.0\",\n    \"com.unity.modules.unityanalytics\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequesttexture\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestwww\": \"1.0.0\",\n    \"com.unity.modules.vehicles\": \"1.0.0\",\n    \"com.unity.modules.video\": \"1.0.0\",\n    \"com.unity.modules.vr\": \"1.0.0\",\n    \"com.unity.modules.wind\": \"1.0.0\",\n    \"com.unity.modules.xr\": \"1.0.0\"\n  }\n}\n"
  },
  {
    "path": "Packages/packages-lock.json",
    "content": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": {\n      \"version\": \"2.0.1\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"1.0.6\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.rider\": {\n      \"version\": \"3.0.18\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.17\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.vscode\": {\n      \"version\": \"1.2.5\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.inputsystem\": {\n      \"version\": \"1.5.1\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.modules.uielements\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.1.0\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.render-pipelines.core\": {\n      \"version\": \"10.10.1\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ugui\": \"1.0.0\",\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.render-pipelines.universal\": {\n      \"version\": \"10.10.1\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.1.0\",\n        \"com.unity.render-pipelines.core\": \"10.10.1\",\n        \"com.unity.shadergraph\": \"10.10.1\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.searcher\": {\n      \"version\": \"4.3.2\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.shadergraph\": {\n      \"version\": \"10.10.1\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.render-pipelines.core\": \"10.10.1\",\n        \"com.unity.searcher\": \"4.3.2\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.1.33\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.textmeshpro\": {\n      \"version\": \"3.0.6\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ugui\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.timeline\": {\n      \"version\": \"1.4.8\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.modules.director\": \"1.0.0\",\n        \"com.unity.modules.animation\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.particlesystem\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ugui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.ai\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.androidjni\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.animation\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.assetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.audio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.cloth\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.director\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.animation\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.imageconversion\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.particlesystem\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics2d\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.screencapture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.subsystems\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.terrain\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.terrainphysics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.terrain\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.tilemap\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics2d\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.uielementsnative\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.uielementsnative\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.umbra\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unityanalytics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequest\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unitywebrequestassetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestaudio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequesttexture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestwww\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vehicles\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.video\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.xr\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.wind\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.xr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.subsystems\": \"1.0.0\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "ProjectSettings/AudioManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!11 &1\nAudioManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Volume: 1\n  Rolloff Scale: 1\n  Doppler Factor: 1\n  Default Speaker Mode: 2\n  m_SampleRate: 0\n  m_DSPBufferSize: 1024\n  m_VirtualVoiceCount: 512\n  m_RealVoiceCount: 32\n  m_SpatializerPlugin: \n  m_AmbisonicDecoderPlugin: \n  m_DisableAudio: 0\n  m_VirtualizeEffects: 1\n  m_RequestedDSPBufferSize: 0\n"
  },
  {
    "path": "ProjectSettings/ClusterInputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!236 &1\nClusterInputManager:\n  m_ObjectHideFlags: 0\n  m_Inputs: []\n"
  },
  {
    "path": "ProjectSettings/DynamicsManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!55 &1\nPhysicsManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 13\n  m_Gravity: {x: 0, y: -9.81, z: 0}\n  m_DefaultMaterial: {fileID: 0}\n  m_BounceThreshold: 2\n  m_SleepThreshold: 0.005\n  m_DefaultContactOffset: 0.01\n  m_DefaultSolverIterations: 6\n  m_DefaultSolverVelocityIterations: 1\n  m_QueriesHitBackfaces: 0\n  m_QueriesHitTriggers: 1\n  m_EnableAdaptiveForce: 0\n  m_ClothInterCollisionDistance: 0.1\n  m_ClothInterCollisionStiffness: 0.2\n  m_ContactsGeneration: 1\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n  m_AutoSimulation: 1\n  m_AutoSyncTransforms: 0\n  m_ReuseCollisionCallbacks: 1\n  m_ClothInterCollisionSettingsToggle: 0\n  m_ClothGravity: {x: 0, y: -9.81, z: 0}\n  m_ContactPairsMode: 0\n  m_BroadphaseType: 0\n  m_WorldBounds:\n    m_Center: {x: 0, y: 0, z: 0}\n    m_Extent: {x: 250, y: 250, z: 250}\n  m_WorldSubdivisions: 8\n  m_FrictionType: 0\n  m_EnableEnhancedDeterminism: 0\n  m_EnableUnifiedHeightmaps: 1\n  m_SolverType: 0\n  m_DefaultMaxAngularSpeed: 7\n"
  },
  {
    "path": "ProjectSettings/EditorBuildSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1045 &1\nEditorBuildSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Scenes:\n  - enabled: 1\n    path: Assets/Scenes/SampleScene.unity\n    guid: d1c3109bdb54ad54c8a2b2838528e640\n  m_configObjects: {}\n"
  },
  {
    "path": "ProjectSettings/EditorSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!159 &1\nEditorSettings:\n  m_AssetPipelineMode: 1\n  m_ObjectHideFlags: 0\n  serializedVersion: 10\n  m_ExternalVersionControlSupport: Visible Meta Files\n  m_SerializationMode: 2\n  m_LineEndingsForNewScripts: 0\n  m_DefaultBehaviorMode: 0\n  m_PrefabRegularEnvironment: {fileID: 0}\n  m_PrefabUIEnvironment: {fileID: 0}\n  m_SpritePackerMode: 0\n  m_SpritePackerPaddingPower: 1\n  m_EtcTextureCompressorBehavior: 1\n  m_EtcTextureFastCompressor: 1\n  m_EtcTextureNormalCompressor: 2\n  m_EtcTextureBestCompressor: 4\n  m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp\n  m_ProjectGenerationRootNamespace: \n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n  m_EnableTextureStreamingInEditMode: 1\n  m_EnableTextureStreamingInPlayMode: 1\n  m_AsyncShaderCompilation: 1\n  m_EnterPlayModeOptionsEnabled: 0\n  m_EnterPlayModeOptions: 3\n  m_ShowLightmapResolutionOverlay: 1\n  m_UseLegacyProbeSampleCount: 0\n  m_SerializeInlineMappingsOnOneLine: 1\n"
  },
  {
    "path": "ProjectSettings/GraphicsSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!30 &1\nGraphicsSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 13\n  m_Deferred:\n    m_Mode: 1\n    m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}\n  m_DeferredReflections:\n    m_Mode: 1\n    m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}\n  m_ScreenSpaceShadows:\n    m_Mode: 1\n    m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}\n  m_LegacyDeferred:\n    m_Mode: 1\n    m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}\n  m_DepthNormals:\n    m_Mode: 1\n    m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}\n  m_MotionVectors:\n    m_Mode: 1\n    m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}\n  m_LightHalo:\n    m_Mode: 1\n    m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}\n  m_LensFlare:\n    m_Mode: 1\n    m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}\n  m_AlwaysIncludedShaders:\n  - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}\n  m_PreloadedShaders: []\n  m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,\n    type: 0}\n  m_CustomRenderPipeline: {fileID: 0}\n  m_TransparencySortMode: 0\n  m_TransparencySortAxis: {x: 0, y: 0, z: 1}\n  m_DefaultRenderingPath: 1\n  m_DefaultMobileRenderingPath: 1\n  m_TierSettings: []\n  m_LightmapStripping: 0\n  m_FogStripping: 0\n  m_InstancingStripping: 0\n  m_LightmapKeepPlain: 1\n  m_LightmapKeepDirCombined: 1\n  m_LightmapKeepDynamicPlain: 1\n  m_LightmapKeepDynamicDirCombined: 1\n  m_LightmapKeepShadowMask: 1\n  m_LightmapKeepSubtractive: 1\n  m_FogKeepLinear: 1\n  m_FogKeepExp: 1\n  m_FogKeepExp2: 1\n  m_AlbedoSwatchInfos: []\n  m_LightsUseLinearIntensity: 1\n  m_LightsUseColorTemperature: 0\n  m_LogWhenShaderIsCompiled: 0\n  m_AllowEnlightenSupportForUpgradedProject: 1\n"
  },
  {
    "path": "ProjectSettings/InputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!13 &1\nInputManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Axes:\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: a\n    altPositiveButton: d\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: s\n    altPositiveButton: w\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left ctrl\n    altNegativeButton: \n    altPositiveButton: mouse 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left alt\n    altNegativeButton: \n    altPositiveButton: mouse 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left shift\n    altNegativeButton: \n    altPositiveButton: mouse 2\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: space\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse X\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse Y\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse ScrollWheel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 2\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 1\n    type: 2\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 0\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 1\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 2\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 3\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: return\n    altNegativeButton: \n    altPositiveButton: joystick button 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: enter\n    altNegativeButton: \n    altPositiveButton: space\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Cancel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: escape\n    altNegativeButton: \n    altPositiveButton: joystick button 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Enable Debug Button 1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left ctrl\n    altNegativeButton: \n    altPositiveButton: joystick button 8\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Enable Debug Button 2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: backspace\n    altNegativeButton: \n    altPositiveButton: joystick button 9\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Reset\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left alt\n    altNegativeButton: \n    altPositiveButton: joystick button 1\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Next\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: page down\n    altNegativeButton: \n    altPositiveButton: joystick button 5\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Previous\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: page up\n    altNegativeButton: \n    altPositiveButton: joystick button 4\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Validate\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: return\n    altNegativeButton: \n    altPositiveButton: joystick button 0\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Persistent\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: right shift\n    altNegativeButton: \n    altPositiveButton: joystick button 2\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Multiplier\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left shift\n    altNegativeButton: \n    altPositiveButton: joystick button 3\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 6\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 5\n    joyNum: 0\n"
  },
  {
    "path": "ProjectSettings/NavMeshAreas.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!126 &1\nNavMeshProjectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  areas:\n  - name: Walkable\n    cost: 1\n  - name: Not Walkable\n    cost: 1\n  - name: Jump\n    cost: 2\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  m_LastAgentTypeID: -887442657\n  m_Settings:\n  - serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.75\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    debug:\n      m_Flags: 0\n  m_SettingNames:\n  - Humanoid\n"
  },
  {
    "path": "ProjectSettings/PackageManagerSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_EnablePreviewPackages: 0\n  m_EnablePackageDependencies: 0\n  m_AdvancedSettingsExpanded: 1\n  m_ScopedRegistriesSettingsExpanded: 1\n  oneTimeWarningShown: 0\n  m_Registries:\n  - m_Id: main\n    m_Name: \n    m_Url: https://packages.unity.com\n    m_Scopes: []\n    m_IsDefault: 1\n    m_Capabilities: 7\n    m_ConfigSource: 0\n  m_UserSelectedRegistryName: \n  m_UserAddingNewScopedRegistry: 0\n  m_RegistryInfoDraft:\n    m_ErrorMessage: \n    m_Original:\n      m_Id: \n      m_Name: \n      m_Url: \n      m_Scopes: []\n      m_IsDefault: 0\n      m_Capabilities: 0\n      m_ConfigSource: 0\n    m_Modified: 0\n    m_Name: \n    m_Url: \n    m_Scopes:\n    - \n    m_SelectedScopeIndex: 0\n"
  },
  {
    "path": "ProjectSettings/Physics2DSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!19 &1\nPhysics2DSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 4\n  m_Gravity: {x: 0, y: -9.81}\n  m_DefaultMaterial: {fileID: 0}\n  m_VelocityIterations: 8\n  m_PositionIterations: 3\n  m_VelocityThreshold: 1\n  m_MaxLinearCorrection: 0.2\n  m_MaxAngularCorrection: 8\n  m_MaxTranslationSpeed: 100\n  m_MaxRotationSpeed: 360\n  m_BaumgarteScale: 0.2\n  m_BaumgarteTimeOfImpactScale: 0.75\n  m_TimeToSleep: 0.5\n  m_LinearSleepTolerance: 0.01\n  m_AngularSleepTolerance: 2\n  m_DefaultContactOffset: 0.01\n  m_JobOptions:\n    serializedVersion: 2\n    useMultithreading: 0\n    useConsistencySorting: 0\n    m_InterpolationPosesPerJob: 100\n    m_NewContactsPerJob: 30\n    m_CollideContactsPerJob: 100\n    m_ClearFlagsPerJob: 200\n    m_ClearBodyForcesPerJob: 200\n    m_SyncDiscreteFixturesPerJob: 50\n    m_SyncContinuousFixturesPerJob: 50\n    m_FindNearestContactsPerJob: 100\n    m_UpdateTriggerContactsPerJob: 100\n    m_IslandSolverCostThreshold: 100\n    m_IslandSolverBodyCostScale: 1\n    m_IslandSolverContactCostScale: 10\n    m_IslandSolverJointCostScale: 10\n    m_IslandSolverBodiesPerJob: 50\n    m_IslandSolverContactsPerJob: 50\n  m_AutoSimulation: 1\n  m_QueriesHitTriggers: 1\n  m_QueriesStartInColliders: 1\n  m_CallbacksOnDisable: 1\n  m_ReuseCollisionCallbacks: 1\n  m_AutoSyncTransforms: 0\n  m_AlwaysShowColliders: 0\n  m_ShowColliderSleep: 1\n  m_ShowColliderContacts: 0\n  m_ShowColliderAABB: 0\n  m_ContactArrowScale: 0.2\n  m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}\n  m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}\n  m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}\n  m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "ProjectSettings/PresetManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1386491679 &1\nPresetManager:\n  m_ObjectHideFlags: 0\n  m_DefaultList:\n  - type:\n      m_NativeTypeID: 108\n      m_ManagedTypePPtr: {fileID: 0}\n      m_ManagedTypeFallback: \n    defaultPresets:\n    - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43,\n        type: 2}\n  - type:\n      m_NativeTypeID: 1020\n      m_ManagedTypePPtr: {fileID: 0}\n      m_ManagedTypeFallback: \n    defaultPresets:\n    - m_Preset: {fileID: 2655988077585873504, guid: e7689051185d12f4298e1ebb2693a29f,\n        type: 2}\n  - type:\n      m_NativeTypeID: 1006\n      m_ManagedTypePPtr: {fileID: 0}\n      m_ManagedTypeFallback: \n    defaultPresets:\n    - m_Preset: {fileID: 2655988077585873504, guid: e8537455c6c08bd4e8bf0be3707da685,\n        type: 2}\n"
  },
  {
    "path": "ProjectSettings/ProjectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!129 &1\nPlayerSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 21\n  productGUID: c7eaf07638ff1a5439b7ea2a279eda94\n  AndroidProfiler: 0\n  AndroidFilterTouchesWhenObscured: 0\n  AndroidEnableSustainedPerformanceMode: 0\n  defaultScreenOrientation: 4\n  targetDevice: 2\n  useOnDemandResources: 0\n  accelerometerFrequency: 60\n  companyName: DefaultCompany\n  productName: RuntimeTransformHandle\n  defaultCursor: {fileID: 0}\n  cursorHotspot: {x: 0, y: 0}\n  m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}\n  m_ShowUnitySplashScreen: 1\n  m_ShowUnitySplashLogo: 1\n  m_SplashScreenOverlayOpacity: 1\n  m_SplashScreenAnimation: 1\n  m_SplashScreenLogoStyle: 1\n  m_SplashScreenDrawMode: 0\n  m_SplashScreenBackgroundAnimationZoom: 1\n  m_SplashScreenLogoAnimationZoom: 1\n  m_SplashScreenBackgroundLandscapeAspect: 1\n  m_SplashScreenBackgroundPortraitAspect: 1\n  m_SplashScreenBackgroundLandscapeUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenBackgroundPortraitUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenLogos: []\n  m_VirtualRealitySplashScreen: {fileID: 0}\n  m_HolographicTrackingLossScreen: {fileID: 0}\n  defaultScreenWidth: 1920\n  defaultScreenHeight: 1080\n  defaultScreenWidthWeb: 960\n  defaultScreenHeightWeb: 600\n  m_StereoRenderingPath: 0\n  m_ActiveColorSpace: 1\n  m_MTRendering: 1\n  mipStripping: 0\n  numberOfMipsStripped: 0\n  m_StackTraceTypes: 010000000100000001000000010000000100000001000000\n  iosShowActivityIndicatorOnLoading: -1\n  androidShowActivityIndicatorOnLoading: -1\n  iosUseCustomAppBackgroundBehavior: 0\n  iosAllowHTTPDownload: 1\n  allowedAutorotateToPortrait: 1\n  allowedAutorotateToPortraitUpsideDown: 1\n  allowedAutorotateToLandscapeRight: 1\n  allowedAutorotateToLandscapeLeft: 1\n  useOSAutorotation: 1\n  use32BitDisplayBuffer: 1\n  preserveFramebufferAlpha: 0\n  disableDepthAndStencilBuffers: 0\n  androidStartInFullscreen: 1\n  androidRenderOutsideSafeArea: 0\n  androidUseSwappy: 1\n  androidBlitType: 1\n  defaultIsNativeResolution: 1\n  macRetinaSupport: 1\n  runInBackground: 1\n  captureSingleScreen: 0\n  muteOtherAudioSources: 0\n  Prepare IOS For Recording: 0\n  Force IOS Speakers When Recording: 0\n  deferSystemGesturesMode: 0\n  hideHomeButton: 0\n  submitAnalytics: 1\n  usePlayerLog: 1\n  bakeCollisionMeshes: 0\n  forceSingleInstance: 0\n  useFlipModelSwapchain: 1\n  resizableWindow: 0\n  useMacAppStoreValidation: 0\n  macAppStoreCategory: public.app-category.games\n  gpuSkinning: 1\n  xboxPIXTextureCapture: 0\n  xboxEnableAvatar: 0\n  xboxEnableKinect: 0\n  xboxEnableKinectAutoTracking: 0\n  xboxEnableFitness: 0\n  visibleInBackground: 1\n  allowFullscreenSwitch: 1\n  fullscreenMode: 1\n  xboxSpeechDB: 0\n  xboxEnableHeadOrientation: 0\n  xboxEnableGuest: 0\n  xboxEnablePIXSampling: 0\n  metalFramebufferOnly: 0\n  xboxOneResolution: 0\n  xboxOneSResolution: 0\n  xboxOneXResolution: 3\n  xboxOneMonoLoggingLevel: 0\n  xboxOneLoggingLevel: 1\n  xboxOneDisableEsram: 0\n  xboxOneEnableTypeOptimization: 0\n  xboxOnePresentImmediateThreshold: 0\n  switchQueueCommandMemory: 0\n  switchQueueControlMemory: 0\n  switchQueueComputeMemory: 262144\n  switchNVNShaderPoolsGranularity: 33554432\n  switchNVNDefaultPoolsGranularity: 16777216\n  switchNVNOtherPoolsGranularity: 16777216\n  switchNVNMaxPublicTextureIDCount: 0\n  switchNVNMaxPublicSamplerIDCount: 0\n  stadiaPresentMode: 0\n  stadiaTargetFramerate: 0\n  vulkanNumSwapchainBuffers: 3\n  vulkanEnableSetSRGBWrite: 0\n  vulkanEnablePreTransform: 0\n  vulkanEnableLateAcquireNextImage: 0\n  m_SupportedAspectRatios:\n    4:3: 1\n    5:4: 1\n    16:10: 1\n    16:9: 1\n    Others: 1\n  bundleVersion: 0.1\n  preloadedAssets: []\n  metroInputSource: 0\n  wsaTransparentSwapchain: 0\n  m_HolographicPauseOnTrackingLoss: 1\n  xboxOneDisableKinectGpuReservation: 1\n  xboxOneEnable7thCore: 1\n  vrSettings:\n    enable360StereoCapture: 0\n  isWsaHolographicRemotingEnabled: 0\n  enableFrameTimingStats: 0\n  useHDRDisplay: 0\n  D3DHDRBitDepth: 0\n  m_ColorGamuts: 0000000003000000\n  targetPixelDensity: 30\n  resolutionScalingMode: 0\n  androidSupportedAspectRatio: 1\n  androidMaxAspectRatio: 2.1\n  applicationIdentifier: {}\n  buildNumber:\n    Standalone: 0\n    iPhone: 0\n    tvOS: 0\n  overrideDefaultApplicationIdentifier: 0\n  AndroidBundleVersionCode: 1\n  AndroidMinSdkVersion: 19\n  AndroidTargetSdkVersion: 0\n  AndroidPreferredInstallLocation: 1\n  aotOptions: \n  stripEngineCode: 1\n  iPhoneStrippingLevel: 0\n  iPhoneScriptCallOptimization: 0\n  ForceInternetPermission: 0\n  ForceSDCardPermission: 0\n  CreateWallpaper: 0\n  APKExpansionFiles: 0\n  keepLoadedShadersAlive: 0\n  StripUnusedMeshComponents: 0\n  VertexChannelCompressionMask: 4054\n  iPhoneSdkVersion: 988\n  iOSTargetOSVersionString: 11.0\n  tvOSSdkVersion: 0\n  tvOSRequireExtendedGameController: 0\n  tvOSTargetOSVersionString: 11.0\n  uIPrerenderedIcon: 0\n  uIRequiresPersistentWiFi: 0\n  uIRequiresFullScreen: 1\n  uIStatusBarHidden: 1\n  uIExitOnSuspend: 0\n  uIStatusBarStyle: 0\n  appleTVSplashScreen: {fileID: 0}\n  appleTVSplashScreen2x: {fileID: 0}\n  tvOSSmallIconLayers: []\n  tvOSSmallIconLayers2x: []\n  tvOSLargeIconLayers: []\n  tvOSLargeIconLayers2x: []\n  tvOSTopShelfImageLayers: []\n  tvOSTopShelfImageLayers2x: []\n  tvOSTopShelfImageWideLayers: []\n  tvOSTopShelfImageWideLayers2x: []\n  iOSLaunchScreenType: 0\n  iOSLaunchScreenPortrait: {fileID: 0}\n  iOSLaunchScreenLandscape: {fileID: 0}\n  iOSLaunchScreenBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreenFillPct: 100\n  iOSLaunchScreenSize: 100\n  iOSLaunchScreenCustomXibPath: \n  iOSLaunchScreeniPadType: 0\n  iOSLaunchScreeniPadImage: {fileID: 0}\n  iOSLaunchScreeniPadBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreeniPadFillPct: 100\n  iOSLaunchScreeniPadSize: 100\n  iOSLaunchScreeniPadCustomXibPath: \n  iOSLaunchScreenCustomStoryboardPath: \n  iOSLaunchScreeniPadCustomStoryboardPath: \n  iOSDeviceRequirements: []\n  iOSURLSchemes: []\n  iOSBackgroundModes: 0\n  iOSMetalForceHardShadows: 0\n  metalEditorSupport: 1\n  metalAPIValidation: 1\n  iOSRenderExtraFrameOnPause: 0\n  appleDeveloperTeamID: \n  iOSManualSigningProvisioningProfileID: \n  tvOSManualSigningProvisioningProfileID: \n  iOSManualSigningProvisioningProfileType: 0\n  tvOSManualSigningProvisioningProfileType: 0\n  appleEnableAutomaticSigning: 0\n  iOSRequireARKit: 0\n  iOSAutomaticallyDetectAndAddCapabilities: 1\n  appleEnableProMotion: 0\n  clonedFromGUID: 9870af204204ab84596f8a656f2f2ce6\n  templatePackageId: com.unity.template.universal@10.0.0\n  templateDefaultScene: Assets/Scenes/SampleScene.unity\n  useCustomMainManifest: 0\n  useCustomLauncherManifest: 0\n  useCustomMainGradleTemplate: 0\n  useCustomLauncherGradleManifest: 0\n  useCustomBaseGradleTemplate: 0\n  useCustomGradlePropertiesTemplate: 0\n  useCustomProguardFile: 0\n  AndroidTargetArchitectures: 1\n  AndroidSplashScreenScale: 0\n  androidSplashScreen: {fileID: 0}\n  AndroidKeystoreName: \n  AndroidKeyaliasName: \n  AndroidBuildApkPerCpuArchitecture: 0\n  AndroidTVCompatibility: 0\n  AndroidIsGame: 1\n  AndroidEnableTango: 0\n  androidEnableBanner: 1\n  androidUseLowAccuracyLocation: 0\n  androidUseCustomKeystore: 0\n  m_AndroidBanners:\n  - width: 320\n    height: 180\n    banner: {fileID: 0}\n  androidGamepadSupportLevel: 0\n  AndroidMinifyWithR8: 0\n  AndroidMinifyRelease: 0\n  AndroidMinifyDebug: 0\n  AndroidValidateAppBundleSize: 1\n  AndroidAppBundleSizeToValidate: 100\n  m_BuildTargetIcons: []\n  m_BuildTargetPlatformIcons: []\n  m_BuildTargetBatching:\n  - m_BuildTarget: Standalone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: tvOS\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: iPhone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: Android\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: WebGL\n    m_StaticBatching: 0\n    m_DynamicBatching: 0\n  m_BuildTargetGraphicsJobs:\n  - m_BuildTarget: MacStandaloneSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: Switch\n    m_GraphicsJobs: 1\n  - m_BuildTarget: MetroSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: AppleTVSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: BJMSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LinuxStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobs: 1\n  - m_BuildTarget: iOSSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WindowsStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LuminSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: AndroidPlayer\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WebGLSupport\n    m_GraphicsJobs: 0\n  m_BuildTargetGraphicsJobMode:\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobMode: 0\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobMode: 0\n  m_BuildTargetGraphicsAPIs:\n  - m_BuildTarget: iOSSupport\n    m_APIs: 10000000\n    m_Automatic: 1\n  - m_BuildTarget: AppleTVSupport\n    m_APIs: 10000000\n    m_Automatic: 1\n  - m_BuildTarget: AndroidPlayer\n    m_APIs: 150000000b000000\n    m_Automatic: 0\n  - m_BuildTarget: WebGLSupport\n    m_APIs: 0b000000\n    m_Automatic: 0\n  m_BuildTargetVRSettings: []\n  openGLRequireES31: 0\n  openGLRequireES31AEP: 0\n  openGLRequireES32: 0\n  m_TemplateCustomTags: {}\n  mobileMTRendering:\n    Android: 1\n    iPhone: 1\n    tvOS: 1\n  m_BuildTargetGroupLightmapEncodingQuality:\n  - m_BuildTarget: Standalone\n    m_EncodingQuality: 1\n  m_BuildTargetGroupLightmapSettings: []\n  m_BuildTargetNormalMapEncoding: []\n  playModeTestRunnerEnabled: 0\n  runPlayModeTestAsEditModeTest: 0\n  actionOnDotNetUnhandledException: 1\n  enableInternalProfiler: 0\n  logObjCUncaughtExceptions: 1\n  enableCrashReportAPI: 0\n  cameraUsageDescription: \n  locationUsageDescription: \n  microphoneUsageDescription: \n  switchNMETAOverride: \n  switchNetLibKey: \n  switchSocketMemoryPoolSize: 6144\n  switchSocketAllocatorPoolSize: 128\n  switchSocketConcurrencyLimit: 14\n  switchScreenResolutionBehavior: 2\n  switchUseCPUProfiler: 0\n  switchUseGOLDLinker: 0\n  switchApplicationID: 0x01004b9000490000\n  switchNSODependencies: \n  switchTitleNames_0: \n  switchTitleNames_1: \n  switchTitleNames_2: \n  switchTitleNames_3: \n  switchTitleNames_4: \n  switchTitleNames_5: \n  switchTitleNames_6: \n  switchTitleNames_7: \n  switchTitleNames_8: \n  switchTitleNames_9: \n  switchTitleNames_10: \n  switchTitleNames_11: \n  switchTitleNames_12: \n  switchTitleNames_13: \n  switchTitleNames_14: \n  switchPublisherNames_0: \n  switchPublisherNames_1: \n  switchPublisherNames_2: \n  switchPublisherNames_3: \n  switchPublisherNames_4: \n  switchPublisherNames_5: \n  switchPublisherNames_6: \n  switchPublisherNames_7: \n  switchPublisherNames_8: \n  switchPublisherNames_9: \n  switchPublisherNames_10: \n  switchPublisherNames_11: \n  switchPublisherNames_12: \n  switchPublisherNames_13: \n  switchPublisherNames_14: \n  switchIcons_0: {fileID: 0}\n  switchIcons_1: {fileID: 0}\n  switchIcons_2: {fileID: 0}\n  switchIcons_3: {fileID: 0}\n  switchIcons_4: {fileID: 0}\n  switchIcons_5: {fileID: 0}\n  switchIcons_6: {fileID: 0}\n  switchIcons_7: {fileID: 0}\n  switchIcons_8: {fileID: 0}\n  switchIcons_9: {fileID: 0}\n  switchIcons_10: {fileID: 0}\n  switchIcons_11: {fileID: 0}\n  switchIcons_12: {fileID: 0}\n  switchIcons_13: {fileID: 0}\n  switchIcons_14: {fileID: 0}\n  switchSmallIcons_0: {fileID: 0}\n  switchSmallIcons_1: {fileID: 0}\n  switchSmallIcons_2: {fileID: 0}\n  switchSmallIcons_3: {fileID: 0}\n  switchSmallIcons_4: {fileID: 0}\n  switchSmallIcons_5: {fileID: 0}\n  switchSmallIcons_6: {fileID: 0}\n  switchSmallIcons_7: {fileID: 0}\n  switchSmallIcons_8: {fileID: 0}\n  switchSmallIcons_9: {fileID: 0}\n  switchSmallIcons_10: {fileID: 0}\n  switchSmallIcons_11: {fileID: 0}\n  switchSmallIcons_12: {fileID: 0}\n  switchSmallIcons_13: {fileID: 0}\n  switchSmallIcons_14: {fileID: 0}\n  switchManualHTML: \n  switchAccessibleURLs: \n  switchLegalInformation: \n  switchMainThreadStackSize: 1048576\n  switchPresenceGroupId: \n  switchLogoHandling: 0\n  switchReleaseVersion: 0\n  switchDisplayVersion: 1.0.0\n  switchStartupUserAccount: 0\n  switchTouchScreenUsage: 0\n  switchSupportedLanguagesMask: 0\n  switchLogoType: 0\n  switchApplicationErrorCodeCategory: \n  switchUserAccountSaveDataSize: 0\n  switchUserAccountSaveDataJournalSize: 0\n  switchApplicationAttribute: 0\n  switchCardSpecSize: -1\n  switchCardSpecClock: -1\n  switchRatingsMask: 0\n  switchRatingsInt_0: 0\n  switchRatingsInt_1: 0\n  switchRatingsInt_2: 0\n  switchRatingsInt_3: 0\n  switchRatingsInt_4: 0\n  switchRatingsInt_5: 0\n  switchRatingsInt_6: 0\n  switchRatingsInt_7: 0\n  switchRatingsInt_8: 0\n  switchRatingsInt_9: 0\n  switchRatingsInt_10: 0\n  switchRatingsInt_11: 0\n  switchRatingsInt_12: 0\n  switchLocalCommunicationIds_0: \n  switchLocalCommunicationIds_1: \n  switchLocalCommunicationIds_2: \n  switchLocalCommunicationIds_3: \n  switchLocalCommunicationIds_4: \n  switchLocalCommunicationIds_5: \n  switchLocalCommunicationIds_6: \n  switchLocalCommunicationIds_7: \n  switchParentalControl: 0\n  switchAllowsScreenshot: 1\n  switchAllowsVideoCapturing: 1\n  switchAllowsRuntimeAddOnContentInstall: 0\n  switchDataLossConfirmation: 0\n  switchUserAccountLockEnabled: 0\n  switchSystemResourceMemory: 16777216\n  switchSupportedNpadStyles: 22\n  switchNativeFsCacheSize: 32\n  switchIsHoldTypeHorizontal: 0\n  switchSupportedNpadCount: 8\n  switchSocketConfigEnabled: 0\n  switchTcpInitialSendBufferSize: 32\n  switchTcpInitialReceiveBufferSize: 64\n  switchTcpAutoSendBufferSizeMax: 256\n  switchTcpAutoReceiveBufferSizeMax: 256\n  switchUdpSendBufferSize: 9\n  switchUdpReceiveBufferSize: 42\n  switchSocketBufferEfficiency: 4\n  switchSocketInitializeEnabled: 1\n  switchNetworkInterfaceManagerInitializeEnabled: 1\n  switchPlayerConnectionEnabled: 1\n  switchUseNewStyleFilepaths: 0\n  ps4NPAgeRating: 12\n  ps4NPTitleSecret: \n  ps4NPTrophyPackPath: \n  ps4ParentalLevel: 11\n  ps4ContentID: ED1633-NPXX51362_00-0000000000000000\n  ps4Category: 0\n  ps4MasterVersion: 01.00\n  ps4AppVersion: 01.00\n  ps4AppType: 0\n  ps4ParamSfxPath: \n  ps4VideoOutPixelFormat: 0\n  ps4VideoOutInitialWidth: 1920\n  ps4VideoOutBaseModeInitialWidth: 1920\n  ps4VideoOutReprojectionRate: 60\n  ps4PronunciationXMLPath: \n  ps4PronunciationSIGPath: \n  ps4BackgroundImagePath: \n  ps4StartupImagePath: \n  ps4StartupImagesFolder: \n  ps4IconImagesFolder: \n  ps4SaveDataImagePath: \n  ps4SdkOverride: \n  ps4BGMPath: \n  ps4ShareFilePath: \n  ps4ShareOverlayImagePath: \n  ps4PrivacyGuardImagePath: \n  ps4ExtraSceSysFile: \n  ps4NPtitleDatPath: \n  ps4RemotePlayKeyAssignment: -1\n  ps4RemotePlayKeyMappingDir: \n  ps4PlayTogetherPlayerCount: 0\n  ps4EnterButtonAssignment: 1\n  ps4ApplicationParam1: 0\n  ps4ApplicationParam2: 0\n  ps4ApplicationParam3: 0\n  ps4ApplicationParam4: 0\n  ps4DownloadDataSize: 0\n  ps4GarlicHeapSize: 2048\n  ps4ProGarlicHeapSize: 2560\n  playerPrefsMaxSize: 32768\n  ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ\n  ps4pnSessions: 1\n  ps4pnPresence: 1\n  ps4pnFriends: 1\n  ps4pnGameCustomData: 1\n  playerPrefsSupport: 0\n  enableApplicationExit: 0\n  resetTempFolder: 1\n  restrictedAudioUsageRights: 0\n  ps4UseResolutionFallback: 0\n  ps4ReprojectionSupport: 0\n  ps4UseAudio3dBackend: 0\n  ps4UseLowGarlicFragmentationMode: 1\n  ps4SocialScreenEnabled: 0\n  ps4ScriptOptimizationLevel: 0\n  ps4Audio3dVirtualSpeakerCount: 14\n  ps4attribCpuUsage: 0\n  ps4PatchPkgPath: \n  ps4PatchLatestPkgPath: \n  ps4PatchChangeinfoPath: \n  ps4PatchDayOne: 0\n  ps4attribUserManagement: 0\n  ps4attribMoveSupport: 0\n  ps4attrib3DSupport: 0\n  ps4attribShareSupport: 0\n  ps4attribExclusiveVR: 0\n  ps4disableAutoHideSplash: 0\n  ps4videoRecordingFeaturesUsed: 0\n  ps4contentSearchFeaturesUsed: 0\n  ps4CompatibilityPS5: 0\n  ps4GPU800MHz: 1\n  ps4attribEyeToEyeDistanceSettingVR: 0\n  ps4IncludedModules:\n  - libc.prx\n  - libSceAudioLatencyEstimation.prx\n  - libSceFace.prx\n  - libSceFaceTracker.prx\n  - libSceFios2.prx\n  - libSceHand.prx\n  - libSceHandTracker.prx\n  - libSceHeadTracker.prx\n  - libSceJobManager.prx\n  - libSceNpToolkit2.prx\n  - libSceS3DConversion.prx\n  ps4attribVROutputEnabled: 0\n  monoEnv: \n  splashScreenBackgroundSourceLandscape: {fileID: 0}\n  splashScreenBackgroundSourcePortrait: {fileID: 0}\n  blurSplashScreenBackground: 1\n  spritePackerPolicy: \n  webGLMemorySize: 16\n  webGLExceptionSupport: 1\n  webGLNameFilesAsHashes: 0\n  webGLDataCaching: 1\n  webGLDebugSymbols: 0\n  webGLEmscriptenArgs: \n  webGLModulesDirectory: \n  webGLTemplate: APPLICATION:Default\n  webGLAnalyzeBuildSize: 0\n  webGLUseEmbeddedResources: 0\n  webGLCompressionFormat: 1\n  webGLWasmArithmeticExceptions: 0\n  webGLLinkerTarget: 1\n  webGLThreadsSupport: 0\n  webGLDecompressionFallback: 0\n  scriptingDefineSymbols: {}\n  platformArchitecture: {}\n  scriptingBackend:\n    Standalone: 0\n  il2cppCompilerConfiguration: {}\n  managedStrippingLevel: {}\n  incrementalIl2cppBuild: {}\n  allowUnsafeCode: 0\n  useDeterministicCompilation: 1\n  useReferenceAssemblies: 1\n  enableRoslynAnalyzers: 1\n  additionalIl2CppArgs: \n  scriptingRuntimeVersion: 1\n  gcIncremental: 1\n  gcWBarrierValidation: 0\n  apiCompatibilityLevelPerPlatform:\n    Standalone: 3\n  m_RenderingPath: 1\n  m_MobileRenderingPath: 1\n  metroPackageName: Template_Lightweight\n  metroPackageVersion: \n  metroCertificatePath: \n  metroCertificatePassword: \n  metroCertificateSubject: \n  metroCertificateIssuer: \n  metroCertificateNotAfter: 0000000000000000\n  metroApplicationDescription: Template_Lightweight\n  wsaImages: {}\n  metroTileShortName: \n  metroTileShowName: 0\n  metroMediumTileShowName: 0\n  metroLargeTileShowName: 0\n  metroWideTileShowName: 0\n  metroSupportStreamingInstall: 0\n  metroLastRequiredScene: 0\n  metroDefaultTileSize: 1\n  metroTileForegroundText: 2\n  metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}\n  metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}\n  metroSplashScreenUseBackgroundColor: 0\n  platformCapabilities: {}\n  metroTargetDeviceFamilies: {}\n  metroFTAName: \n  metroFTAFileTypes: []\n  metroProtocolName: \n  XboxOneProductId: \n  XboxOneUpdateKey: \n  XboxOneSandboxId: \n  XboxOneContentId: \n  XboxOneTitleId: \n  XboxOneSCId: \n  XboxOneGameOsOverridePath: \n  XboxOnePackagingOverridePath: \n  XboxOneAppManifestOverridePath: \n  XboxOneVersion: 1.0.0.0\n  XboxOnePackageEncryption: 0\n  XboxOnePackageUpdateGranularity: 2\n  XboxOneDescription: \n  XboxOneLanguage:\n  - enus\n  XboxOneCapability: []\n  XboxOneGameRating: {}\n  XboxOneIsContentPackage: 0\n  XboxOneEnableGPUVariability: 1\n  XboxOneSockets: {}\n  XboxOneSplashScreen: {fileID: 0}\n  XboxOneAllowedProductIds: []\n  XboxOnePersistentLocalStorageSize: 0\n  XboxOneXTitleMemory: 8\n  XboxOneOverrideIdentityName: \n  XboxOneOverrideIdentityPublisher: \n  vrEditorSettings: {}\n  cloudServicesEnabled:\n    UNet: 1\n  luminIcon:\n    m_Name: \n    m_ModelFolderPath: \n    m_PortalFolderPath: \n  luminCert:\n    m_CertPath: \n    m_SignPackage: 1\n  luminIsChannelApp: 0\n  luminVersion:\n    m_VersionCode: 1\n    m_VersionName: \n  apiCompatibilityLevel: 6\n  activeInputHandler: 0\n  cloudProjectId: \n  framebufferDepthMemorylessMode: 0\n  qualitySettingsNames: []\n  projectName: \n  organizationId: \n  cloudEnabled: 0\n  legacyClampBlendShapeWeights: 0\n  virtualTexturingSupportEnabled: 0\n"
  },
  {
    "path": "ProjectSettings/ProjectVersion.txt",
    "content": "m_EditorVersion: 2020.3.47f1\nm_EditorVersionWithRevision: 2020.3.47f1 (5ef4f5b5e2d4)\n"
  },
  {
    "path": "ProjectSettings/QualitySettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!47 &1\nQualitySettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 5\n  m_CurrentQuality: 2\n  m_QualitySettings:\n  - serializedVersion: 2\n    name: Low\n    pixelLightCount: 0\n    shadows: 0\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    skinWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 0\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    vSyncCount: 0\n    lodBias: 0.4\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 16\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 11400000, guid: a31e9f9f9c9d4b9429ed0d1234e22103,\n      type: 2}\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: Medium\n    pixelLightCount: 1\n    shadows: 1\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    skinWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    vSyncCount: 1\n    lodBias: 0.7\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 64\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 11400000, guid: d847b876476d3d6468f5dfcd34266f96,\n      type: 2}\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: High\n    pixelLightCount: 2\n    shadows: 2\n    shadowResolution: 1\n    shadowProjection: 1\n    shadowCascades: 2\n    shadowDistance: 40\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    skinWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    vSyncCount: 1\n    lodBias: 1\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 256\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0,\n      type: 2}\n    excludedTargetPlatforms: []\n  m_PerPlatformDefaultQuality:\n    Android: 1\n    Lumin: 2\n    Nintendo Switch: 2\n    PS4: 2\n    Stadia: 2\n    Standalone: 2\n    WebGL: 1\n    Windows Store Apps: 2\n    XboxOne: 2\n    iPhone: 1\n    tvOS: 1\n"
  },
  {
    "path": "ProjectSettings/TagManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!78 &1\nTagManager:\n  serializedVersion: 2\n  tags: []\n  layers:\n  - Default\n  - TransparentFX\n  - Ignore Raycast\n  - \n  - Water\n  - UI\n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  m_SortingLayers:\n  - name: Default\n    uniqueID: 0\n    locked: 0\n"
  },
  {
    "path": "ProjectSettings/TimeManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!5 &1\nTimeManager:\n  m_ObjectHideFlags: 0\n  Fixed Timestep: 0.02\n  Maximum Allowed Timestep: 0.1\n  m_TimeScale: 1\n  Maximum Particle Timestep: 0.03\n"
  },
  {
    "path": "ProjectSettings/URPProjectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_LastMaterialVersion: 4\n"
  },
  {
    "path": "ProjectSettings/UnityConnectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!310 &1\nUnityConnectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 1\n  m_Enabled: 0\n  m_TestMode: 0\n  m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events\n  m_EventUrl: https://cdp.cloud.unity3d.com/v1/events\n  m_ConfigUrl: https://config.uca.cloud.unity3d.com\n  m_TestInitMode: 0\n  CrashReportingSettings:\n    m_EventUrl: https://perf-events.cloud.unity3d.com\n    m_Enabled: 0\n    m_LogBufferSize: 10\n    m_CaptureEditorExceptions: 1\n  UnityPurchasingSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n  UnityAnalyticsSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n    m_InitializeOnStartup: 1\n  UnityAdsSettings:\n    m_Enabled: 0\n    m_InitializeOnStartup: 1\n    m_TestMode: 0\n    m_IosGameId: \n    m_AndroidGameId: \n    m_GameIds: {}\n    m_GameId: \n  PerformanceReportingSettings:\n    m_Enabled: 0\n"
  },
  {
    "path": "ProjectSettings/VFXManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!937362698 &1\nVFXManager:\n  m_ObjectHideFlags: 0\n  m_IndirectShader: {fileID: 0}\n  m_CopyBufferShader: {fileID: 0}\n  m_SortShader: {fileID: 0}\n  m_RenderPipeSettingsPath: \n  m_FixedTimeStep: 0.016666668\n  m_MaxDeltaTime: 0.05\n"
  },
  {
    "path": "ProjectSettings/VersionControlSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!890905787 &1\nVersionControlSettings:\n  m_ObjectHideFlags: 0\n  m_Mode: Visible Meta Files\n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n"
  },
  {
    "path": "ProjectSettings/XRSettings.asset",
    "content": "{\n    \"m_SettingKeys\": [\n        \"VR Device Disabled\",\n        \"VR Device User Alert\"\n    ],\n    \"m_SettingValues\": [\n        \"False\",\n        \"False\"\n    ]\n}"
  },
  {
    "path": "README.md",
    "content": "# RuntimeTransformHandle\n\nRuntime transform handle for Unity.\n\n## Installation\n\n#### Install Unity Package Manager\n\nUsing Package Manager is now the prefferred method, all releases should be updated immediately.\n\nAdd Scoped Registry into Package manager using Project Settings => Package Manager as below:  \nName:  \n```\nShtif Registry\n```  \nURL:  \n```\nhttp://package.binaryego.com:4873\n```  \nScopes:  \n```\ncom.shtif\n```\n\n![Package Settings](https://i.imgur.com/Y85kaBn.png)\n\nAfter this you can find the Runtime Transform Handle in My Registries inside Package Manager.\n\n![Package Manager](https://i.imgur.com/WZ19e94.png)\n\nWorks with both the new and legacy input system. The asmdef of this package should automatically grab the reference to the asmdef of the new input system if it is present in your project, or ignore it since it cannot be found if you are using the legacy input system. If this is not the case Check the Assembly Definition References in RuntimeTransformHandle.asmdef. This should have a reference to Unity.InputSystem if you are using the new input system, or no reference if you are using the legacy input system.\n\nIn case you get this error:\n```\nAssets/Plugins/RuntimeTransformHandle/Scripts/RuntimeTransformHandle.cs(3,19): error CS0234: The type or namespace name 'InputSystem' does not exist in the namespace 'UnityEngine' (are you missing an assembly reference?)\n```\nYou probably have both input systems enabled (Project Settings/Player/Active Input Handling: Both) but the Input System package not installed. To fix this either set \"Active Input Handling\" to \"Input Manager (old)\" or install the Input System package through the package manager.\n"
  },
  {
    "path": "UserSettings/EditorUserSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!162 &1\nEditorUserSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 4\n  m_ConfigSettings:\n    RecentlyUsedScenePath-0:\n      value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d\n      flags: 0\n    RecentlyUsedScenePath-1:\n      value: 22424703114646680e0b022703630e5f22120b3e1f2b233e2867083debf42d\n      flags: 0\n    RecentlyUsedScenePath-2:\n      value: 22424703114646680e0b0227036c6b1505032b292926237e38271427fb\n      flags: 0\n    vcSharedLogLevel:\n      value: 0d5e400f0650\n      flags: 0\n  m_VCAutomaticAdd: 1\n  m_VCDebugCom: 0\n  m_VCDebugCmd: 0\n  m_VCDebugOut: 0\n  m_SemanticMergeMode: 2\n  m_VCShowFailedCheckout: 1\n  m_VCOverwriteFailedCheckoutAssets: 1\n  m_VCProjectOverlayIcons: 1\n  m_VCHierarchyOverlayIcons: 1\n  m_VCOtherOverlayIcons: 1\n  m_VCAllowAsyncUpdate: 1\n"
  }
]