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