├── .gitignore ├── Assets ├── Camera.preset ├── Camera.preset.meta ├── EntityCache.meta ├── EntityCache │ └── Resources.meta ├── PlasticApps.meta ├── PlasticApps │ ├── Components.meta │ ├── Components │ │ ├── Ease.meta │ │ ├── Ease │ │ │ ├── EasyTypes.cs │ │ │ └── EasyTypes.cs.meta │ │ ├── Paused.cs │ │ ├── Paused.cs.meta │ │ ├── TweenBase.cs │ │ ├── TweenBase.cs.meta │ │ ├── TweenCallbacks.cs │ │ ├── TweenCallbacks.cs.meta │ │ ├── TweenComplete.cs │ │ ├── TweenComplete.cs.meta │ │ ├── TweenEntity.cs │ │ ├── TweenEntity.cs.meta │ │ ├── TweenGameObject.cs │ │ ├── TweenGameObject.cs.meta │ │ ├── TweenGameObjectLocal.cs │ │ ├── TweenGameObjectLocal.cs.meta │ │ ├── TweenMove.cs │ │ ├── TweenMove.cs.meta │ │ ├── TweenRotate.cs │ │ ├── TweenRotate.cs.meta │ │ ├── TweenScale.cs │ │ ├── TweenScale.cs.meta │ │ ├── TweenTag.cs │ │ ├── TweenTag.cs.meta │ │ ├── TweenValue.cs │ │ └── TweenValue.cs.meta │ ├── Systems.meta │ ├── Systems │ │ ├── Ease.meta │ │ ├── Ease │ │ │ ├── Back.meta │ │ │ ├── Back │ │ │ │ ├── EaseInBackSystem.cs │ │ │ │ ├── EaseInBackSystem.cs.meta │ │ │ │ ├── EaseInOutBackSystem.cs │ │ │ │ ├── EaseInOutBackSystem.cs.meta │ │ │ │ ├── EaseOutBackSystem.cs │ │ │ │ └── EaseOutBackSystem.cs.meta │ │ │ ├── Bounce.meta │ │ │ ├── Bounce │ │ │ │ ├── EaseInBounceSystem.cs │ │ │ │ ├── EaseInBounceSystem.cs.meta │ │ │ │ ├── EaseInOutBounceSystem.cs │ │ │ │ ├── EaseInOutBounceSystem.cs.meta │ │ │ │ ├── EaseOutBounceSystem.cs │ │ │ │ └── EaseOutBounceSystem.cs.meta │ │ │ ├── Circ.meta │ │ │ ├── Circ │ │ │ │ ├── EaseInCircSystem.cs │ │ │ │ ├── EaseInCircSystem.cs.meta │ │ │ │ ├── EaseInOutCircSystem.cs │ │ │ │ ├── EaseInOutCircSystem.cs.meta │ │ │ │ ├── EaseOutCircSystem.cs │ │ │ │ └── EaseOutCircSystem.cs.meta │ │ │ ├── Cubic.meta │ │ │ ├── Cubic │ │ │ │ ├── EaseInCubicSystem.cs │ │ │ │ ├── EaseInCubicSystem.cs.meta │ │ │ │ ├── EaseInOutCubicSystem.cs │ │ │ │ ├── EaseInOutCubicSystem.cs.meta │ │ │ │ ├── EaseOutCubicSystem.cs │ │ │ │ └── EaseOutCubicSystem.cs.meta │ │ │ ├── EaseLinearSystem.cs │ │ │ ├── EaseLinearSystem.cs.meta │ │ │ ├── EaseSpringSystem.cs │ │ │ ├── EaseSpringSystem.cs.meta │ │ │ ├── Elastic.meta │ │ │ ├── Elastic │ │ │ │ ├── EaseInElasticSystem.cs │ │ │ │ ├── EaseInElasticSystem.cs.meta │ │ │ │ ├── EaseInOutElasticSystem.cs │ │ │ │ ├── EaseInOutElasticSystem.cs.meta │ │ │ │ ├── EaseOutElasticSystem.cs │ │ │ │ └── EaseOutElasticSystem.cs.meta │ │ │ ├── Expo.meta │ │ │ ├── Expo │ │ │ │ ├── EaseInExpoSystem.cs │ │ │ │ ├── EaseInExpoSystem.cs.meta │ │ │ │ ├── EaseInOutExpoSystem.cs │ │ │ │ ├── EaseInOutExpoSystem.cs.meta │ │ │ │ ├── EaseOutExpoSystem.cs │ │ │ │ └── EaseOutExpoSystem.cs.meta │ │ │ ├── Quad.meta │ │ │ ├── Quad │ │ │ │ ├── EaseInOutQuadSystem.cs │ │ │ │ ├── EaseInOutQuadSystem.cs.meta │ │ │ │ ├── EaseInQuadSystem.cs │ │ │ │ ├── EaseInQuadSystem.cs.meta │ │ │ │ ├── EaseOutQuadSystem.cs │ │ │ │ └── EaseOutQuadSystem.cs.meta │ │ │ ├── Quart.meta │ │ │ ├── Quart │ │ │ │ ├── EaseInOutQuartSystem.cs │ │ │ │ ├── EaseInOutQuartSystem.cs.meta │ │ │ │ ├── EaseInQuartSystem.cs │ │ │ │ ├── EaseInQuartSystem.cs.meta │ │ │ │ ├── EaseOutQuartSystem.cs │ │ │ │ └── EaseOutQuartSystem.cs.meta │ │ │ ├── Quint.meta │ │ │ ├── Quint │ │ │ │ ├── EaseInOutQuintSystem.cs │ │ │ │ ├── EaseInOutQuintSystem.cs.meta │ │ │ │ ├── EaseInQuintSystem.cs │ │ │ │ ├── EaseInQuintSystem.cs.meta │ │ │ │ ├── EaseOutQuintSystem.cs │ │ │ │ └── EaseOutQuintSystem.cs.meta │ │ │ ├── Sine.meta │ │ │ ├── Sine │ │ │ │ ├── EaseInOutSineSystem.cs │ │ │ │ ├── EaseInOutSineSystem.cs.meta │ │ │ │ ├── EaseInSineSystem.cs │ │ │ │ ├── EaseInSineSystem.cs.meta │ │ │ │ ├── EaseOutSineSystem.cs │ │ │ │ └── EaseOutSineSystem.cs.meta │ │ │ ├── Square.meta │ │ │ └── Square │ │ │ │ ├── EaseInOutSquareSystem.cs │ │ │ │ ├── EaseInOutSquareSystem.cs.meta │ │ │ │ ├── EaseInSquareSystem.cs │ │ │ │ ├── EaseInSquareSystem.cs.meta │ │ │ │ ├── EaseOutSquareSystem.cs │ │ │ │ └── EaseOutSquareSystem.cs.meta │ │ ├── Groups.meta │ │ ├── Groups │ │ │ ├── TweenEasesSystems.cs │ │ │ ├── TweenEasesSystems.cs.meta │ │ │ ├── TweenSystems.cs │ │ │ ├── TweenSystems.cs.meta │ │ │ ├── TweenValuesSystems.cs │ │ │ └── TweenValuesSystems.cs.meta │ │ ├── SubSystems.meta │ │ ├── SubSystems │ │ │ ├── TweenLocalTransformSystem.cs │ │ │ ├── TweenLocalTransformSystem.cs.meta │ │ │ ├── TweenTransformSystem.cs │ │ │ └── TweenTransformSystem.cs.meta │ │ ├── TweenCommandSystem.cs │ │ ├── TweenCommandSystem.cs.meta │ │ ├── TweenCompleteSystem.cs │ │ ├── TweenCompleteSystem.cs.meta │ │ ├── TweenEraseSystem.cs │ │ ├── TweenEraseSystem.cs.meta │ │ ├── TweenPositionSystem.cs │ │ ├── TweenPositionSystem.cs.meta │ │ ├── TweenRotationSystem.cs │ │ ├── TweenRotationSystem.cs.meta │ │ ├── TweenScaleSystem.cs │ │ ├── TweenScaleSystem.cs.meta │ │ ├── TweenUpdateSystem.cs │ │ └── TweenUpdateSystem.cs.meta │ ├── Test.meta │ ├── Test │ │ ├── Camera2.preset │ │ ├── Camera2.preset.meta │ │ ├── Camera3.preset │ │ ├── Camera3.preset.meta │ │ ├── Camera4.preset │ │ ├── Camera4.preset.meta │ │ ├── Cube.prefab │ │ ├── Cube.prefab.meta │ │ ├── Test.mat │ │ ├── Test.mat.meta │ │ ├── TweenCube.prefab │ │ ├── TweenCube.prefab.meta │ │ ├── TweenMoveStressTest.cs │ │ ├── TweenMoveStressTest.cs.meta │ │ ├── TweenMoveTest.cs │ │ └── TweenMoveTest.cs.meta │ ├── Tween.cs │ └── Tween.cs.meta ├── Plugins.meta ├── Plugins │ ├── Editor.meta │ └── Editor │ │ ├── JetBrains.meta │ │ └── JetBrains │ │ ├── Unity3DRider.cs │ │ └── Unity3DRider.cs.meta ├── Scenes.meta └── Scenes │ ├── 01.Wave.unity │ ├── 01.Wave.unity.meta │ ├── 02.GameObjects.unity │ ├── 02.GameObjects.unity.meta │ ├── 03.Eases.unity │ └── 03.Eases.unity.meta ├── LICENSE ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset ├── README.md └── Screenshots ├── Stresstest.png └── SystemGroups.png /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | 27 | # Unity3D generated meta files 28 | *.pidb.meta 29 | *.pdb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk 36 | *.unitypackage 37 | .idea 38 | Logs 39 | -------------------------------------------------------------------------------- /Assets/Camera.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Camera 10 | m_TargetType: 11 | m_NativeTypeID: 4 12 | m_ManagedTypePPtr: {fileID: 0} 13 | m_ManagedTypeFallback: 14 | m_Properties: 15 | - target: {fileID: 0} 16 | propertyPath: m_LocalRotation.x 17 | value: 0.24049427 18 | objectReference: {fileID: 0} 19 | - target: {fileID: 0} 20 | propertyPath: m_LocalRotation.y 21 | value: 0.3465848 22 | objectReference: {fileID: 0} 23 | - target: {fileID: 0} 24 | propertyPath: m_LocalRotation.z 25 | value: -0.09241343 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 0} 28 | propertyPath: m_LocalRotation.w 29 | value: 0.9019431 30 | objectReference: {fileID: 0} 31 | - target: {fileID: 0} 32 | propertyPath: m_LocalPosition.x 33 | value: 10.2 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 0} 36 | propertyPath: m_LocalPosition.y 37 | value: 29.4 38 | objectReference: {fileID: 0} 39 | - target: {fileID: 0} 40 | propertyPath: m_LocalPosition.z 41 | value: 19.2 42 | objectReference: {fileID: 0} 43 | - target: {fileID: 0} 44 | propertyPath: m_LocalScale.x 45 | value: 1 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 0} 48 | propertyPath: m_LocalScale.y 49 | value: 1 50 | objectReference: {fileID: 0} 51 | - target: {fileID: 0} 52 | propertyPath: m_LocalScale.z 53 | value: 1 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 0} 56 | propertyPath: m_RootOrder 57 | value: 0 58 | objectReference: {fileID: 0} 59 | - target: {fileID: 0} 60 | propertyPath: m_LocalEulerAnglesHint.x 61 | value: 29.86 62 | objectReference: {fileID: 0} 63 | - target: {fileID: 0} 64 | propertyPath: m_LocalEulerAnglesHint.y 65 | value: 42.04 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 0} 68 | propertyPath: m_LocalEulerAnglesHint.z 69 | value: 0 70 | objectReference: {fileID: 0} 71 | -------------------------------------------------------------------------------- /Assets/Camera.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78db088b2ed5a487dbaa2a082bec476d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/EntityCache.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff7a05da0dc684f46ba83d67db56e868 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/EntityCache/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d77550c78dd34e5e8d7adaf31473ce8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ec68ced412c314641b2a69d824a008f0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4412b976356bc4ceea0ef23611438dd1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/Ease.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a07d8464d52c415bb16ae0167df82ff2 3 | timeCreated: 1554786712 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/Ease/EasyTypes.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | namespace PlasticApps.Components.Ease 5 | { 6 | public enum EaseType 7 | { 8 | linear, 9 | spring, 10 | easeInQuad, 11 | easeOutQuad, 12 | easeInOutQuad, 13 | easeInCubic, 14 | easeOutCubic, 15 | easeInOutCubic, 16 | easeInQuart, 17 | easeOutQuart, 18 | easeInOutQuart, 19 | easeInQuint, 20 | easeOutQuint, 21 | easeInOutQuint, 22 | easeInSine, 23 | easeOutSine, 24 | easeInOutSine, 25 | easeInExpo, 26 | easeOutExpo, 27 | easeInOutExpo, 28 | easeInCirc, 29 | easeOutCirc, 30 | easeInOutCirc, 31 | easeInBounce, 32 | easeOutBounce, 33 | easeInOutBounce, 34 | easeInBack, 35 | easeOutBack, 36 | easeInOutBack, 37 | easeInElastic, 38 | easeOutElastic, 39 | easeInOutElastic, 40 | easeInSquare, 41 | easeOutSquare, 42 | easeInOutSquare 43 | } 44 | 45 | public struct TweenEaseLinear : IComponentData 46 | { 47 | } 48 | 49 | public struct TweenEaseSpring : IComponentData 50 | { 51 | } 52 | 53 | public struct TweenEaseInQuad : IComponentData 54 | { 55 | } 56 | 57 | public struct TweenEaseOutQuad : IComponentData 58 | { 59 | } 60 | 61 | public struct TweenEaseInOutQuad : IComponentData 62 | { 63 | } 64 | 65 | public struct TweenEaseInCubic : IComponentData 66 | { 67 | } 68 | 69 | public struct TweenEaseOutCubic : IComponentData 70 | { 71 | } 72 | 73 | public struct TweenEaseInOutCubic : IComponentData 74 | { 75 | } 76 | 77 | public struct TweenEaseInQuart : IComponentData 78 | { 79 | } 80 | 81 | public struct TweenEaseOutQuart : IComponentData 82 | { 83 | } 84 | 85 | public struct TweenEaseInOutQuart : IComponentData 86 | { 87 | } 88 | 89 | public struct TweenEaseInQuint : IComponentData 90 | { 91 | } 92 | 93 | public struct TweenEaseOutQuint : IComponentData 94 | { 95 | } 96 | 97 | public struct TweenEaseInOutQuint : IComponentData 98 | { 99 | } 100 | 101 | public struct TweenEaseInSine : IComponentData 102 | { 103 | } 104 | 105 | public struct TweenEaseOutSine : IComponentData 106 | { 107 | } 108 | 109 | public struct TweenEaseInOutSine : IComponentData 110 | { 111 | } 112 | 113 | public struct TweenEaseInExpo : IComponentData 114 | { 115 | } 116 | 117 | public struct TweenEaseOutExpo : IComponentData 118 | { 119 | } 120 | 121 | public struct TweenEaseInOutExpo : IComponentData 122 | { 123 | } 124 | 125 | public struct TweenEaseInCirc : IComponentData 126 | { 127 | } 128 | 129 | public struct TweenEaseOutCirc : IComponentData 130 | { 131 | } 132 | 133 | public struct TweenEaseInOutCirc : IComponentData 134 | { 135 | } 136 | 137 | public struct TweenEaseInBounce : IComponentData 138 | { 139 | } 140 | 141 | public struct TweenEaseOutBounce : IComponentData 142 | { 143 | } 144 | 145 | public struct TweenEaseInOutBounce : IComponentData 146 | { 147 | } 148 | 149 | public struct TweenEaseInBack : IComponentData 150 | { 151 | } 152 | 153 | public struct TweenEaseOutBack : IComponentData 154 | { 155 | } 156 | 157 | public struct TweenEaseInOutBack : IComponentData 158 | { 159 | } 160 | 161 | public struct TweenEaseInElastic : IComponentData 162 | { 163 | } 164 | 165 | public struct TweenEaseOutElastic : IComponentData 166 | { 167 | } 168 | 169 | public struct TweenEaseInOutElastic : IComponentData 170 | { 171 | } 172 | 173 | public struct TweenEaseInSquare : IComponentData 174 | { 175 | } 176 | 177 | public struct TweenEaseOutSquare : IComponentData 178 | { 179 | } 180 | 181 | public struct TweenEaseInOutSquare : IComponentData 182 | { 183 | } 184 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/Ease/EasyTypes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 979c3fa6e4d54f7ab0231e35d4cec49c 3 | timeCreated: 1554747163 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/Paused.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Unity.Entities; 4 | using UnityEngine; 5 | 6 | namespace PlasticApps.Components 7 | { 8 | /// 9 | /// Tag - Paused Tweens excluded from update systems 10 | /// 11 | public struct TweenPaused : IComponentData 12 | { 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/Paused.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5d9ce07359164ae08933dcbeafbbeb1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenBase.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | /// 6 | /// Tween State 7 | /// 8 | public struct TweenBase : IComponentData 9 | { 10 | // repeats => -1 => Loop 11 | public int Loop; 12 | 13 | // bool byte 0 = false, 1 = true 14 | public byte PingPong; 15 | 16 | // bool byte 0 = false, 1 = true 17 | public byte Reversed; 18 | 19 | // current ease value 20 | public float Value; 21 | 22 | // current time [0-Duration] 23 | public float Time; 24 | 25 | // current tween progress [0-1] 26 | public float NormalizedTime; 27 | 28 | // total duration in seconds 29 | public float Duration; 30 | 31 | // Ease Type id -> retrieved from TypeManager 32 | public int EaseTypeId; 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de4e0855369647868cd8da2bdae9886e 3 | timeCreated: 1554746950 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenCallbacks.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | public struct TweenCompleteCallback : IComponentData 6 | { 7 | // Callback ID 8 | public int Value; 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenCallbacks.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a3c3eff781246438c4155e27027a5cf 3 | timeCreated: 1554747945 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenComplete.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | /// 6 | /// Marker - Remove Entity from World 7 | /// 8 | public struct TweenComplete : IComponentData 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenComplete.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e60318494064ceead705274674fc393 3 | timeCreated: 1554750035 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenEntity.cs: -------------------------------------------------------------------------------- 1 | using Unity.Collections; 2 | using Unity.Entities; 3 | 4 | namespace PlasticApps.Components 5 | { 6 | /// 7 | /// Relation - Animation Target [Translation, NonUniformScale, RotationEulerXYZ] 8 | /// 9 | public struct TweenEntity : IComponentData 10 | { 11 | // Tweening Target 12 | public Entity Value; 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenEntity.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0935237acb042ca87b16596610bd33d 3 | timeCreated: 1554887812 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenGameObject.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | /// 6 | /// Tag - Use Tween as Component for GameObject 7 | /// 8 | public struct TweenGameObject : IComponentData 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenGameObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 712fe6f6086f4be29edf26c78e727e91 3 | timeCreated: 1554883696 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenGameObjectLocal.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | /// 6 | /// Tag - Use Tween as Component for GameObject 7 | /// 8 | public struct TweenGameObjectLocal : IComponentData 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenGameObjectLocal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0e376b058e83ee4da474213e7d9977b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenMove.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | namespace PlasticApps.Components 5 | { 6 | public struct TweenMove : IComponentData 7 | { 8 | public float3 From; 9 | public float3 To; 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenMove.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf39cd17cd894cb98474c782a316e267 3 | timeCreated: 1554747186 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenRotate.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | namespace PlasticApps.Components 5 | { 6 | public struct TweenRotate : IComponentData 7 | { 8 | public quaternion From; 9 | public quaternion To; 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenRotate.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4b84be85a254dd8bf06b30d24205412 3 | timeCreated: 1554747225 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenScale.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | namespace PlasticApps.Components 5 | { 6 | public struct TweenScale: IComponentData 7 | { 8 | public float3 From; 9 | public float3 To; 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenScale.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cf15d14cbd84e419541722a5836ff9a 3 | timeCreated: 1554747243 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | public struct TweenTag: IComponentData 6 | { 7 | public int Value; 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce818f066b30428a99ed01bda6d31663 3 | timeCreated: 1554747350 -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenValue.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Components 4 | { 5 | public struct TweenValue: IComponentData 6 | { 7 | public float from; 8 | public float to; 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Components/TweenValue.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 307fffa23110049c5984702ed207b43f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 616a1fe044e974f26beab9b231cde8b1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b630136159f54595848cd2bea0713e7d 3 | timeCreated: 1554786639 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1471395a6df84f7484ba73bbd6f0f561 3 | timeCreated: 1554875929 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseInBackSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInBackSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInBack))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | value /= 1; 23 | float s = 1.70158f; 24 | tween.Value = value * value * ((s + 1) * value - s); 25 | } 26 | } 27 | 28 | protected override JobHandle OnUpdate(JobHandle inputDeps) 29 | { 30 | var job = new EaseJob(); 31 | return job.Schedule(this, inputDeps); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseInBackSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4842a72816174f529d42ba4a7451af8b 3 | timeCreated: 1554876252 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseInOutBackSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutBackSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutBack))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | float s = 1.70158f; 23 | value /= .5f; 24 | if (value < 1) 25 | { 26 | s *= 1.525f; 27 | tween.Value = 0.5f * (value * value * ((s + 1) * value - s)); 28 | } 29 | else 30 | { 31 | value -= 2; 32 | s *= (1.525f); 33 | tween.Value = 0.5f * (value * value * ((s + 1) * value + s) + 2); 34 | } 35 | } 36 | } 37 | 38 | protected override JobHandle OnUpdate(JobHandle inputDeps) 39 | { 40 | var job = new EaseJob(); 41 | return job.Schedule(this, inputDeps); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseInOutBackSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77c2866dd65c4068b85b69712db34d0f 3 | timeCreated: 1554876252 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseOutBackSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutBackSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutBack))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | float s = 1.70158f; 23 | value = value - 1; 24 | tween.Value = value * value * ((s + 1) * value + s) + 1; 25 | } 26 | } 27 | 28 | protected override JobHandle OnUpdate(JobHandle inputDeps) 29 | { 30 | var job = new EaseJob(); 31 | return job.Schedule(this, inputDeps); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Back/EaseOutBackSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ded5dcec62f40a29cb349b720de487d 3 | timeCreated: 1554876252 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b8f02c5615e4b249c078a41e690629e 3 | timeCreated: 1554875924 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseInBounceSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInBounceSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInBounce))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | tween.Value = EaseInOutBounceSystem.Ease(1f - tween.NormalizedTime); 22 | } 23 | } 24 | 25 | protected override JobHandle OnUpdate(JobHandle inputDeps) 26 | { 27 | var job = new EaseJob(); 28 | return job.Schedule(this, inputDeps); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseInBounceSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26039437ce144253b0c577cc379cce97 3 | timeCreated: 1554876285 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseInOutBounceSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutBounceSystem : JobComponentSystem 13 | { 14 | public static float Ease(float value) 15 | { 16 | value /= 1f; 17 | if (value < 1 / 2.75f) 18 | { 19 | return 7.5625f * value * value; 20 | } 21 | else if (value < 2 / 2.75f) 22 | { 23 | value -= 1.5f / 2.75f; 24 | return 7.5625f * value * value + .75f; 25 | } 26 | else if (value < 2.5f / 2.75f) 27 | { 28 | value -= 2.25f / 2.75f; 29 | return 7.5625f * value * value + .9375f; 30 | } 31 | 32 | value -= 2.625f / 2.75f; 33 | return 7.5625f * value * value + .984375f; 34 | } 35 | 36 | [BurstCompile] 37 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 38 | [RequireComponentTag(typeof(TweenEaseInOutBounce))] 39 | struct EaseJob : IJobForEach 40 | { 41 | public void Execute(ref TweenBase tween) 42 | { 43 | float value = tween.NormalizedTime; 44 | float d = 1f; 45 | if (value < d * 0.5f) 46 | { 47 | tween.Value = Ease(value * 2) * 0.5f; 48 | } 49 | else 50 | { 51 | tween.Value = Ease(value * 2 - d) * 0.5f + 0.5f; 52 | } 53 | } 54 | } 55 | 56 | protected override JobHandle OnUpdate(JobHandle inputDeps) 57 | { 58 | var job = new EaseJob(); 59 | return job.Schedule(this, inputDeps); 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseInOutBounceSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b6bdb3701684b03881959e9441bd954 3 | timeCreated: 1554876285 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseOutBounceSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutBounceSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutBounce))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | tween.Value = EaseInOutBounceSystem.Ease(tween.NormalizedTime); 22 | } 23 | } 24 | 25 | protected override JobHandle OnUpdate(JobHandle inputDeps) 26 | { 27 | var job = new EaseJob(); 28 | return job.Schedule(this, inputDeps); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Bounce/EaseOutBounceSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 44bcd6072274489aa9067c4d6c240762 3 | timeCreated: 1554876285 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4915213c2584287a54d8910aaed3eb6 3 | timeCreated: 1554875919 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseInCircSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInCircSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInCirc))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = -(math.sqrt(1 - value * value) - 1); 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseInCircSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba86472e0fdc4e5993c9c9902e37cfba 3 | timeCreated: 1554875964 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseInOutCircSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutCircSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutCirc))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | unchecked 22 | { 23 | float value = tween.NormalizedTime * 2; 24 | if (value < 1) 25 | { 26 | tween.Value = -0.5f * (math.sqrt(1 - value * value) - 1); 27 | } 28 | else 29 | { 30 | value -= 2; 31 | tween.Value = 0.5f * (math.sqrt(1 - value * value) + 1); 32 | } 33 | } 34 | } 35 | } 36 | 37 | protected override JobHandle OnUpdate(JobHandle inputDeps) 38 | { 39 | var job = new EaseJob(); 40 | return job.Schedule(this, inputDeps); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseInOutCircSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96c0b74c52a849edb63f378fa6d94a24 3 | timeCreated: 1554875964 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseOutCircSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutCircSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutCirc))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime - 1; 22 | tween.Value = math.sqrt(1 - value * value);; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Circ/EaseOutCircSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6981cc946954702bb101b98aac44d76 3 | timeCreated: 1554875964 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccb3121868dd4721b480f543d33ea244 3 | timeCreated: 1554875884 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseInCubicSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInCubicSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInCubic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = value * value * value; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseInCubicSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: faf35cb5b4954e34a7411fe8cf24e14a 3 | timeCreated: 1554874804 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseInOutCubicSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutCubicSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutCubic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | unchecked 22 | { 23 | float value = tween.NormalizedTime / .5f; 24 | if (value < 1) 25 | { 26 | tween.Value = 0.5f * value * value; 27 | } 28 | else 29 | { 30 | value--; 31 | tween.Value = -0.5f * (value * (value - 2) - 1); 32 | } 33 | } 34 | } 35 | } 36 | 37 | protected override JobHandle OnUpdate(JobHandle inputDeps) 38 | { 39 | var job = new EaseJob(); 40 | return job.Schedule(this, inputDeps); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseInOutCubicSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3ad77bb150480d9bf4173c179bbfb5 3 | timeCreated: 1554874819 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseOutCubicSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutCubicSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutCubic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime - 1; 22 | tween.Value = value * value * value + 1; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Cubic/EaseOutCubicSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc6c01eca8e948eda550fcaa0e2876ea 3 | timeCreated: 1554874812 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/EaseLinearSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseLinearSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseLinear))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | tween.Value = tween.NormalizedTime; 22 | } 23 | } 24 | 25 | protected override JobHandle OnUpdate(JobHandle inputDeps) 26 | { 27 | var job = new EaseJob(); 28 | return job.Schedule(this, inputDeps); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/EaseLinearSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6ff736462a44b6b9b8b9ec1fad7f31c 3 | timeCreated: 1554786652 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/EaseSpringSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | using UnityEngine; 10 | 11 | namespace PlasticApps.Systems.Ease 12 | { 13 | [UpdateInGroup(typeof(TweenEasesSystems))] 14 | public class EaseSpringSystem : JobComponentSystem 15 | { 16 | [BurstCompile] 17 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 18 | [RequireComponentTag(typeof(TweenEaseSpring))] 19 | struct EaseJob : IJobForEach 20 | { 21 | public void Execute(ref TweenBase tween) 22 | { 23 | unchecked 24 | { 25 | float value = tween.NormalizedTime; 26 | value = math.clamp(value, 0.0f, 1.0f); 27 | value = 28 | (math.sin(value * (float) math.PI * (0.2f + 2.5f * value * value * value)) * 29 | math.pow(1f - value, 2.2f) + 30 | value) * (1f + (1f - value) * 1.2f); 31 | tween.Value = value; 32 | } 33 | } 34 | } 35 | 36 | protected override JobHandle OnUpdate(JobHandle inputDeps) 37 | { 38 | var job = new EaseJob(); 39 | return job.Schedule(this, inputDeps); 40 | } 41 | } 42 | 43 | // tests 44 | // public abstract class EaseSystem : JobComponentSystem where T : IComponentData 45 | // { 46 | // private EntityQuery m_Group; 47 | // 48 | // protected override void OnCreate() 49 | // { 50 | // m_Group = GetEntityQuery(ComponentType.ReadWrite(), ComponentType.ReadOnly()); 51 | // } 52 | // 53 | // protected abstract JobHandle PrepareJobHandle(JobHandle inputDeps, int totalEntity, 54 | // NativeArray tweens); 55 | // 56 | // protected override JobHandle OnUpdate(JobHandle inputDeps) 57 | // { 58 | // return PrepareJobHandle(inputDeps, m_Group.CalculateLength(), 59 | // m_Group.ToComponentDataArray(Allocator.TempJob)); 60 | // } 61 | // } 62 | // 63 | // [UpdateInGroup(typeof(TweenEasesSystems))] 64 | // public class EaseSpringSystem : EaseSystem 65 | // { 66 | // [BurstCompile] 67 | // struct EaseJob : IJobParallelFor 68 | // { 69 | // public NativeArray Tweens; 70 | // 71 | // public void Execute(int index) 72 | // { 73 | // var tween = Tweens[index]; 74 | // float value = tween.NormalizedTime; 75 | // value = math.clamp(value, 0.0f, 1.0f); 76 | // value = 77 | // (math.sin(value * (float) math.PI * (0.2f + 2.5f * value * value * value)) * 78 | // math.pow(1f - value, 2.2f) + 79 | // value) * (1f + (1f - value) * 1.2f); 80 | // tween.Value = value; 81 | // Tweens[index] = tween; 82 | // } 83 | // } 84 | // 85 | // protected override JobHandle PrepareJobHandle(JobHandle inputDeps, int totalEntity, 86 | // NativeArray tweens) 87 | // { 88 | // return new EaseJob 89 | // { 90 | // Tweens = tweens 91 | // }.Schedule(totalEntity, 32, inputDeps); 92 | // } 93 | // } 94 | // 95 | // 96 | // [UpdateInGroup(typeof(TweenEasesSystems))] 97 | // public class EaseSpringSystem : JobComponentSystem 98 | // { 99 | // private EntityQuery m_Group; 100 | // 101 | // protected override void OnCreate() 102 | // { 103 | // m_Group = GetEntityQuery(ComponentType.Exclude(), ComponentType.Exclude(), 104 | // ComponentType.ReadOnly()); 105 | // } 106 | // 107 | // [BurstCompile] 108 | // struct EaseJob : IJobParallelFor 109 | // { 110 | // [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Entities; 111 | // [NativeDisableParallelForRestriction] public ComponentDataFromEntity Tweens; 112 | // 113 | // public void Execute(int index) 114 | // { 115 | // var _index = Entities[index]; 116 | // var tween = Tweens[_index]; 117 | // float value = tween.NormalizedTime; 118 | // value = math.clamp(value, 0.0f, 1.0f); 119 | // value = 120 | // (math.sin(value * (float) math.PI * (0.2f + 2.5f * value * value * value)) * 121 | // math.pow(1f - value, 2.2f) + 122 | // value) * (1f + (1f - value) * 1.2f); 123 | // tween.Value = value; 124 | // Tweens[_index] = tween; 125 | // } 126 | // } 127 | // 128 | // protected override JobHandle OnUpdate(JobHandle inputDeps) 129 | // { 130 | // var total = m_Group.CalculateLength(); 131 | // if (total == 0) return inputDeps; 132 | // var job = new EaseJob 133 | // { 134 | // Entities = m_Group.ToEntityArray(Allocator.TempJob), 135 | // Tweens = GetComponentDataFromEntity(false) 136 | // }.Schedule(total, 1, inputDeps); 137 | // return job; 138 | // } 139 | // } 140 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/EaseSpringSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fab17bd347c6469bb3408446822d1a04 3 | timeCreated: 1554787412 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fdbe42c4c8304f75b9888c0bdc70f65d 3 | timeCreated: 1554875934 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseInElasticSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInElasticSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInElastic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | float d = 1f; 23 | float p = d * .3f; 24 | float a = 0; 25 | 26 | if (value == 0) 27 | { 28 | tween.Value = 0; 29 | } 30 | else if ((value /= d) == 1) 31 | { 32 | tween.Value = 1; 33 | } 34 | 35 | else 36 | { 37 | float s = 0; 38 | if (a == 0f || a < 1) 39 | { 40 | a = 1; 41 | s = p / 4; 42 | } 43 | else 44 | { 45 | s = p / (2 * (float) math.PI) * math.asin(1 / a); 46 | } 47 | tween.Value = -(a * math.pow(2, 10 * (value -= 1)) * 48 | math.sin((value * d - s) * (2 * (float) math.PI) / p)); 49 | } 50 | } 51 | } 52 | 53 | protected override JobHandle OnUpdate(JobHandle inputDeps) 54 | { 55 | var job = new EaseJob(); 56 | return job.Schedule(this, inputDeps); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseInElasticSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c3c8dac841049a79bf6fac0aec14824 3 | timeCreated: 1554876320 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseInOutElasticSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutElasticSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutElastic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | float d = 1f; 23 | float p = d * .3f; 24 | float a = 0; 25 | 26 | if (value == 0) 27 | { 28 | tween.Value = 0; 29 | } 30 | 31 | else if ((value /= d * 0.5f) == 2) 32 | { 33 | tween.Value = 1; 34 | } 35 | else 36 | { 37 | float s = 0; 38 | if (a == 0f || a < 1) 39 | { 40 | a = 1; 41 | s = p / 4; 42 | } 43 | else 44 | { 45 | s = p / (2 * (float) math.PI) * math.asin(1 / a); 46 | } 47 | 48 | if (value < 1) 49 | { 50 | tween.Value = -0.5f * (a * math.pow(2, 10 * (value -= 1)) * 51 | math.sin((value * d - s) * (2 * (float) math.PI) / p)); 52 | } 53 | else 54 | { 55 | tween.Value = a * math.pow(2, -10 * (value -= 1)) * 56 | math.sin((value * d - s) * (2 * (float) math.PI) / p) * 57 | 0.5f + 58 | 1; 59 | } 60 | } 61 | } 62 | } 63 | 64 | protected override JobHandle OnUpdate(JobHandle inputDeps) 65 | { 66 | var job = new EaseJob(); 67 | return job.Schedule(this, inputDeps); 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseInOutElasticSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09310d0114c340ac87c51b258f856d5b 3 | timeCreated: 1554876321 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseOutElasticSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutElasticSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutElastic))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | float d = 1f; 23 | float p = d * .3f; 24 | float a = 0; 25 | 26 | if (value == 0) 27 | { 28 | tween.Value = 0; 29 | } 30 | 31 | else if ((value /= d) == 1) 32 | { 33 | tween.Value = 1; 34 | } 35 | else 36 | { 37 | float s = 0; 38 | if (a == 0f || a < 1) 39 | { 40 | a = 1; 41 | s = p * 0.25f; 42 | } 43 | else 44 | { 45 | s = p / (2 * (float) math.PI) * math.asin(1 / a); 46 | } 47 | 48 | tween.Value = 49 | (a * math.pow(2, -10 * value) * math.sin((value * d - s) * (2 * (float) math.PI) / p) + 1); 50 | } 51 | } 52 | } 53 | 54 | protected override JobHandle OnUpdate(JobHandle inputDeps) 55 | { 56 | var job = new EaseJob(); 57 | return job.Schedule(this, inputDeps); 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Elastic/EaseOutElasticSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1be6174850fc403dbd5caa7775b14af0 3 | timeCreated: 1554876321 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ee429a78066484f86f0387ad8c371c1 3 | timeCreated: 1554875913 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseInExpoSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInExpoSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInExpo))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = math.pow(2.0f, 10 * (value - 1)); 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseInExpoSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dc5a6358d3647518d0253b4b538bfae 3 | timeCreated: 1554876208 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseInOutExpoSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutExpoSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutExpo))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime / .5f; 22 | if (value < 1) 23 | { 24 | tween.Value = 0.5f * math.pow(2, 10 * (value - 1)); 25 | } 26 | else 27 | { 28 | value--; 29 | tween.Value = 0.5f * (-math.pow(2, -10 * value) + 2); 30 | } 31 | } 32 | } 33 | 34 | protected override JobHandle OnUpdate(JobHandle inputDeps) 35 | { 36 | var job = new EaseJob(); 37 | return job.Schedule(this, inputDeps); 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseInOutExpoSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a88de50c0bc0486eb79012fa2f233a78 3 | timeCreated: 1554876208 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseOutExpoSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutExpoSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutExpo))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = -math.pow(2, -10 * value) + 1; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Expo/EaseOutExpoSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89b1036f86bc4e3cacb41904eb2c3c22 3 | timeCreated: 1554876208 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d941aabc221461697b8b54694165985 3 | timeCreated: 1554875876 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseInOutQuadSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | 8 | namespace PlasticApps.Systems.Ease 9 | { 10 | [UpdateInGroup(typeof(TweenEasesSystems))] 11 | public class EaseInOutQuadSystem : JobComponentSystem 12 | { 13 | [BurstCompile] 14 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 15 | [RequireComponentTag(typeof(TweenEaseInOutQuad))] 16 | public struct EaseJob : IJobForEach 17 | { 18 | public void Execute(ref TweenBase tween) 19 | { 20 | unchecked 21 | { 22 | float value = tween.NormalizedTime; 23 | value /= .5f; 24 | if (value < 1) 25 | { 26 | tween.Value = 0.5f * value * value; 27 | } 28 | else 29 | { 30 | value--; 31 | tween.Value = -0.5f * (value * (value - 2) - 1); 32 | } 33 | } 34 | } 35 | } 36 | 37 | protected override JobHandle OnUpdate(JobHandle inputDeps) 38 | { 39 | var job = new EaseJob(); 40 | return job.Schedule(this, inputDeps); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseInOutQuadSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cbec87692a642d1a30b8197fd9b0b0a 3 | timeCreated: 1554788032 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseInQuadSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | 8 | namespace PlasticApps.Systems.Ease 9 | { 10 | [UpdateInGroup(typeof(TweenEasesSystems))] 11 | public class EaseInQuadSystem : JobComponentSystem 12 | { 13 | [BurstCompile] 14 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 15 | [RequireComponentTag(typeof(TweenEaseInQuad))] 16 | public struct EaseJob : IJobForEach 17 | { 18 | public void Execute(ref TweenBase tween) 19 | { 20 | float value = tween.NormalizedTime; 21 | tween.Value = value * value; 22 | } 23 | } 24 | 25 | protected override JobHandle OnUpdate(JobHandle inputDeps) 26 | { 27 | var job = new EaseJob(); 28 | return job.Schedule(this, inputDeps); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseInQuadSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d44ef6c1f65045fc8eb050d38277379b 3 | timeCreated: 1554787910 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseOutQuadSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using PlasticApps.Systems.Groups; 6 | using Unity.Burst; 7 | 8 | namespace PlasticApps.Systems.Ease 9 | { 10 | [UpdateInGroup(typeof(TweenEasesSystems))] 11 | public class EaseOutQuadSystem : JobComponentSystem 12 | { 13 | [BurstCompile] 14 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 15 | [RequireComponentTag(typeof(TweenEaseOutQuad))] 16 | struct EaseJob : IJobForEach 17 | { 18 | public void Execute(ref TweenBase tween) 19 | { 20 | float value = tween.NormalizedTime; 21 | tween.Value = -value * (value - 2); 22 | } 23 | } 24 | 25 | protected override JobHandle OnUpdate(JobHandle inputDeps) 26 | { 27 | var job = new EaseJob(); 28 | return job.Schedule(this, inputDeps); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quad/EaseOutQuadSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69cf922312974ca79c1e8db85cb5c99c 3 | timeCreated: 1554787981 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c374154219ce4ab18c375e90f186d219 3 | timeCreated: 1554875894 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseInOutQuartSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseInOutQuartSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseInOutQuart))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | unchecked 23 | { 24 | float value = tween.NormalizedTime * 2; 25 | if (value < 1) 26 | { 27 | tween.Value = 0.5f * value * value * value * value; 28 | } 29 | else 30 | { 31 | value -= 2; 32 | tween.Value = -0.5f * (value * value * value * value - 2); 33 | } 34 | } 35 | } 36 | } 37 | 38 | protected override JobHandle OnUpdate(JobHandle inputDeps) 39 | { 40 | var job = new EaseJob(); 41 | return job.Schedule(this, inputDeps); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseInOutQuartSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27f7b3b89a5942f2b9b7fb0817c7e9a6 3 | timeCreated: 1554875090 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseInQuartSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseInQuartSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseInQuart))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | float value = tween.NormalizedTime; 23 | tween.Value = value * value * value * value; 24 | } 25 | } 26 | 27 | protected override JobHandle OnUpdate(JobHandle inputDeps) 28 | { 29 | var job = new EaseJob(); 30 | return job.Schedule(this, inputDeps); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseInQuartSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c81ee0621dd94554b1cc701e7cb9dbcc 3 | timeCreated: 1554875030 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseOutQuartSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseOutQuartSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseOutQuart))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | float value = tween.NormalizedTime - 1; 23 | tween.Value = -(value * value * value * value - 1); 24 | } 25 | } 26 | 27 | protected override JobHandle OnUpdate(JobHandle inputDeps) 28 | { 29 | var job = new EaseJob(); 30 | return job.Schedule(this, inputDeps); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quart/EaseOutQuartSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b94e8003e0b2403e8b29e07107e95b4f 3 | timeCreated: 1554875061 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ddaa039f8c141f58eb60458ce25a9f0 3 | timeCreated: 1554875900 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseInOutQuintSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseInOutQuintSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseInOutQuint))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | unchecked 23 | { 24 | float value = tween.NormalizedTime * 2; 25 | if (value < 1) 26 | { 27 | tween.Value = 0.5f * value * value * value * value * value; 28 | } 29 | else 30 | { 31 | value -= 2; 32 | tween.Value = 0.5f * (value * value * value * value * value + 2); 33 | } 34 | } 35 | } 36 | } 37 | 38 | protected override JobHandle OnUpdate(JobHandle inputDeps) 39 | { 40 | var job = new EaseJob(); 41 | return job.Schedule(this, inputDeps); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseInOutQuintSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8760e1fbeba94212b4280a4d3d032f13 3 | timeCreated: 1554876144 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseInQuintSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseInQuintSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseInQuint))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | float value = tween.NormalizedTime; 23 | tween.Value = value * value * value * value * value; 24 | } 25 | } 26 | 27 | protected override JobHandle OnUpdate(JobHandle inputDeps) 28 | { 29 | var job = new EaseJob(); 30 | return job.Schedule(this, inputDeps); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseInQuintSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 726eedf8055b42be8b724783064ea71e 3 | timeCreated: 1554876144 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseOutQuintSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Collections; 6 | using Unity.Entities; 7 | using Unity.Jobs; 8 | using Unity.Mathematics; 9 | 10 | namespace PlasticApps.Systems.Ease 11 | { 12 | [UpdateInGroup(typeof(TweenEasesSystems))] 13 | public class EaseOutQuintSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | [RequireComponentTag(typeof(TweenEaseOutQuint))] 18 | struct EaseJob : IJobForEach 19 | { 20 | public void Execute(ref TweenBase tween) 21 | { 22 | float value = tween.NormalizedTime - 1; 23 | tween.Value = (value * value * value * value * value + 1); 24 | } 25 | } 26 | 27 | protected override JobHandle OnUpdate(JobHandle inputDeps) 28 | { 29 | var job = new EaseJob(); 30 | return job.Schedule(this, inputDeps); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Quint/EaseOutQuintSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e4a4bc3f36d4d94aceaa01c5296d450 3 | timeCreated: 1554876144 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5baff3ee19fc45a19bafbbb782b5dc51 3 | timeCreated: 1554875904 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseInOutSineSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | using Unity.Mathematics; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutSineSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutSine))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = -0.5f * (math.cos(value * (float) math.PI) - 1.0f); 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseInOutSineSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f14fd81803c41f9a437f0e92fcb798a 3 | timeCreated: 1554876369 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseInSineSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Burst; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | using Unity.Mathematics; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInSineSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInSine))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = -math.cos(value * ((float) math.PI * 0.5f)) + 1; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseInSineSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9c0be3084cb415b80eb5416eca991d5 3 | timeCreated: 1554876369 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseOutSineSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using PlasticApps.Systems.Groups; 6 | using Unity.Burst; 7 | using Unity.Mathematics; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutSineSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutSine))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = math.sin(value * ((float) math.PI * 0.5f)); 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Sine/EaseOutSineSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb9d0ba3600c49e4a0a9209f93a59a39 3 | timeCreated: 1554876370 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdf32cc17d734903b6f5e96ca249ae67 3 | timeCreated: 1555097373 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseInOutSquareSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInOutSquareSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInOutSquare))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = value < 0.5 ? 0 : 1; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseInOutSquareSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b696d8fb179f4e9d968982698ff3dd93 3 | timeCreated: 1555097373 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseInSquareSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseInSquareSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseInSquare))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = value < 1 ? 0 : 1; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseInSquareSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0eb6f89d2d694f30ac3fddadba0df605 3 | timeCreated: 1555097373 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseOutSquareSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using PlasticApps.Systems.Groups; 7 | using Unity.Burst; 8 | 9 | namespace PlasticApps.Systems.Ease 10 | { 11 | [UpdateInGroup(typeof(TweenEasesSystems))] 12 | public class EaseOutSquareSystem : JobComponentSystem 13 | { 14 | [BurstCompile] 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | [RequireComponentTag(typeof(TweenEaseOutSquare))] 17 | struct EaseJob : IJobForEach 18 | { 19 | public void Execute(ref TweenBase tween) 20 | { 21 | float value = tween.NormalizedTime; 22 | tween.Value = value > 0 ? 1 : 0; 23 | } 24 | } 25 | 26 | protected override JobHandle OnUpdate(JobHandle inputDeps) 27 | { 28 | var job = new EaseJob(); 29 | return job.Schedule(this, inputDeps); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Ease/Square/EaseOutSquareSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e8b5ffd8db54522ab8f2fde6be248d9 3 | timeCreated: 1555097373 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 088825b323974f9a8dd516f39cb647aa 3 | timeCreated: 1554797080 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenEasesSystems.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Systems.Groups 4 | { 5 | [UpdateAfter(typeof(TweenUpdateSystem))] 6 | [UpdateInGroup(typeof(TweenSystems))] 7 | public class TweenEasesSystems: ComponentSystemGroup 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenEasesSystems.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c0773f07a4b48519ce110919b34723f 3 | timeCreated: 1554789026 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenSystems.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Systems.Groups 4 | { 5 | public class TweenSystems: ComponentSystemGroup 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenSystems.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c396845c45e44c1b99b24a4f2464ee6f 3 | timeCreated: 1555058096 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenValuesSystems.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace PlasticApps.Systems.Groups 4 | { 5 | [UpdateInGroup(typeof(TweenSystems))] 6 | [UpdateAfter(typeof(TweenUpdateSystem))] 7 | [UpdateAfter(typeof(TweenEasesSystems))] 8 | public class TweenValuesSystems: ComponentSystemGroup 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/Groups/TweenValuesSystems.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 485169f9e85d4024ac5a20b47eb0f431 3 | timeCreated: 1554797100 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/SubSystems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b231739345d4404bb80721a72083178e 3 | timeCreated: 1554794015 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/SubSystems/TweenLocalTransformSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Systems.Groups; 3 | using Unity.Burst; 4 | using Unity.Collections; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | using Unity.Transforms; 8 | using UnityEngine; 9 | using UnityEngine.Jobs; 10 | 11 | namespace PlasticApps.Systems.SubSystems 12 | { 13 | [UpdateInGroup(typeof(TweenSystems))] 14 | [UpdateAfter(typeof(TweenValuesSystems))] 15 | public class TweenLocalTransformSystem : JobComponentSystem 16 | { 17 | //[BurstCompile] 18 | struct ApplyTranslationJob : IJobParallelForTransform 19 | { 20 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray positions; 21 | 22 | public void Execute(int index, TransformAccess transform) 23 | { 24 | transform.localPosition = positions[index].Value; 25 | } 26 | } 27 | 28 | struct ApplyRotationJob : IJobParallelForTransform 29 | { 30 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray rotations; 31 | 32 | public void Execute(int index, TransformAccess transform) 33 | { 34 | transform.localRotation = rotations[index].Value; 35 | } 36 | } 37 | 38 | EntityQuery m_TranslateGroup; 39 | EntityQuery m_RotateGroup; 40 | 41 | protected override void OnCreateManager() 42 | { 43 | m_TranslateGroup = 44 | GetEntityQuery(ComponentType.ReadOnly(typeof(TweenBase)), 45 | ComponentType.ReadOnly(typeof(TweenGameObjectLocal)), ComponentType.ReadOnly(typeof(Translation)), 46 | ComponentType.ReadWrite()); 47 | 48 | m_RotateGroup = 49 | GetEntityQuery(ComponentType.ReadOnly(typeof(TweenBase)), 50 | ComponentType.ReadOnly(typeof(TweenGameObjectLocal)), ComponentType.ReadOnly(typeof(Rotation)), 51 | ComponentType.ReadWrite()); 52 | } 53 | 54 | protected override JobHandle OnUpdate(JobHandle inputDeps) 55 | { 56 | int translationLength = m_TranslateGroup.CalculateLength(); 57 | int rotationLength = m_RotateGroup.CalculateLength(); 58 | if (translationLength == 0 && rotationLength == 0) return inputDeps; 59 | 60 | var translateTransforms = m_TranslateGroup.GetTransformAccessArray(); 61 | var positions = m_TranslateGroup.ToComponentDataArray(Allocator.TempJob); 62 | var applyTranslationJob = new ApplyTranslationJob 63 | { 64 | positions = positions, 65 | }; 66 | 67 | var translateHandle = applyTranslationJob.Schedule(translateTransforms, inputDeps); 68 | 69 | var rotateTransforms = m_RotateGroup.GetTransformAccessArray(); 70 | var rotations = m_RotateGroup.ToComponentDataArray(Allocator.TempJob); 71 | var applyRotationJob = new ApplyRotationJob 72 | { 73 | rotations = rotations, 74 | }; 75 | 76 | return applyRotationJob.Schedule(rotateTransforms, translateHandle); 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/SubSystems/TweenLocalTransformSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5387081738531f47bf7da96a5779d76 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/SubSystems/TweenTransformSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Systems.Groups; 3 | using Unity.Burst; 4 | using Unity.Collections; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | using Unity.Transforms; 8 | using UnityEngine; 9 | using UnityEngine.Jobs; 10 | 11 | namespace PlasticApps.Systems.SubSystems 12 | { 13 | [UpdateInGroup(typeof(TweenSystems))] 14 | [UpdateAfter(typeof(TweenValuesSystems))] 15 | public class TweenTransformSystem : JobComponentSystem 16 | { 17 | // [BurstCompile] 18 | struct ApplyTranslationJob : IJobParallelForTransform 19 | { 20 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray positions; 21 | 22 | public void Execute(int index, TransformAccess transform) 23 | { 24 | transform.position = positions[index].Value; 25 | } 26 | } 27 | 28 | struct ApplyRotationJob : IJobParallelForTransform 29 | { 30 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray rotations; 31 | 32 | public void Execute(int index, TransformAccess transform) 33 | { 34 | transform.rotation = rotations[index].Value; 35 | } 36 | } 37 | 38 | EntityQuery m_TranslateGroup; 39 | EntityQuery m_RotateGroup; 40 | 41 | protected override void OnCreateManager() 42 | { 43 | m_TranslateGroup = 44 | GetEntityQuery(ComponentType.ReadOnly(typeof(TweenBase)), 45 | ComponentType.ReadOnly(typeof(TweenGameObject)), ComponentType.ReadOnly(typeof(Translation)), 46 | ComponentType.ReadWrite()); 47 | 48 | m_RotateGroup = 49 | GetEntityQuery(ComponentType.ReadOnly(typeof(TweenBase)), 50 | ComponentType.ReadOnly(typeof(TweenGameObject)), ComponentType.ReadOnly(typeof(Rotation)), 51 | ComponentType.ReadWrite()); 52 | } 53 | 54 | protected override JobHandle OnUpdate(JobHandle inputDeps) 55 | { 56 | int translationLength = m_TranslateGroup.CalculateLength(); 57 | int rotationLength = m_RotateGroup.CalculateLength(); 58 | if (translationLength == 0 && rotationLength==0) return inputDeps; 59 | 60 | var translateTransforms = m_TranslateGroup.GetTransformAccessArray(); 61 | var positions = m_TranslateGroup.ToComponentDataArray(Allocator.TempJob); 62 | var applyTranslationJob = new ApplyTranslationJob 63 | { 64 | positions = positions, 65 | }; 66 | 67 | var translateHandle = applyTranslationJob.Schedule(translateTransforms, inputDeps); 68 | 69 | var rotateTransforms = m_RotateGroup.GetTransformAccessArray(); 70 | var rotations = m_RotateGroup.ToComponentDataArray(Allocator.TempJob); 71 | var applyRotationJob = new ApplyRotationJob 72 | { 73 | rotations = rotations, 74 | }; 75 | 76 | return applyRotationJob.Schedule(rotateTransforms, translateHandle); 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/SubSystems/TweenTransformSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c0de6460a1c40589ab0b0e0a9fd9ab9 3 | timeCreated: 1554794023 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenCommandSystem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using PlasticApps.Components; 3 | using PlasticApps.Systems.Groups; 4 | using Unity.Collections; 5 | using Unity.Entities; 6 | using UnityEngine; 7 | 8 | namespace PlasticApps.Systems 9 | { 10 | // main thread for using callbacks 11 | [UpdateBefore(typeof(TweenEraseSystem))] 12 | [UpdateInGroup(typeof(TweenSystems))] 13 | public class TweenCommandSystem : ComponentSystem 14 | { 15 | private EntityCommandBufferSystem m_EndFrameSystem; 16 | 17 | private EntityQuery m_AllTweens; 18 | private EntityQuery m_PlayingTweens; 19 | private EntityQuery m_PausedTweens; 20 | private EntityQuery m_TweenCompleteCallbacks; 21 | 22 | private Dictionary m_Callbacks; 23 | 24 | protected override void OnCreate() 25 | { 26 | m_Callbacks = new Dictionary(); 27 | m_EndFrameSystem = World.GetOrCreateSystem(); 28 | 29 | m_AllTweens = GetEntityQuery(ComponentType.ReadOnly(), ComponentType.Exclude()); 30 | 31 | m_PlayingTweens = GetEntityQuery(ComponentType.ReadOnly(), ComponentType.Exclude(), 32 | ComponentType.Exclude()); 33 | 34 | m_PausedTweens = GetEntityQuery(ComponentType.ReadOnly(), ComponentType.ReadOnly(), 35 | ComponentType.Exclude()); 36 | 37 | m_TweenCompleteCallbacks = GetEntityQuery(ComponentType.ReadOnly(), 38 | ComponentType.ReadOnly()); 39 | } 40 | 41 | protected override void OnDestroy() 42 | { 43 | m_Callbacks.Clear(); 44 | } 45 | 46 | private void AddCommandTween(int tagId, T command, EntityQuery tweens) where T : struct, IComponentData 47 | { 48 | var totalTweens = tweens.CalculateLength(); 49 | if (totalTweens == 0) return; 50 | var entities = tweens.ToEntityArray(Allocator.TempJob); 51 | var tags = tweens.ToComponentDataArray(Allocator.TempJob); 52 | var commandBuffer = m_EndFrameSystem.CreateCommandBuffer(); 53 | 54 | for (int i = 0; i < totalTweens; i++) 55 | { 56 | var entity = entities[i]; 57 | var tag = tags[i]; 58 | if (tagId == -1 || tag.Value == tagId) 59 | { 60 | commandBuffer.AddComponent(entity, command); 61 | } 62 | } 63 | 64 | entities.Dispose(); 65 | tags.Dispose(); 66 | } 67 | 68 | private void RemoveCommandTween(int tagId, EntityQuery tweens) where T : struct, IComponentData 69 | { 70 | var totalTweens = tweens.CalculateLength(); 71 | if (totalTweens == 0) return; 72 | var entities = tweens.ToEntityArray(Allocator.TempJob); 73 | var tags = tweens.ToComponentDataArray(Allocator.TempJob); 74 | var commandBuffer = m_EndFrameSystem.CreateCommandBuffer(); 75 | 76 | for (int i = 0; i < totalTweens; i++) 77 | { 78 | var entity = entities[i]; 79 | var tag = tags[i]; 80 | if (tagId == -1 || tag.Value == tagId) 81 | { 82 | commandBuffer.RemoveComponent(entity, new ComponentType(typeof(T))); 83 | } 84 | } 85 | entities.Dispose(); 86 | tags.Dispose(); 87 | } 88 | 89 | public void StopTween(int tagId = -1) 90 | { 91 | AddCommandTween(tagId, new TweenComplete(), m_AllTweens); 92 | } 93 | 94 | public void PauseTween(int tagId = -1) 95 | { 96 | AddCommandTween(tagId, new TweenPaused(), m_PlayingTweens); 97 | } 98 | 99 | public void UnPauseTween(int tagId = -1) 100 | { 101 | RemoveCommandTween(tagId, m_PausedTweens); 102 | } 103 | 104 | public void AddCompleteCallback(Entity entity, System.Action action) 105 | { 106 | m_Callbacks.Add(entity.Index, action); 107 | EntityManager.AddComponentData(entity, new TweenCompleteCallback {Value = entity.Index}); 108 | } 109 | 110 | protected override void OnUpdate() 111 | { 112 | int total = m_TweenCompleteCallbacks.CalculateLength(); 113 | if (total == 0) return; 114 | var entities = m_TweenCompleteCallbacks.ToEntityArray(Allocator.TempJob); 115 | for (int i = 0; i < total; i++) 116 | { 117 | var id = entities[i].Index; 118 | if (m_Callbacks.ContainsKey(id)) 119 | { 120 | m_Callbacks[id].Invoke(); 121 | m_Callbacks.Remove(id); 122 | } 123 | } 124 | entities.Dispose(); 125 | } 126 | } 127 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenCommandSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a95117fc5c25402eae68fa5c32f7d7e8 3 | timeCreated: 1555059254 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenCompleteSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Jobs; 2 | using Unity.Entities; 3 | using PlasticApps.Components; 4 | using PlasticApps.Systems.Groups; 5 | using Unity.Collections; 6 | using UnityEngine; 7 | using UnityEngine.UIElements; 8 | 9 | namespace PlasticApps.Systems 10 | { 11 | [UpdateAfter(typeof(TweenUpdateSystem))] 12 | [UpdateInGroup(typeof(TweenSystems))] 13 | public class TweenCompleteSystem : JobComponentSystem 14 | { 15 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 16 | struct JobComplete : IJobForEachWithEntity 17 | { 18 | [ReadOnly] public EntityCommandBuffer CommandBuffer; 19 | 20 | public void Execute(Entity entity, int index, ref TweenBase tween) 21 | { 22 | if ((tween.NormalizedTime >= 1 && tween.Reversed == 0) || 23 | (tween.NormalizedTime <= 0 && tween.Reversed == 1)) 24 | { 25 | if (tween.PingPong == 1 && tween.Reversed == 0) 26 | { 27 | tween.Reversed = 1; 28 | tween.Time -= tween.Duration; 29 | } 30 | else if (tween.Loop == -1 || tween.Loop > 0) 31 | { 32 | if (tween.Loop > 0) 33 | tween.Loop -= 1; 34 | tween.Reversed = 0; 35 | tween.Time -= tween.Duration; 36 | } 37 | else 38 | { 39 | CommandBuffer.AddComponent(entity, new TweenComplete()); 40 | } 41 | } 42 | } 43 | } 44 | 45 | private EntityCommandBufferSystem m_EndFrameSystem; 46 | 47 | protected override void OnCreateManager() 48 | { 49 | m_EndFrameSystem = World.GetOrCreateSystem(); 50 | } 51 | 52 | protected override JobHandle OnUpdate(JobHandle inputDeps) 53 | { 54 | var job = new JobComplete() 55 | { 56 | CommandBuffer = m_EndFrameSystem.CreateCommandBuffer() 57 | }.ScheduleSingle(this, inputDeps); 58 | m_EndFrameSystem.AddJobHandleForProducer(job); 59 | return job; 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenCompleteSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afb84494e4bf4a0389466509ec7ef88d 3 | timeCreated: 1554750437 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenEraseSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using PlasticApps.Components; 5 | using PlasticApps.Systems.Groups; 6 | using Unity.Collections; 7 | using Unity.Entities; 8 | using UnityEngine; 9 | using Unity.Jobs; 10 | 11 | namespace PlasticApps.Systems 12 | { 13 | [UpdateBefore(typeof(TweenCompleteSystem))] 14 | [UpdateInGroup(typeof(TweenSystems))] 15 | public class TweenEraseSystem : ComponentSystem 16 | { 17 | private EntityQuery m_QueryCompleted; 18 | 19 | protected override void OnCreateManager() 20 | { 21 | m_QueryCompleted = GetEntityQuery(ComponentType.ReadOnly()); 22 | } 23 | 24 | protected override void OnUpdate() 25 | { 26 | int total = m_QueryCompleted.CalculateLength(); 27 | if (total == 0) return; 28 | var entities = m_QueryCompleted.ToEntityArray(Allocator.TempJob); 29 | 30 | for (int i = 0; i < total; ++i) 31 | PostUpdateCommands.DestroyEntity(entities[i]); 32 | 33 | entities.Dispose(); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenEraseSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df7a9c480458948feb353b45e4083410 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenPositionSystem.cs: -------------------------------------------------------------------------------- 1 | //#define SINGLE_ENTITY 2 | 3 | #define JOB_EACH 4 | using PlasticApps.Systems.Groups; 5 | using PlasticApps.Components; 6 | using Unity.Burst; 7 | using Unity.Collections; 8 | using Unity.Entities; 9 | using Unity.Jobs; 10 | using Unity.Mathematics; 11 | using Unity.Transforms; 12 | using UnityEngine; 13 | using UnityEngine.Experimental.PlayerLoop; 14 | 15 | namespace PlasticApps.Systems 16 | { 17 | [UpdateInGroup(typeof(TweenValuesSystems))] 18 | public class TweenPositionSystem : JobComponentSystem 19 | { 20 | // first implementation tween attach to source entity 21 | #if SINGLE_ENTITY 22 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 23 | struct TweenValueJob : IJobForEach 24 | { 25 | public void Execute([ReadOnly] ref TweenBase tween, [ReadOnly] ref TweenMove move, 26 | ref Translation position) 27 | { 28 | position.Value = math.lerp(move.From, move.To, tween.Value); 29 | } 30 | } 31 | 32 | protected override JobHandle OnUpdate(JobHandle inputDeps) 33 | { 34 | return new TweenValueJob().Schedule(this, inputDeps); 35 | } 36 | 37 | #else 38 | #if !JOB_EACH 39 | // second implementation tween entity with tweening entity 40 | // [BurstCompile] 41 | struct TweenValueJob : IJobParallelFor 42 | { 43 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Tweens; 44 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Moves; 45 | [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Bases; 46 | 47 | [NativeDisableParallelForRestriction] public ComponentDataFromEntity Translations; 48 | 49 | public void Execute(int index) 50 | { 51 | Entity transformEntity = Tweens[index].Value; 52 | var move = Moves[index]; 53 | var tween = Bases[index]; 54 | if (Translations.Exists(transformEntity)) 55 | { 56 | var v = math.lerp(move.From, move.To, tween.Value); 57 | Translations[transformEntity] = new Translation {Value = v}; 58 | } 59 | } 60 | } 61 | 62 | private EntityQuery m_QueryCompleted; 63 | 64 | protected override void OnCreate() 65 | { 66 | m_QueryCompleted = GetEntityQuery( 67 | ComponentType.ReadOnly(), 68 | ComponentType.ReadOnly(), 69 | ComponentType.ReadOnly(), 70 | ComponentType.Exclude(), 71 | ComponentType.Exclude()); 72 | } 73 | 74 | protected override JobHandle OnUpdate(JobHandle inputDeps) 75 | { 76 | int total = m_QueryCompleted.CalculateLength(); 77 | var moveRigidbodies = new TweenValueJob 78 | { 79 | Translations = GetComponentDataFromEntity(false), 80 | Tweens = m_QueryCompleted.ToComponentDataArray(Allocator.TempJob), 81 | Moves = m_QueryCompleted.ToComponentDataArray(Allocator.TempJob), 82 | Bases = m_QueryCompleted.ToComponentDataArray(Allocator.TempJob) 83 | }.Schedule(total, 64, inputDeps); 84 | 85 | return moveRigidbodies; 86 | } 87 | #else 88 | // 3 implementation 89 | // [BurstCompile] 90 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 91 | struct TweenValueJob : IJobForEach 92 | { 93 | [NativeDisableParallelForRestriction] public ComponentDataFromEntity Translations; 94 | 95 | public void Execute([ReadOnly] ref TweenBase tween, [ReadOnly] ref TweenMove move, 96 | [ReadOnly] ref TweenEntity entity) 97 | { 98 | if (Translations.Exists(entity.Value)) 99 | { 100 | Translations[entity.Value] = new Translation 101 | { 102 | Value = math.lerp(move.From, move.To, tween.Value) 103 | }; 104 | } 105 | } 106 | } 107 | 108 | protected override JobHandle OnUpdate(JobHandle inputDeps) 109 | { 110 | return new TweenValueJob 111 | { 112 | Translations = GetComponentDataFromEntity() 113 | }.Schedule(this, inputDeps); 114 | } 115 | #endif 116 | #endif 117 | } 118 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenPositionSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ba2b67f33214005a92abcb50224e3d3 3 | timeCreated: 1554796962 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenRotationSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Systems.Groups; 3 | using Unity.Collections; 4 | using Unity.Entities; 5 | using Unity.Jobs; 6 | using Unity.Mathematics; 7 | using Unity.Transforms; 8 | 9 | namespace PlasticApps.Systems 10 | { 11 | [UpdateInGroup(typeof(TweenValuesSystems))] 12 | public class TweenRotationSystem : JobComponentSystem 13 | { 14 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 15 | struct TweenValueJob : IJobForEach 16 | { 17 | [NativeDisableParallelForRestriction] public ComponentDataFromEntity Rotations; 18 | 19 | public void Execute([ReadOnly] ref TweenBase tween, [ReadOnly] ref TweenRotate rotate, 20 | [ReadOnly] ref TweenEntity entity) 21 | { 22 | if (Rotations.Exists(entity.Value)) 23 | { 24 | Rotations[entity.Value] = new Rotation 25 | { 26 | Value = math.slerp(rotate.From, rotate.To, tween.Value) 27 | }; 28 | } 29 | } 30 | } 31 | 32 | protected override JobHandle OnUpdate(JobHandle inputDeps) 33 | { 34 | return new TweenValueJob 35 | { 36 | Rotations = GetComponentDataFromEntity() 37 | }.Schedule(this, inputDeps); 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenRotationSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5bf33a23a1c42b890eae6aa202bbcfe 3 | timeCreated: 1554797708 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenScaleSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Systems.Groups; 2 | using PlasticApps.Components; 3 | using Unity.Collections; 4 | using Unity.Entities; 5 | using Unity.Jobs; 6 | using Unity.Mathematics; 7 | using Unity.Transforms; 8 | 9 | namespace PlasticApps.Systems 10 | { 11 | [UpdateInGroup(typeof(TweenValuesSystems))] 12 | public class TweenScaleSystem : JobComponentSystem 13 | { 14 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 15 | struct TweenValueJob : IJobForEach 16 | { 17 | [NativeDisableParallelForRestriction] public ComponentDataFromEntity Scales; 18 | 19 | public void Execute([ReadOnly] ref TweenBase tween, [ReadOnly] ref TweenScale scale, 20 | [ReadOnly] ref TweenEntity entity) 21 | { 22 | if (Scales.Exists(entity.Value)) 23 | { 24 | Scales[entity.Value] = new NonUniformScale 25 | { 26 | Value = math.lerp(scale.From, scale.To, tween.Value) 27 | }; 28 | } 29 | } 30 | } 31 | 32 | protected override JobHandle OnUpdate(JobHandle inputDeps) 33 | { 34 | return new TweenValueJob 35 | { 36 | Scales = GetComponentDataFromEntity() 37 | }.Schedule(this, inputDeps); 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenScaleSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 222320a24aab4faf9cfd7373827c5db5 3 | timeCreated: 1554797902 -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenUpdateSystem.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Systems.Groups; 3 | using Unity.Burst; 4 | using Unity.Collections; 5 | using Unity.Entities; 6 | using Unity.Jobs; 7 | using Unity.Mathematics; 8 | using UnityEngine; 9 | 10 | namespace PlasticApps.Systems 11 | { 12 | [UpdateInGroup(typeof(TweenSystems))] 13 | public class TweenUpdateSystem : JobComponentSystem 14 | { 15 | [BurstCompile] 16 | [ExcludeComponent(typeof(TweenPaused), typeof(TweenComplete))] 17 | struct UpdateJob : IJobForEach 18 | { 19 | public float deltaTime; 20 | 21 | public void Execute(ref TweenBase tween) 22 | { 23 | float runningTime = tween.Time + deltaTime; 24 | tween.Time = runningTime; 25 | 26 | if (runningTime >= 0) 27 | { 28 | float percentage = tween.Duration > 0 ? runningTime / tween.Duration : 1.0f; 29 | tween.NormalizedTime = math.clamp( 30 | tween.Reversed == 1 ? 1.0f - percentage : percentage, 31 | 0.0f, 1.0f 32 | ); 33 | } 34 | } 35 | } 36 | 37 | protected override JobHandle OnUpdate(JobHandle inputDeps) 38 | { 39 | float dt = Time.deltaTime; 40 | UpdateJob job = new UpdateJob 41 | { 42 | deltaTime = dt 43 | }; 44 | return job.Schedule(this, inputDeps); 45 | } 46 | 47 | // same as JobForEach - but more expensive? GC? 48 | // [BurstCompile] 49 | // struct UpdateJob : IJobParallelFor 50 | // { 51 | // [ReadOnly] public float deltaTime; 52 | // 53 | // [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Entities; 54 | // 55 | // [DeallocateOnJobCompletion] [ReadOnly] public NativeArray Tweens; 56 | // [NativeDisableParallelForRestriction] public ComponentDataFromEntity OutTweens; 57 | // 58 | // public void Execute(int index) 59 | // { 60 | // var entity = Entities[index]; 61 | // if (OutTweens.Exists(entity)) 62 | // { 63 | // var tween = OutTweens[entity]; 64 | // float runningTime = tween.Time + deltaTime; 65 | // float percentage = tween.Duration > 0 ? runningTime / tween.Duration : 1.0f; 66 | // tween.Time = runningTime; 67 | // tween.NormalizedTime = math.clamp( 68 | // tween.Reversed == 1 ? 1.0f - percentage : percentage, 69 | // 0.0f, 1.0f 70 | // ); 71 | // OutTweens[entity] = tween; 72 | // } 73 | // } 74 | // } 75 | // 76 | // private EntityQuery m_QueryCompleted; 77 | // 78 | // protected override void OnCreate() 79 | // { 80 | // m_QueryCompleted = GetEntityQuery( 81 | // ComponentType.ReadOnly(), 82 | // ComponentType.Exclude(), 83 | // ComponentType.Exclude() 84 | // ); 85 | // } 86 | // 87 | // protected override JobHandle OnUpdate(JobHandle inputDeps) 88 | // { 89 | // var dt = Time.deltaTime; 90 | // int total = m_QueryCompleted.CalculateLength(); 91 | // 92 | // return new UpdateJob 93 | // { 94 | //// Tweens = m_QueryCompleted.ToComponentDataArray(Allocator.TempJob), 95 | // Entities = m_QueryCompleted.ToEntityArray(Allocator.TempJob), 96 | // OutTweens = GetComponentDataFromEntity(), 97 | // deltaTime = dt 98 | // }.Schedule(total, 1, inputDeps); 99 | // } 100 | } 101 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Systems/TweenUpdateSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf57817359054f4baeb6824976c3dbdc 3 | timeCreated: 1554751317 -------------------------------------------------------------------------------- /Assets/PlasticApps/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93968a2bda45f4c2cb688d78cb319900 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera2.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Camera2 10 | m_TargetType: 11 | m_NativeTypeID: 4 12 | m_ManagedTypePPtr: {fileID: 0} 13 | m_ManagedTypeFallback: 14 | m_Properties: 15 | - target: {fileID: 0} 16 | propertyPath: m_LocalRotation.x 17 | value: 0.29183015 18 | objectReference: {fileID: 0} 19 | - target: {fileID: 0} 20 | propertyPath: m_LocalRotation.y 21 | value: 0.34350842 22 | objectReference: {fileID: 0} 23 | - target: {fileID: 0} 24 | propertyPath: m_LocalRotation.z 25 | value: -0.123490036 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 0} 28 | propertyPath: m_LocalRotation.w 29 | value: 0.88407433 30 | objectReference: {fileID: 0} 31 | - target: {fileID: 0} 32 | propertyPath: m_LocalPosition.x 33 | value: 21.2 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 0} 36 | propertyPath: m_LocalPosition.y 37 | value: 30.4 38 | objectReference: {fileID: 0} 39 | - target: {fileID: 0} 40 | propertyPath: m_LocalPosition.z 41 | value: 19.2 42 | objectReference: {fileID: 0} 43 | - target: {fileID: 0} 44 | propertyPath: m_LocalScale.x 45 | value: 1 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 0} 48 | propertyPath: m_LocalScale.y 49 | value: 1 50 | objectReference: {fileID: 0} 51 | - target: {fileID: 0} 52 | propertyPath: m_LocalScale.z 53 | value: 1 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 0} 56 | propertyPath: m_RootOrder 57 | value: 0 58 | objectReference: {fileID: 0} 59 | - target: {fileID: 0} 60 | propertyPath: m_LocalEulerAnglesHint.x 61 | value: 36.93 62 | objectReference: {fileID: 0} 63 | - target: {fileID: 0} 64 | propertyPath: m_LocalEulerAnglesHint.y 65 | value: 42.04 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 0} 68 | propertyPath: m_LocalEulerAnglesHint.z 69 | value: -1.28 70 | objectReference: {fileID: 0} 71 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera2.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4246726d57ec446d1af0ddf629ebf6a7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera3.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Camera3 10 | m_TargetType: 11 | m_NativeTypeID: 4 12 | m_ManagedTypePPtr: {fileID: 0} 13 | m_ManagedTypeFallback: 14 | m_Properties: 15 | - target: {fileID: 0} 16 | propertyPath: m_LocalRotation.x 17 | value: 0.2959581 18 | objectReference: {fileID: 0} 19 | - target: {fileID: 0} 20 | propertyPath: m_LocalRotation.y 21 | value: 0 22 | objectReference: {fileID: 0} 23 | - target: {fileID: 0} 24 | propertyPath: m_LocalRotation.z 25 | value: 0 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 0} 28 | propertyPath: m_LocalRotation.w 29 | value: 0.95520097 30 | objectReference: {fileID: 0} 31 | - target: {fileID: 0} 32 | propertyPath: m_LocalPosition.x 33 | value: 86.8 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 0} 36 | propertyPath: m_LocalPosition.y 37 | value: 77.6 38 | objectReference: {fileID: 0} 39 | - target: {fileID: 0} 40 | propertyPath: m_LocalPosition.z 41 | value: -50 42 | objectReference: {fileID: 0} 43 | - target: {fileID: 0} 44 | propertyPath: m_LocalScale.x 45 | value: 1 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 0} 48 | propertyPath: m_LocalScale.y 49 | value: 1 50 | objectReference: {fileID: 0} 51 | - target: {fileID: 0} 52 | propertyPath: m_LocalScale.z 53 | value: 1 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 0} 56 | propertyPath: m_RootOrder 57 | value: 0 58 | objectReference: {fileID: 0} 59 | - target: {fileID: 0} 60 | propertyPath: m_LocalEulerAnglesHint.x 61 | value: 34.43 62 | objectReference: {fileID: 0} 63 | - target: {fileID: 0} 64 | propertyPath: m_LocalEulerAnglesHint.y 65 | value: 0 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 0} 68 | propertyPath: m_LocalEulerAnglesHint.z 69 | value: 0 70 | objectReference: {fileID: 0} 71 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera3.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 157f0d47186b1438c9c0f16051252806 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera4.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Camera4 10 | m_TargetType: 11 | m_NativeTypeID: 4 12 | m_ManagedTypePPtr: {fileID: 0} 13 | m_ManagedTypeFallback: 14 | m_Properties: 15 | - target: {fileID: 0} 16 | propertyPath: m_LocalRotation.x 17 | value: 0.57818025 18 | objectReference: {fileID: 0} 19 | - target: {fileID: 0} 20 | propertyPath: m_LocalRotation.y 21 | value: 0.085680746 22 | objectReference: {fileID: 0} 23 | - target: {fileID: 0} 24 | propertyPath: m_LocalRotation.z 25 | value: -0.06122836 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 0} 28 | propertyPath: m_LocalRotation.w 29 | value: 0.8090844 30 | objectReference: {fileID: 0} 31 | - target: {fileID: 0} 32 | propertyPath: m_LocalPosition.x 33 | value: 79.8 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 0} 36 | propertyPath: m_LocalPosition.y 37 | value: 59.8 38 | objectReference: {fileID: 0} 39 | - target: {fileID: 0} 40 | propertyPath: m_LocalPosition.z 41 | value: 71.4 42 | objectReference: {fileID: 0} 43 | - target: {fileID: 0} 44 | propertyPath: m_LocalScale.x 45 | value: 1 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 0} 48 | propertyPath: m_LocalScale.y 49 | value: 1 50 | objectReference: {fileID: 0} 51 | - target: {fileID: 0} 52 | propertyPath: m_LocalScale.z 53 | value: 1 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 0} 56 | propertyPath: m_RootOrder 57 | value: 0 58 | objectReference: {fileID: 0} 59 | - target: {fileID: 0} 60 | propertyPath: m_LocalEulerAnglesHint.x 61 | value: 71.1 62 | objectReference: {fileID: 0} 63 | - target: {fileID: 0} 64 | propertyPath: m_LocalEulerAnglesHint.y 65 | value: 12.09 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 0} 68 | propertyPath: m_LocalEulerAnglesHint.z 69 | value: 0 70 | objectReference: {fileID: 0} 71 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Camera4.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe83021ec4b90476c892802bd053ddcb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Cube.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &851407407286961622 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4952631542493803003} 12 | - component: {fileID: 6635405015675209877} 13 | - component: {fileID: 3084407560544652254} 14 | m_Layer: 0 15 | m_Name: Cube (4) 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &4952631542493803003 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 851407407286961622} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: [] 32 | m_Father: {fileID: 0} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!33 &6635405015675209877 36 | MeshFilter: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | m_GameObject: {fileID: 851407407286961622} 42 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 43 | --- !u!23 &3084407560544652254 44 | MeshRenderer: 45 | m_ObjectHideFlags: 0 46 | m_CorrespondingSourceObject: {fileID: 0} 47 | m_PrefabInstance: {fileID: 0} 48 | m_PrefabAsset: {fileID: 0} 49 | m_GameObject: {fileID: 851407407286961622} 50 | m_Enabled: 1 51 | m_CastShadows: 1 52 | m_ReceiveShadows: 0 53 | m_DynamicOccludee: 0 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_RenderingLayerMask: 1 58 | m_RendererPriority: 0 59 | m_Materials: 60 | - {fileID: 2100000, guid: 84066d2346a5b4154b2bd4d4a2272845, type: 2} 61 | m_StaticBatchInfo: 62 | firstSubMesh: 0 63 | subMeshCount: 0 64 | m_StaticBatchRoot: {fileID: 0} 65 | m_ProbeAnchor: {fileID: 0} 66 | m_LightProbeVolumeOverride: {fileID: 0} 67 | m_ScaleInLightmap: 1 68 | m_PreserveUVs: 0 69 | m_IgnoreNormalsForChartDetection: 0 70 | m_ImportantGI: 0 71 | m_StitchLightmapSeams: 0 72 | m_SelectedEditorRenderState: 3 73 | m_MinimumChartSize: 4 74 | m_AutoUVMaxDistance: 0.5 75 | m_AutoUVMaxAngle: 89 76 | m_LightmapParameters: {fileID: 0} 77 | m_SortingLayerID: 0 78 | m_SortingLayer: 0 79 | m_SortingOrder: 0 80 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Cube.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9020ca8b8b06e4644b3d1f9d69932c6a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Test.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Test 11 | m_Shader: {fileID: 10703, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 1 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BackTex: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _DownTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _EmissionMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _FrontTex: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _LeftTex: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _MainTex: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _MetallicGlossMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _OcclusionMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _ParallaxMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _RightTex: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _UpTex: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | - _BumpScale: 1 84 | - _Cutoff: 0.5 85 | - _DetailNormalMapScale: 1 86 | - _DstBlend: 0 87 | - _GlossMapScale: 1 88 | - _Glossiness: 0 89 | - _GlossyReflections: 0 90 | - _Metallic: 0 91 | - _Mode: 0 92 | - _OcclusionStrength: 1 93 | - _Parallax: 0.02 94 | - _SmoothnessTextureChannel: 0 95 | - _SpecularHighlights: 0 96 | - _SrcBlend: 1 97 | - _UVSec: 0 98 | - _ZWrite: 1 99 | m_Colors: 100 | - _Color: {r: 1, g: 1, b: 1, a: 1} 101 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 102 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/Test.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84066d2346a5b4154b2bd4d4a2272845 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenCube.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &5885000119006282108 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 2215840075097666897} 12 | - component: {fileID: 463527024897756223} 13 | - component: {fileID: 8121523666190241652} 14 | - component: {fileID: 5885000119006281987} 15 | m_Layer: 0 16 | m_Name: TweenCube 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &2215840075097666897 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 5885000119006282108} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!33 &463527024897756223 37 | MeshFilter: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 5885000119006282108} 43 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 44 | --- !u!23 &8121523666190241652 45 | MeshRenderer: 46 | m_ObjectHideFlags: 0 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 5885000119006282108} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_DynamicOccludee: 1 55 | m_MotionVectors: 1 56 | m_LightProbeUsage: 1 57 | m_ReflectionProbeUsage: 1 58 | m_RenderingLayerMask: 1 59 | m_RendererPriority: 0 60 | m_Materials: 61 | - {fileID: 2100000, guid: 84066d2346a5b4154b2bd4d4a2272845, type: 2} 62 | m_StaticBatchInfo: 63 | firstSubMesh: 0 64 | subMeshCount: 0 65 | m_StaticBatchRoot: {fileID: 0} 66 | m_ProbeAnchor: {fileID: 0} 67 | m_LightProbeVolumeOverride: {fileID: 0} 68 | m_ScaleInLightmap: 1 69 | m_PreserveUVs: 0 70 | m_IgnoreNormalsForChartDetection: 0 71 | m_ImportantGI: 0 72 | m_StitchLightmapSeams: 0 73 | m_SelectedEditorRenderState: 3 74 | m_MinimumChartSize: 4 75 | m_AutoUVMaxDistance: 0.5 76 | m_AutoUVMaxAngle: 89 77 | m_LightmapParameters: {fileID: 0} 78 | m_SortingLayerID: 0 79 | m_SortingLayer: 0 80 | m_SortingOrder: 0 81 | --- !u!114 &5885000119006281987 82 | MonoBehaviour: 83 | m_ObjectHideFlags: 0 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInstance: {fileID: 0} 86 | m_PrefabAsset: {fileID: 0} 87 | m_GameObject: {fileID: 5885000119006282108} 88 | m_Enabled: 1 89 | m_EditorHideFlags: 0 90 | m_Script: {fileID: 11500000, guid: 661795649ca234f6495572acd21c8ff7, type: 3} 91 | m_Name: 92 | m_EditorClassIdentifier: 93 | duration: 1 94 | ease: 0 95 | target: {x: 0, y: 10, z: 0} 96 | isLoop: 1 97 | isPingPong: 1 98 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenCube.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4db8cfa56dcc7462d88b4619e6b6e1a7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenMoveStressTest.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps.Components; 2 | using PlasticApps.Components.Ease; 3 | using Unity.Collections; 4 | using Unity.Entities; 5 | using Unity.Mathematics; 6 | using Unity.Transforms; 7 | using UnityEngine; 8 | using Random = UnityEngine.Random; 9 | 10 | namespace PlasticApps.Test 11 | { 12 | public class TweenMoveStressTest : MonoBehaviour 13 | { 14 | public GameObject prefab; 15 | 16 | public int CountX = 100; 17 | public int CountY = 100; 18 | 19 | [System.Serializable] 20 | public struct TweenProp 21 | { 22 | public float duration; 23 | public EaseType easeType; 24 | public int loop; 25 | public bool pinPong; 26 | } 27 | 28 | public TweenProp moveProp; 29 | public TweenProp scaleProp; 30 | public TweenProp rotateProp; 31 | 32 | public float height = 10.0f; 33 | public float timeOffsetX = 0.1f; 34 | public float timeOffsetY = 0.2f; 35 | 36 | [Range(0.5f, 4)] public float timeScale = 1; 37 | 38 | private TweenProp m_LastMove; 39 | private TweenProp m_LastScale; 40 | 41 | void Start() 42 | { 43 | m_LastMove = moveProp; 44 | m_LastScale = scaleProp; 45 | 46 | Time.timeScale = timeScale; 47 | 48 | Entity prefab = GameObjectConversionUtility.ConvertGameObjectHierarchy(this.prefab, World.Active); 49 | var entityManager = World.Active.EntityManager; 50 | 51 | float halfX = CountX / 2.0f; 52 | float halfY = CountX / 2.0f; 53 | Vector2 c = new Vector2(halfX, halfY); 54 | 55 | for (int x = 0; x < CountX; x++) 56 | { 57 | for (int y = 0; y < CountY; y++) 58 | { 59 | var instance = entityManager.Instantiate(prefab); 60 | var position = transform.TransformPoint(new float3(x * 1.3F, 61 | noise.cnoise(new float2(x, y) * 0.21F) * 2, y * 1.3F)); 62 | 63 | if (entityManager.HasComponent(instance, typeof(Translation))) 64 | entityManager.SetComponentData(instance, new Translation {Value = position}); 65 | else 66 | entityManager.AddComponentData(instance, new Translation {Value = position}); 67 | 68 | if (entityManager.HasComponent(instance, typeof(NonUniformScale))) 69 | entityManager.SetComponentData(instance, new NonUniformScale {Value = Vector3.one}); 70 | else 71 | entityManager.AddComponentData(instance, new NonUniformScale {Value = Vector3.one}); 72 | 73 | if (entityManager.HasComponent(instance, typeof(RotationEulerXYZ))) 74 | entityManager.SetComponentData(instance, new RotationEulerXYZ()); 75 | else 76 | entityManager.AddComponentData(instance, new RotationEulerXYZ()); 77 | 78 | 79 | float offset = 1.0f - Vector2.Distance(new Vector2(x, y), c) / c.magnitude; 80 | offset *= height; 81 | 82 | float tx = timeOffsetX * Mathf.Min(Mathf.Abs(CountX - x), x); 83 | float ty = timeOffsetY; // * Mathf.Abs(y - halfY);// * Mathf.Min(Mathf.Abs(CountY - y), y); 84 | 85 | Tween.Delay((tx + ty), () => 86 | { 87 | // 88 | Tween.MoveEntity(instance, moveProp.duration, 89 | position + Vector3.up * offset, position, 90 | moveProp.easeType, moveProp.loop, moveProp.pinPong, x); 91 | 92 | Tween.ScaleEntity(instance, scaleProp.duration, 93 | Vector3.one * 0.01f, Vector3.one, 94 | scaleProp.easeType, scaleProp.loop, scaleProp.pinPong, x); 95 | 96 | Tween.RotateEntity(instance, rotateProp.duration, 97 | new Vector3(-30, 0, 0) * Mathf.Deg2Rad, 98 | new Vector3(60, 360, 0) * Mathf.Deg2Rad, 99 | rotateProp.easeType, rotateProp.loop, rotateProp.pinPong, x); 100 | }); 101 | } 102 | } 103 | } 104 | 105 | void Update() 106 | { 107 | if (!m_LastMove.Equals(moveProp)) 108 | { 109 | m_LastMove = moveProp; 110 | ForceTweenUpdate(m_LastMove.duration, m_LastMove.easeType, false); 111 | } 112 | if (!m_LastScale.Equals(scaleProp)) 113 | { 114 | m_LastScale = scaleProp; 115 | ForceTweenUpdate(m_LastScale.duration, m_LastScale.easeType, true); 116 | } 117 | } 118 | 119 | void ForceTweenUpdate(float duration, EaseType easeType, bool scale) 120 | { 121 | var manager = World.Active.EntityManager; 122 | var entities = manager.GetAllEntities(Allocator.TempJob); 123 | for (var i = 0; i < entities.Length; i++) 124 | { 125 | var entity = entities[i]; 126 | if (manager.HasComponent(entity, scale ? typeof(TweenScale) : typeof(TweenMove))) 127 | { 128 | var t = manager.GetComponentData(entity); 129 | manager.RemoveComponent(entity, TypeManager.GetType(t.EaseTypeId)); 130 | t.Duration = duration; 131 | t.EaseTypeId = Tween.AddEase(entity, easeType); 132 | manager.SetComponentData(entity, t); 133 | } 134 | } 135 | entities.Dispose(); 136 | } 137 | } 138 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenMoveStressTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 178f08fb6daf49058edd3e47d9b2c10d 3 | timeCreated: 1554806234 -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenMoveTest.cs: -------------------------------------------------------------------------------- 1 | using PlasticApps; 2 | using PlasticApps.Components.Ease; 3 | using UnityEngine; 4 | 5 | public class TweenMoveTest : MonoBehaviour 6 | { 7 | public float delay = 0; 8 | public float duration; 9 | public EaseType ease; 10 | public Vector3 target = Vector3.up * 10; 11 | public bool isLoop; 12 | public bool isPingPong; 13 | 14 | void Awake() 15 | { 16 | Tween.Delay(delay, 17 | () => { Tween.MoveGameObject(gameObject, duration, transform.position + target, ease, isLoop ? -1 : 0, isPingPong); }); 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/PlasticApps/Test/TweenMoveTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 661795649ca234f6495572acd21c8ff7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PlasticApps/Tween.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a49f8ffb63e0a47719d692ffbb4630a7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ae11d58c79e34e8ab4f80823a4b594f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a07397b89d5cb408cbcd8d75d5f2412b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48314799a3d0d4d21b440bea84dc9b9a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains/Unity3DRider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97191c24764fa46eda510406f844c7cc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f704ae4b4f98ae41a0bce26658850c1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/01.Wave.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 170076734} 41 | m_IndirectSpecularColor: {r: 0.44657868, g: 0.49641263, b: 0.5748171, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 10 60 | m_AtlasSize: 512 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 256 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 2 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ShowResolutionOverlay: 1 98 | m_ExportTrainingData: 0 99 | m_LightingDataAsset: {fileID: 0} 100 | m_UseShadowmask: 1 101 | --- !u!196 &4 102 | NavMeshSettings: 103 | serializedVersion: 2 104 | m_ObjectHideFlags: 0 105 | m_BuildSettings: 106 | serializedVersion: 2 107 | agentTypeID: 0 108 | agentRadius: 0.5 109 | agentHeight: 2 110 | agentSlope: 45 111 | agentClimb: 0.4 112 | ledgeDropHeight: 0 113 | maxJumpAcrossDistance: 0 114 | minRegionArea: 2 115 | manualCellSize: 0 116 | cellSize: 0.16666667 117 | manualTileSize: 0 118 | tileSize: 256 119 | accuratePlacement: 0 120 | debug: 121 | m_Flags: 0 122 | m_NavMeshData: {fileID: 0} 123 | --- !u!1 &170076733 124 | GameObject: 125 | m_ObjectHideFlags: 0 126 | m_CorrespondingSourceObject: {fileID: 0} 127 | m_PrefabInstance: {fileID: 0} 128 | m_PrefabAsset: {fileID: 0} 129 | serializedVersion: 6 130 | m_Component: 131 | - component: {fileID: 170076735} 132 | - component: {fileID: 170076734} 133 | m_Layer: 0 134 | m_Name: Directional Light 135 | m_TagString: Untagged 136 | m_Icon: {fileID: 0} 137 | m_NavMeshLayer: 0 138 | m_StaticEditorFlags: 0 139 | m_IsActive: 1 140 | --- !u!108 &170076734 141 | Light: 142 | m_ObjectHideFlags: 0 143 | m_CorrespondingSourceObject: {fileID: 0} 144 | m_PrefabInstance: {fileID: 0} 145 | m_PrefabAsset: {fileID: 0} 146 | m_GameObject: {fileID: 170076733} 147 | m_Enabled: 1 148 | serializedVersion: 9 149 | m_Type: 1 150 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 151 | m_Intensity: 1 152 | m_Range: 10 153 | m_SpotAngle: 30 154 | m_InnerSpotAngle: 21.802082 155 | m_CookieSize: 10 156 | m_Shadows: 157 | m_Type: 0 158 | m_Resolution: -1 159 | m_CustomResolution: -1 160 | m_Strength: 1 161 | m_Bias: 0.05 162 | m_NormalBias: 0.4 163 | m_NearPlane: 0.2 164 | m_CullingMatrixOverride: 165 | e00: 1 166 | e01: 0 167 | e02: 0 168 | e03: 0 169 | e10: 0 170 | e11: 1 171 | e12: 0 172 | e13: 0 173 | e20: 0 174 | e21: 0 175 | e22: 1 176 | e23: 0 177 | e30: 0 178 | e31: 0 179 | e32: 0 180 | e33: 1 181 | m_UseCullingMatrixOverride: 0 182 | m_Cookie: {fileID: 0} 183 | m_DrawHalo: 0 184 | m_Flare: {fileID: 0} 185 | m_RenderMode: 0 186 | m_CullingMask: 187 | serializedVersion: 2 188 | m_Bits: 4294967295 189 | m_RenderingLayerMask: 1 190 | m_Lightmapping: 1 191 | m_LightShadowCasterMode: 0 192 | m_AreaSize: {x: 1, y: 1} 193 | m_BounceIntensity: 1 194 | m_ColorTemperature: 6570 195 | m_UseColorTemperature: 0 196 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 197 | m_UseBoundingSphereOverride: 0 198 | m_ShadowRadius: 0 199 | m_ShadowAngle: 0 200 | --- !u!4 &170076735 201 | Transform: 202 | m_ObjectHideFlags: 0 203 | m_CorrespondingSourceObject: {fileID: 0} 204 | m_PrefabInstance: {fileID: 0} 205 | m_PrefabAsset: {fileID: 0} 206 | m_GameObject: {fileID: 170076733} 207 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 208 | m_LocalPosition: {x: 0, y: 3, z: 0} 209 | m_LocalScale: {x: 1, y: 1, z: 1} 210 | m_Children: [] 211 | m_Father: {fileID: 0} 212 | m_RootOrder: 1 213 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 214 | --- !u!1 &534669902 215 | GameObject: 216 | m_ObjectHideFlags: 0 217 | m_CorrespondingSourceObject: {fileID: 0} 218 | m_PrefabInstance: {fileID: 0} 219 | m_PrefabAsset: {fileID: 0} 220 | serializedVersion: 6 221 | m_Component: 222 | - component: {fileID: 534669905} 223 | - component: {fileID: 534669904} 224 | - component: {fileID: 534669903} 225 | m_Layer: 0 226 | m_Name: Main Camera 227 | m_TagString: MainCamera 228 | m_Icon: {fileID: 0} 229 | m_NavMeshLayer: 0 230 | m_StaticEditorFlags: 0 231 | m_IsActive: 1 232 | --- !u!81 &534669903 233 | AudioListener: 234 | m_ObjectHideFlags: 0 235 | m_CorrespondingSourceObject: {fileID: 0} 236 | m_PrefabInstance: {fileID: 0} 237 | m_PrefabAsset: {fileID: 0} 238 | m_GameObject: {fileID: 534669902} 239 | m_Enabled: 1 240 | --- !u!20 &534669904 241 | Camera: 242 | m_ObjectHideFlags: 0 243 | m_CorrespondingSourceObject: {fileID: 0} 244 | m_PrefabInstance: {fileID: 0} 245 | m_PrefabAsset: {fileID: 0} 246 | m_GameObject: {fileID: 534669902} 247 | m_Enabled: 1 248 | serializedVersion: 2 249 | m_ClearFlags: 2 250 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 251 | m_projectionMatrixMode: 1 252 | m_GateFitMode: 2 253 | m_FOVAxisMode: 0 254 | m_SensorSize: {x: 36, y: 24} 255 | m_LensShift: {x: 0, y: 0} 256 | m_FocalLength: 50 257 | m_NormalizedViewPortRect: 258 | serializedVersion: 2 259 | x: 0 260 | y: 0 261 | width: 1 262 | height: 1 263 | near clip plane: 0.3 264 | far clip plane: 1000 265 | field of view: 60 266 | orthographic: 0 267 | orthographic size: 5 268 | m_Depth: -1 269 | m_CullingMask: 270 | serializedVersion: 2 271 | m_Bits: 4294967295 272 | m_RenderingPath: -1 273 | m_TargetTexture: {fileID: 0} 274 | m_TargetDisplay: 0 275 | m_TargetEye: 3 276 | m_HDR: 0 277 | m_AllowMSAA: 0 278 | m_AllowDynamicResolution: 0 279 | m_ForceIntoRT: 0 280 | m_OcclusionCulling: 0 281 | m_StereoConvergence: 10 282 | m_StereoSeparation: 0.022 283 | --- !u!4 &534669905 284 | Transform: 285 | m_ObjectHideFlags: 0 286 | m_CorrespondingSourceObject: {fileID: 0} 287 | m_PrefabInstance: {fileID: 0} 288 | m_PrefabAsset: {fileID: 0} 289 | m_GameObject: {fileID: 534669902} 290 | m_LocalRotation: {x: 0.2959581, y: 0, z: 0, w: 0.95520097} 291 | m_LocalPosition: {x: 86.8, y: 77.6, z: -50} 292 | m_LocalScale: {x: 1, y: 1, z: 1} 293 | m_Children: [] 294 | m_Father: {fileID: 0} 295 | m_RootOrder: 0 296 | m_LocalEulerAnglesHint: {x: 34.43, y: 0, z: 0} 297 | --- !u!1 &1588233072 298 | GameObject: 299 | m_ObjectHideFlags: 0 300 | m_CorrespondingSourceObject: {fileID: 0} 301 | m_PrefabInstance: {fileID: 0} 302 | m_PrefabAsset: {fileID: 0} 303 | serializedVersion: 6 304 | m_Component: 305 | - component: {fileID: 1588233074} 306 | - component: {fileID: 1588233073} 307 | m_Layer: 0 308 | m_Name: Grid 309 | m_TagString: Untagged 310 | m_Icon: {fileID: 0} 311 | m_NavMeshLayer: 0 312 | m_StaticEditorFlags: 0 313 | m_IsActive: 1 314 | --- !u!114 &1588233073 315 | MonoBehaviour: 316 | m_ObjectHideFlags: 0 317 | m_CorrespondingSourceObject: {fileID: 0} 318 | m_PrefabInstance: {fileID: 0} 319 | m_PrefabAsset: {fileID: 0} 320 | m_GameObject: {fileID: 1588233072} 321 | m_Enabled: 1 322 | m_EditorHideFlags: 0 323 | m_Script: {fileID: 11500000, guid: 178f08fb6daf49058edd3e47d9b2c10d, type: 3} 324 | m_Name: 325 | m_EditorClassIdentifier: 326 | prefab: {fileID: 851407407286961622, guid: 9020ca8b8b06e4644b3d1f9d69932c6a, type: 3} 327 | CountX: 150 328 | CountY: 150 329 | moveProp: 330 | duration: 1 331 | easeType: 17 332 | loop: -1 333 | pinPong: 1 334 | scaleProp: 335 | duration: 1 336 | easeType: 2 337 | loop: -1 338 | pinPong: 1 339 | rotateProp: 340 | duration: 2 341 | easeType: 32 342 | loop: -1 343 | pinPong: 0 344 | height: 40 345 | timeOffsetX: 0.1 346 | timeOffsetY: 0.1 347 | timeScale: 1 348 | --- !u!4 &1588233074 349 | Transform: 350 | m_ObjectHideFlags: 0 351 | m_CorrespondingSourceObject: {fileID: 0} 352 | m_PrefabInstance: {fileID: 0} 353 | m_PrefabAsset: {fileID: 0} 354 | m_GameObject: {fileID: 1588233072} 355 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 356 | m_LocalPosition: {x: -11.239754, y: 5.118881, z: 1.5901909} 357 | m_LocalScale: {x: 1, y: 1, z: 1} 358 | m_Children: [] 359 | m_Father: {fileID: 0} 360 | m_RootOrder: 2 361 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 362 | -------------------------------------------------------------------------------- /Assets/Scenes/01.Wave.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/02.GameObjects.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 795ba00f84f7d44adb01a169bf70c6de 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/03.Eases.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9931b82c465d24d799bbd8bd55dfa59a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 PlasticApps 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.3.2", 5 | "com.unity.burst": "1.0.0-preview.10", 6 | "com.unity.collab-proxy": "1.2.15", 7 | "com.unity.collections": "0.0.9-preview.17", 8 | "com.unity.entities": "0.0.12-preview.30", 9 | "com.unity.jobs": "0.0.7-preview.10", 10 | "com.unity.mathematics": "1.0.0-preview.1", 11 | "com.unity.multiplayer-hlapi": "1.0.1", 12 | "com.unity.package-manager-ui": "2.1.2", 13 | "com.unity.purchasing": "2.0.1", 14 | "com.unity.rendering.hybrid": "0.0.1-preview.10", 15 | "com.unity.textmeshpro": "2.0.0", 16 | "com.unity.timeline": "1.0.0", 17 | "com.unity.xr.legacyinputhelpers": "2.0.2", 18 | "com.unity.modules.ai": "1.0.0", 19 | "com.unity.modules.animation": "1.0.0", 20 | "com.unity.modules.assetbundle": "1.0.0", 21 | "com.unity.modules.audio": "1.0.0", 22 | "com.unity.modules.cloth": "1.0.0", 23 | "com.unity.modules.director": "1.0.0", 24 | "com.unity.modules.imageconversion": "1.0.0", 25 | "com.unity.modules.imgui": "1.0.0", 26 | "com.unity.modules.jsonserialize": "1.0.0", 27 | "com.unity.modules.particlesystem": "1.0.0", 28 | "com.unity.modules.physics": "1.0.0", 29 | "com.unity.modules.physics2d": "1.0.0", 30 | "com.unity.modules.screencapture": "1.0.0", 31 | "com.unity.modules.terrain": "1.0.0", 32 | "com.unity.modules.terrainphysics": "1.0.0", 33 | "com.unity.modules.tilemap": "1.0.0", 34 | "com.unity.modules.ui": "1.0.0", 35 | "com.unity.modules.uielements": "1.0.0", 36 | "com.unity.modules.umbra": "1.0.0", 37 | "com.unity.modules.unityanalytics": "1.0.0", 38 | "com.unity.modules.unitywebrequest": "1.0.0", 39 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 40 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 41 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 42 | "com.unity.modules.unitywebrequestwww": "1.0.0", 43 | "com.unity.modules.vehicles": "1.0.0", 44 | "com.unity.modules.video": "1.0.0", 45 | "com.unity.modules.vr": "1.0.0", 46 | "com.unity.modules.wind": "1.0.0", 47 | "com.unity.modules.xr": "1.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/01.Wave.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 0 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 16 7 | productGUID: cf96ab0bb8376408da2f0ffe7ee1c63e 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: PlasticTween 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 1 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 0 109 | switchQueueControlMemory: 16384 110 | switchQueueComputeMemory: 262144 111 | switchNVNShaderPoolsGranularity: 33554432 112 | switchNVNDefaultPoolsGranularity: 16777216 113 | switchNVNOtherPoolsGranularity: 16777216 114 | vulkanEnableSetSRGBWrite: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleVersion: 0.1 122 | preloadedAssets: [] 123 | metroInputSource: 0 124 | wsaTransparentSwapchain: 0 125 | m_HolographicPauseOnTrackingLoss: 1 126 | xboxOneDisableKinectGpuReservation: 0 127 | xboxOneEnable7thCore: 0 128 | vrSettings: 129 | cardboard: 130 | depthFormat: 0 131 | enableTransitionView: 0 132 | daydream: 133 | depthFormat: 0 134 | useSustainedPerformanceMode: 0 135 | enableVideoLayer: 0 136 | useProtectedVideoMemory: 0 137 | minimumSupportedHeadTracking: 0 138 | maximumSupportedHeadTracking: 1 139 | hololens: 140 | depthFormat: 1 141 | depthBufferSharingEnabled: 0 142 | lumin: 143 | depthFormat: 0 144 | frameTiming: 2 145 | enableGLCache: 0 146 | glCacheMaxBlobSize: 524288 147 | glCacheMaxFileSize: 8388608 148 | oculus: 149 | sharedDepthBuffer: 1 150 | dashSupport: 1 151 | enable360StereoCapture: 0 152 | isWsaHolographicRemotingEnabled: 0 153 | protectGraphicsMemory: 0 154 | enableFrameTimingStats: 0 155 | useHDRDisplay: 0 156 | m_ColorGamuts: 00000000 157 | targetPixelDensity: 30 158 | resolutionScalingMode: 0 159 | androidSupportedAspectRatio: 1 160 | androidMaxAspectRatio: 2.1 161 | applicationIdentifier: {} 162 | buildNumber: {} 163 | AndroidBundleVersionCode: 1 164 | AndroidMinSdkVersion: 16 165 | AndroidTargetSdkVersion: 0 166 | AndroidPreferredInstallLocation: 1 167 | aotOptions: 168 | stripEngineCode: 1 169 | iPhoneStrippingLevel: 0 170 | iPhoneScriptCallOptimization: 0 171 | ForceInternetPermission: 0 172 | ForceSDCardPermission: 0 173 | CreateWallpaper: 0 174 | APKExpansionFiles: 0 175 | keepLoadedShadersAlive: 0 176 | StripUnusedMeshComponents: 1 177 | VertexChannelCompressionMask: 4054 178 | iPhoneSdkVersion: 988 179 | iOSTargetOSVersionString: 9.0 180 | tvOSSdkVersion: 0 181 | tvOSRequireExtendedGameController: 0 182 | tvOSTargetOSVersionString: 9.0 183 | uIPrerenderedIcon: 0 184 | uIRequiresPersistentWiFi: 0 185 | uIRequiresFullScreen: 1 186 | uIStatusBarHidden: 1 187 | uIExitOnSuspend: 0 188 | uIStatusBarStyle: 0 189 | iPhoneSplashScreen: {fileID: 0} 190 | iPhoneHighResSplashScreen: {fileID: 0} 191 | iPhoneTallHighResSplashScreen: {fileID: 0} 192 | iPhone47inSplashScreen: {fileID: 0} 193 | iPhone55inPortraitSplashScreen: {fileID: 0} 194 | iPhone55inLandscapeSplashScreen: {fileID: 0} 195 | iPhone58inPortraitSplashScreen: {fileID: 0} 196 | iPhone58inLandscapeSplashScreen: {fileID: 0} 197 | iPadPortraitSplashScreen: {fileID: 0} 198 | iPadHighResPortraitSplashScreen: {fileID: 0} 199 | iPadLandscapeSplashScreen: {fileID: 0} 200 | iPadHighResLandscapeSplashScreen: {fileID: 0} 201 | iPhone65inPortraitSplashScreen: {fileID: 0} 202 | iPhone65inLandscapeSplashScreen: {fileID: 0} 203 | iPhone61inPortraitSplashScreen: {fileID: 0} 204 | iPhone61inLandscapeSplashScreen: {fileID: 0} 205 | appleTVSplashScreen: {fileID: 0} 206 | appleTVSplashScreen2x: {fileID: 0} 207 | tvOSSmallIconLayers: [] 208 | tvOSSmallIconLayers2x: [] 209 | tvOSLargeIconLayers: [] 210 | tvOSLargeIconLayers2x: [] 211 | tvOSTopShelfImageLayers: [] 212 | tvOSTopShelfImageLayers2x: [] 213 | tvOSTopShelfImageWideLayers: [] 214 | tvOSTopShelfImageWideLayers2x: [] 215 | iOSLaunchScreenType: 0 216 | iOSLaunchScreenPortrait: {fileID: 0} 217 | iOSLaunchScreenLandscape: {fileID: 0} 218 | iOSLaunchScreenBackgroundColor: 219 | serializedVersion: 2 220 | rgba: 0 221 | iOSLaunchScreenFillPct: 100 222 | iOSLaunchScreenSize: 100 223 | iOSLaunchScreenCustomXibPath: 224 | iOSLaunchScreeniPadType: 0 225 | iOSLaunchScreeniPadImage: {fileID: 0} 226 | iOSLaunchScreeniPadBackgroundColor: 227 | serializedVersion: 2 228 | rgba: 0 229 | iOSLaunchScreeniPadFillPct: 100 230 | iOSLaunchScreeniPadSize: 100 231 | iOSLaunchScreeniPadCustomXibPath: 232 | iOSUseLaunchScreenStoryboard: 0 233 | iOSLaunchScreenCustomStoryboardPath: 234 | iOSDeviceRequirements: [] 235 | iOSURLSchemes: [] 236 | iOSBackgroundModes: 0 237 | iOSMetalForceHardShadows: 0 238 | metalEditorSupport: 1 239 | metalAPIValidation: 1 240 | iOSRenderExtraFrameOnPause: 0 241 | appleDeveloperTeamID: 242 | iOSManualSigningProvisioningProfileID: 243 | tvOSManualSigningProvisioningProfileID: 244 | iOSManualSigningProvisioningProfileType: 0 245 | tvOSManualSigningProvisioningProfileType: 0 246 | appleEnableAutomaticSigning: 0 247 | iOSRequireARKit: 0 248 | iOSAutomaticallyDetectAndAddCapabilities: 1 249 | appleEnableProMotion: 0 250 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 251 | templatePackageId: com.unity.template.3d@1.0.4 252 | templateDefaultScene: Assets/Scenes/SampleScene.unity 253 | AndroidTargetArchitectures: 5 254 | AndroidSplashScreenScale: 0 255 | androidSplashScreen: {fileID: 0} 256 | AndroidKeystoreName: '{inproject}: ' 257 | AndroidKeyaliasName: 258 | AndroidBuildApkPerCpuArchitecture: 0 259 | AndroidTVCompatibility: 1 260 | AndroidIsGame: 1 261 | AndroidEnableTango: 0 262 | androidEnableBanner: 1 263 | androidUseLowAccuracyLocation: 0 264 | androidUseCustomKeystore: 0 265 | m_AndroidBanners: 266 | - width: 320 267 | height: 180 268 | banner: {fileID: 0} 269 | androidGamepadSupportLevel: 0 270 | resolutionDialogBanner: {fileID: 0} 271 | m_BuildTargetIcons: [] 272 | m_BuildTargetPlatformIcons: [] 273 | m_BuildTargetBatching: 274 | - m_BuildTarget: Standalone 275 | m_StaticBatching: 1 276 | m_DynamicBatching: 0 277 | - m_BuildTarget: tvOS 278 | m_StaticBatching: 1 279 | m_DynamicBatching: 0 280 | - m_BuildTarget: Android 281 | m_StaticBatching: 1 282 | m_DynamicBatching: 0 283 | - m_BuildTarget: iPhone 284 | m_StaticBatching: 1 285 | m_DynamicBatching: 0 286 | - m_BuildTarget: WebGL 287 | m_StaticBatching: 0 288 | m_DynamicBatching: 0 289 | m_BuildTargetGraphicsAPIs: 290 | - m_BuildTarget: AndroidPlayer 291 | m_APIs: 0b00000008000000 292 | m_Automatic: 1 293 | - m_BuildTarget: iOSSupport 294 | m_APIs: 10000000 295 | m_Automatic: 1 296 | - m_BuildTarget: AppleTVSupport 297 | m_APIs: 10000000 298 | m_Automatic: 0 299 | - m_BuildTarget: WebGLSupport 300 | m_APIs: 0b000000 301 | m_Automatic: 1 302 | m_BuildTargetVRSettings: 303 | - m_BuildTarget: Standalone 304 | m_Enabled: 0 305 | m_Devices: 306 | - Oculus 307 | - OpenVR 308 | m_BuildTargetEnableVuforiaSettings: [] 309 | openGLRequireES31: 0 310 | openGLRequireES31AEP: 0 311 | openGLRequireES32: 0 312 | m_TemplateCustomTags: {} 313 | mobileMTRendering: 314 | Android: 1 315 | iPhone: 1 316 | tvOS: 1 317 | m_BuildTargetGroupLightmapEncodingQuality: [] 318 | m_BuildTargetGroupLightmapSettings: [] 319 | playModeTestRunnerEnabled: 0 320 | runPlayModeTestAsEditModeTest: 0 321 | actionOnDotNetUnhandledException: 1 322 | enableInternalProfiler: 0 323 | logObjCUncaughtExceptions: 1 324 | enableCrashReportAPI: 0 325 | cameraUsageDescription: 326 | locationUsageDescription: 327 | microphoneUsageDescription: 328 | switchNetLibKey: 329 | switchSocketMemoryPoolSize: 6144 330 | switchSocketAllocatorPoolSize: 128 331 | switchSocketConcurrencyLimit: 14 332 | switchScreenResolutionBehavior: 2 333 | switchUseCPUProfiler: 0 334 | switchApplicationID: 0x01004b9000490000 335 | switchNSODependencies: 336 | switchTitleNames_0: 337 | switchTitleNames_1: 338 | switchTitleNames_2: 339 | switchTitleNames_3: 340 | switchTitleNames_4: 341 | switchTitleNames_5: 342 | switchTitleNames_6: 343 | switchTitleNames_7: 344 | switchTitleNames_8: 345 | switchTitleNames_9: 346 | switchTitleNames_10: 347 | switchTitleNames_11: 348 | switchTitleNames_12: 349 | switchTitleNames_13: 350 | switchTitleNames_14: 351 | switchPublisherNames_0: 352 | switchPublisherNames_1: 353 | switchPublisherNames_2: 354 | switchPublisherNames_3: 355 | switchPublisherNames_4: 356 | switchPublisherNames_5: 357 | switchPublisherNames_6: 358 | switchPublisherNames_7: 359 | switchPublisherNames_8: 360 | switchPublisherNames_9: 361 | switchPublisherNames_10: 362 | switchPublisherNames_11: 363 | switchPublisherNames_12: 364 | switchPublisherNames_13: 365 | switchPublisherNames_14: 366 | switchIcons_0: {fileID: 0} 367 | switchIcons_1: {fileID: 0} 368 | switchIcons_2: {fileID: 0} 369 | switchIcons_3: {fileID: 0} 370 | switchIcons_4: {fileID: 0} 371 | switchIcons_5: {fileID: 0} 372 | switchIcons_6: {fileID: 0} 373 | switchIcons_7: {fileID: 0} 374 | switchIcons_8: {fileID: 0} 375 | switchIcons_9: {fileID: 0} 376 | switchIcons_10: {fileID: 0} 377 | switchIcons_11: {fileID: 0} 378 | switchIcons_12: {fileID: 0} 379 | switchIcons_13: {fileID: 0} 380 | switchIcons_14: {fileID: 0} 381 | switchSmallIcons_0: {fileID: 0} 382 | switchSmallIcons_1: {fileID: 0} 383 | switchSmallIcons_2: {fileID: 0} 384 | switchSmallIcons_3: {fileID: 0} 385 | switchSmallIcons_4: {fileID: 0} 386 | switchSmallIcons_5: {fileID: 0} 387 | switchSmallIcons_6: {fileID: 0} 388 | switchSmallIcons_7: {fileID: 0} 389 | switchSmallIcons_8: {fileID: 0} 390 | switchSmallIcons_9: {fileID: 0} 391 | switchSmallIcons_10: {fileID: 0} 392 | switchSmallIcons_11: {fileID: 0} 393 | switchSmallIcons_12: {fileID: 0} 394 | switchSmallIcons_13: {fileID: 0} 395 | switchSmallIcons_14: {fileID: 0} 396 | switchManualHTML: 397 | switchAccessibleURLs: 398 | switchLegalInformation: 399 | switchMainThreadStackSize: 1048576 400 | switchPresenceGroupId: 401 | switchLogoHandling: 0 402 | switchReleaseVersion: 0 403 | switchDisplayVersion: 1.0.0 404 | switchStartupUserAccount: 0 405 | switchTouchScreenUsage: 0 406 | switchSupportedLanguagesMask: 0 407 | switchLogoType: 0 408 | switchApplicationErrorCodeCategory: 409 | switchUserAccountSaveDataSize: 0 410 | switchUserAccountSaveDataJournalSize: 0 411 | switchApplicationAttribute: 0 412 | switchCardSpecSize: -1 413 | switchCardSpecClock: -1 414 | switchRatingsMask: 0 415 | switchRatingsInt_0: 0 416 | switchRatingsInt_1: 0 417 | switchRatingsInt_2: 0 418 | switchRatingsInt_3: 0 419 | switchRatingsInt_4: 0 420 | switchRatingsInt_5: 0 421 | switchRatingsInt_6: 0 422 | switchRatingsInt_7: 0 423 | switchRatingsInt_8: 0 424 | switchRatingsInt_9: 0 425 | switchRatingsInt_10: 0 426 | switchRatingsInt_11: 0 427 | switchLocalCommunicationIds_0: 428 | switchLocalCommunicationIds_1: 429 | switchLocalCommunicationIds_2: 430 | switchLocalCommunicationIds_3: 431 | switchLocalCommunicationIds_4: 432 | switchLocalCommunicationIds_5: 433 | switchLocalCommunicationIds_6: 434 | switchLocalCommunicationIds_7: 435 | switchParentalControl: 0 436 | switchAllowsScreenshot: 1 437 | switchAllowsVideoCapturing: 1 438 | switchAllowsRuntimeAddOnContentInstall: 0 439 | switchDataLossConfirmation: 0 440 | switchUserAccountLockEnabled: 0 441 | switchSystemResourceMemory: 16777216 442 | switchSupportedNpadStyles: 3 443 | switchNativeFsCacheSize: 32 444 | switchIsHoldTypeHorizontal: 0 445 | switchSupportedNpadCount: 8 446 | switchSocketConfigEnabled: 0 447 | switchTcpInitialSendBufferSize: 32 448 | switchTcpInitialReceiveBufferSize: 64 449 | switchTcpAutoSendBufferSizeMax: 256 450 | switchTcpAutoReceiveBufferSizeMax: 256 451 | switchUdpSendBufferSize: 9 452 | switchUdpReceiveBufferSize: 42 453 | switchSocketBufferEfficiency: 4 454 | switchSocketInitializeEnabled: 1 455 | switchNetworkInterfaceManagerInitializeEnabled: 1 456 | switchPlayerConnectionEnabled: 1 457 | ps4NPAgeRating: 12 458 | ps4NPTitleSecret: 459 | ps4NPTrophyPackPath: 460 | ps4ParentalLevel: 11 461 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 462 | ps4Category: 0 463 | ps4MasterVersion: 01.00 464 | ps4AppVersion: 01.00 465 | ps4AppType: 0 466 | ps4ParamSfxPath: 467 | ps4VideoOutPixelFormat: 0 468 | ps4VideoOutInitialWidth: 1920 469 | ps4VideoOutBaseModeInitialWidth: 1920 470 | ps4VideoOutReprojectionRate: 60 471 | ps4PronunciationXMLPath: 472 | ps4PronunciationSIGPath: 473 | ps4BackgroundImagePath: 474 | ps4StartupImagePath: 475 | ps4StartupImagesFolder: 476 | ps4IconImagesFolder: 477 | ps4SaveDataImagePath: 478 | ps4SdkOverride: 479 | ps4BGMPath: 480 | ps4ShareFilePath: 481 | ps4ShareOverlayImagePath: 482 | ps4PrivacyGuardImagePath: 483 | ps4NPtitleDatPath: 484 | ps4RemotePlayKeyAssignment: -1 485 | ps4RemotePlayKeyMappingDir: 486 | ps4PlayTogetherPlayerCount: 0 487 | ps4EnterButtonAssignment: 1 488 | ps4ApplicationParam1: 0 489 | ps4ApplicationParam2: 0 490 | ps4ApplicationParam3: 0 491 | ps4ApplicationParam4: 0 492 | ps4DownloadDataSize: 0 493 | ps4GarlicHeapSize: 2048 494 | ps4ProGarlicHeapSize: 2560 495 | playerPrefsMaxSize: 32768 496 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 497 | ps4pnSessions: 1 498 | ps4pnPresence: 1 499 | ps4pnFriends: 1 500 | ps4pnGameCustomData: 1 501 | playerPrefsSupport: 0 502 | enableApplicationExit: 0 503 | resetTempFolder: 1 504 | restrictedAudioUsageRights: 0 505 | ps4UseResolutionFallback: 0 506 | ps4ReprojectionSupport: 0 507 | ps4UseAudio3dBackend: 0 508 | ps4SocialScreenEnabled: 0 509 | ps4ScriptOptimizationLevel: 0 510 | ps4Audio3dVirtualSpeakerCount: 14 511 | ps4attribCpuUsage: 0 512 | ps4PatchPkgPath: 513 | ps4PatchLatestPkgPath: 514 | ps4PatchChangeinfoPath: 515 | ps4PatchDayOne: 0 516 | ps4attribUserManagement: 0 517 | ps4attribMoveSupport: 0 518 | ps4attrib3DSupport: 0 519 | ps4attribShareSupport: 0 520 | ps4attribExclusiveVR: 0 521 | ps4disableAutoHideSplash: 0 522 | ps4videoRecordingFeaturesUsed: 0 523 | ps4contentSearchFeaturesUsed: 0 524 | ps4attribEyeToEyeDistanceSettingVR: 0 525 | ps4IncludedModules: [] 526 | monoEnv: 527 | splashScreenBackgroundSourceLandscape: {fileID: 0} 528 | splashScreenBackgroundSourcePortrait: {fileID: 0} 529 | spritePackerPolicy: 530 | webGLMemorySize: 256 531 | webGLExceptionSupport: 1 532 | webGLNameFilesAsHashes: 0 533 | webGLDataCaching: 1 534 | webGLDebugSymbols: 0 535 | webGLEmscriptenArgs: 536 | webGLModulesDirectory: 537 | webGLTemplate: APPLICATION:Default 538 | webGLAnalyzeBuildSize: 0 539 | webGLUseEmbeddedResources: 0 540 | webGLCompressionFormat: 1 541 | webGLLinkerTarget: 1 542 | webGLThreadsSupport: 0 543 | webGLWasmStreaming: 0 544 | scriptingDefineSymbols: 545 | 1: 546 | platformArchitecture: {} 547 | scriptingBackend: {} 548 | il2cppCompilerConfiguration: {} 549 | managedStrippingLevel: {} 550 | incrementalIl2cppBuild: {} 551 | allowUnsafeCode: 0 552 | additionalIl2CppArgs: 553 | scriptingRuntimeVersion: 1 554 | gcIncremental: 0 555 | gcWBarrierValidation: 0 556 | apiCompatibilityLevelPerPlatform: {} 557 | m_RenderingPath: 1 558 | m_MobileRenderingPath: 1 559 | metroPackageName: Template_3D 560 | metroPackageVersion: 561 | metroCertificatePath: 562 | metroCertificatePassword: 563 | metroCertificateSubject: 564 | metroCertificateIssuer: 565 | metroCertificateNotAfter: 0000000000000000 566 | metroApplicationDescription: Template_3D 567 | wsaImages: {} 568 | metroTileShortName: 569 | metroTileShowName: 0 570 | metroMediumTileShowName: 0 571 | metroLargeTileShowName: 0 572 | metroWideTileShowName: 0 573 | metroSupportStreamingInstall: 0 574 | metroLastRequiredScene: 0 575 | metroDefaultTileSize: 1 576 | metroTileForegroundText: 2 577 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 578 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 579 | a: 1} 580 | metroSplashScreenUseBackgroundColor: 0 581 | platformCapabilities: {} 582 | metroTargetDeviceFamilies: {} 583 | metroFTAName: 584 | metroFTAFileTypes: [] 585 | metroProtocolName: 586 | XboxOneProductId: 587 | XboxOneUpdateKey: 588 | XboxOneSandboxId: 589 | XboxOneContentId: 590 | XboxOneTitleId: 591 | XboxOneSCId: 592 | XboxOneGameOsOverridePath: 593 | XboxOnePackagingOverridePath: 594 | XboxOneAppManifestOverridePath: 595 | XboxOneVersion: 1.0.0.0 596 | XboxOnePackageEncryption: 0 597 | XboxOnePackageUpdateGranularity: 2 598 | XboxOneDescription: 599 | XboxOneLanguage: 600 | - enus 601 | XboxOneCapability: [] 602 | XboxOneGameRating: {} 603 | XboxOneIsContentPackage: 0 604 | XboxOneEnableGPUVariability: 0 605 | XboxOneSockets: {} 606 | XboxOneSplashScreen: {fileID: 0} 607 | XboxOneAllowedProductIds: [] 608 | XboxOnePersistentLocalStorageSize: 0 609 | XboxOneXTitleMemory: 8 610 | xboxOneScriptCompiler: 1 611 | XboxOneOverrideIdentityName: 612 | vrEditorSettings: 613 | daydream: 614 | daydreamIconForeground: {fileID: 0} 615 | daydreamIconBackground: {fileID: 0} 616 | cloudServicesEnabled: 617 | UNet: 1 618 | luminIcon: 619 | m_Name: 620 | m_ModelFolderPath: 621 | m_PortalFolderPath: 622 | luminCert: 623 | m_CertPath: 624 | m_SignPackage: 1 625 | luminIsChannelApp: 0 626 | luminVersion: 627 | m_VersionCode: 1 628 | m_VersionName: 629 | facebookSdkVersion: 7.9.4 630 | facebookAppId: 631 | facebookCookies: 1 632 | facebookLogging: 1 633 | facebookStatus: 1 634 | facebookXfbml: 0 635 | facebookFrictionlessRequests: 1 636 | apiCompatibilityLevel: 6 637 | cloudProjectId: 638 | framebufferDepthMemorylessMode: 0 639 | projectName: 640 | organizationId: 641 | cloudEnabled: 0 642 | enableNativePlatformBackendsForNewInputSystem: 0 643 | disableOldInputManagerSupport: 0 644 | legacyClampBlendShapeWeights: 0 645 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.1.0b10 2 | m_EditorVersionWithRevision: 2019.1.0b10 (dbf1e96a8b63) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 4 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 2 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 40 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 1 136 | antiAliasing: 4 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 1 164 | antiAliasing: 4 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSP2: 2 183 | Standalone: 5 184 | Tizen: 2 185 | WebGL: 3 186 | WiiU: 5 187 | Windows Store Apps: 5 188 | XboxOne: 5 189 | iPhone: 2 190 | tvOS: 2 191 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PlasticTween 2 | **Tween Library for Unity3D(ECS+JOBS)** 3 | 4 | 5 | Testing ECS+Jobs - Tween Library implementation. 6 | Works with Entity(as relationship) and GameObjects, also has 12 eases(Linear, Lerp, Quad, Cubic, Quint, Spring, Sine, Back, Bounce, Expo, Elastic, Circ, Square). 7 | 8 | **Requirements: Unity3D 2019.1.0b9 or later** 9 | 10 | ![Main screenshot](/Screenshots/Stresstest.png) 11 | ![SystemGroups](/Screenshots/SystemGroups.png) 12 | 13 | _Callbacks_ 14 | 15 | ```` 16 | Tween.Delay(1.0f, () => { // do things }) 17 | Tween.MoveEntity(...).OnTweenComplete(() => {}); 18 | ```` 19 | 20 | _Entities_ 21 | 22 | ```csharp 23 | Tween.MoveEntity( 24 | entity, 25 | duration, 26 | targetPosition, originPosition, 27 | EasyType.Spring, 28 | -1, 29 | true, 30 | -1 31 | ); 32 | ``` 33 | 34 | _GameObjects_ 35 | 36 | ```csharp 37 | Tween.MoveGameObject( 38 | gameObject, 39 | duration, 40 | targetVector, 41 | EasyType.Spring, 42 | -1, 43 | isPingPong 44 | ); 45 | ``` 46 | 47 | _Pause and Stop_ 48 | 49 | ```csharp 50 | Tween.PauseByTag(int tagId); 51 | Tween.UnPauseByTag(int tagId); 52 | Tween.PauseAll(); 53 | Tween.UnPauseAll(); 54 | 55 | Tween.StopByTag(int tagId); 56 | Tween.StopAll(); 57 | ``` 58 | 59 | _Similar projects:_ 60 | 61 | ECS-Tween - https://github.com/Xerios/ECS-Tween 62 | -------------------------------------------------------------------------------- /Screenshots/Stresstest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlasticApps/PlasticTween/1eae0c72375e2d2457fa474e527d40fcaa6c91db/Screenshots/Stresstest.png -------------------------------------------------------------------------------- /Screenshots/SystemGroups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlasticApps/PlasticTween/1eae0c72375e2d2457fa474e527d40fcaa6c91db/Screenshots/SystemGroups.png --------------------------------------------------------------------------------