├── ProjectSettings ├── ProjectVersion.txt ├── ClusterInputManager.asset ├── EditorBuildSettings.asset ├── NetworkManager.asset ├── TimeManager.asset ├── AudioManager.asset ├── EditorSettings.asset ├── TagManager.asset ├── DynamicsManager.asset ├── UnityConnectSettings.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── GraphicsSettings.asset ├── QualitySettings.asset ├── InputManager.asset └── ProjectSettings.asset ├── README.md ├── Assets ├── Example │ ├── Test.unity.meta │ ├── Materials │ │ ├── Ground.mat.meta │ │ ├── Paper.mat.meta │ │ ├── Paper.mat │ │ └── Ground.mat │ ├── Prefabs │ │ ├── Ground.prefab.meta │ │ ├── Paper.prefab.meta │ │ ├── Ground.prefab │ │ └── Paper.prefab │ ├── Materials.meta │ ├── Prefabs.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── FlyCamera.cs.meta │ │ ├── PanCamera.cs.meta │ │ ├── ResetPosition.cs.meta │ │ ├── InstanceGenerator.cs.meta │ │ ├── PanCamera.cs │ │ ├── ResetPosition.cs │ │ ├── InstanceGenerator.cs │ │ └── FlyCamera.cs │ └── Test.unity ├── Example.meta ├── Scripts.meta └── Scripts │ ├── FeatherFall.cs.meta │ └── FeatherFall.cs ├── .gitignore └── unity-feather-fall.sln.DotSettings /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.5.0f3 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # unity-feather-fall 2 | A script for Unity3D that causes a physics object to fall similar to a feather, piece of paper, or leaf. 3 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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/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.33333334 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /Assets/Example/Test.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 149a9af9faa32614cadfddb388956c09 3 | timeCreated: 1479589932 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/Materials/Ground.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdff4a9e15115b84ba1b4328a7030f94 3 | timeCreated: 1479635105 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/Materials/Paper.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3c0ccac5f8a931499979f66f3c1a31e 3 | timeCreated: 1479614145 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/Prefabs/Ground.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b923b88bb60009449a23ccb3f33268b1 3 | timeCreated: 1479614423 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/Prefabs/Paper.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18a0e785ddbd4864eaa1a2b2cd163d06 3 | timeCreated: 1479614420 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e27df0cdd2d0f434e85e76db99206603 3 | folderAsset: yes 4 | timeCreated: 1479614398 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0866a8507bbd244eba85d0e6060f4ba 3 | folderAsset: yes 4 | timeCreated: 1479614437 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Example/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0e491b7e12865f4cb979b20695bd121 3 | folderAsset: yes 4 | timeCreated: 1479614409 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Example/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d765537d49ed95419ef7c57576177df 3 | folderAsset: yes 4 | timeCreated: 1479614417 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Example/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 677c897a1d85159478d980863d2015ab 3 | folderAsset: yes 4 | timeCreated: 1479614453 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/FeatherFall.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d989b59316561b241afd46bed693aa66 3 | timeCreated: 1479599691 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/FlyCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edd0f3ae4ab0d7349ac1e9311dc0e0d1 3 | timeCreated: 1479613302 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/PanCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3c7cd5c4304b3e46855dfccd2fa82b3 3 | timeCreated: 1479886494 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/ResetPosition.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 300855edde3a8ca46988a29569d7993d 3 | timeCreated: 1479589954 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/InstanceGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 592c2f99262ac63469f865661aa785b3 3 | timeCreated: 1479618477 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /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: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_DisableAudio: 0 16 | m_VirtualizeEffects: 1 17 | -------------------------------------------------------------------------------- /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: 3 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 0 12 | m_SpritePackerMode: 2 13 | m_SpritePackerPaddingPower: 1 14 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 15 | m_ProjectGenerationRootNamespace: 16 | -------------------------------------------------------------------------------- /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 | - 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 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/PanCamera.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class PanCamera : MonoBehaviour { 4 | [SerializeField] private int m_PixelsPerUnit = 100; 5 | private Vector3 m_LastMouse; 6 | 7 | private void Update() { 8 | if (!Input.GetMouseButton(2)) { 9 | m_LastMouse = Input.mousePosition; 10 | return; 11 | } 12 | 13 | Vector3 mouseMove = Input.mousePosition - m_LastMouse; 14 | Vector3 translation = new Vector3(-mouseMove.x/m_PixelsPerUnit, -mouseMove.y/m_PixelsPerUnit, 0); 15 | transform.Translate(translation, Space.Self); 16 | m_LastMouse = Input.mousePosition; 17 | } 18 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Autogenerated Unity folders 2 | /[Ll]ibrary/ 3 | /[Tt]emp/ 4 | /[Oo]bj/ 5 | /[Bb]uilds/ 6 | 7 | # Autogenerated VS/MD solution and project files 8 | *.tmproj 9 | *.csproj 10 | *.unityproj 11 | *.sln 12 | *.suo 13 | *.user 14 | *.userprefs 15 | *.pidb 16 | *.booproj 17 | *.hgignore 18 | *.pyc 19 | *.pyc.meta 20 | *~ 21 | 22 | Assets/UnIDE/Editor/_TMP/* 23 | 24 | /OSXTest.app/ 25 | /WinTest/ 26 | 27 | # Generated Directories and Files 28 | .hg/ 29 | .svn/ 30 | .idea/ 31 | .tmp* 32 | 33 | # OS Files 34 | desktop.ini 35 | Thumbs.db 36 | .DS_Store 37 | 38 | # UnityVS 39 | .vs/ 40 | /Assets/UnityVS* 41 | UnityVS.VersionSpecific.* 42 | Unity_Profiling* 43 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/ResetPosition.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class ResetPosition : MonoBehaviour { 4 | private Rigidbody m_Rigidbody; 5 | private Vector3 m_StartPosition; 6 | private Quaternion m_StartRotation; 7 | 8 | private void Start() { 9 | m_StartPosition = transform.position; 10 | m_StartRotation = transform.rotation; 11 | m_Rigidbody = GetComponent(); 12 | } 13 | 14 | private void Update() { 15 | if (Input.GetKeyUp(KeyCode.Space)) { 16 | transform.position = m_StartPosition; 17 | transform.rotation = m_StartRotation; 18 | 19 | if (m_Rigidbody) { 20 | m_Rigidbody.angularVelocity = Vector3.zero; 21 | m_Rigidbody.velocity = Vector3.zero; 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /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: 2 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_SolverIterationCount: 6 13 | m_SolverVelocityIterations: 1 14 | m_QueriesHitTriggers: 1 15 | m_EnableAdaptiveForce: 0 16 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 17 | -------------------------------------------------------------------------------- /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 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | CrashReportingSettings: 11 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 12 | m_Enabled: 0 13 | m_CaptureEditorExceptions: 1 14 | UnityPurchasingSettings: 15 | m_Enabled: 0 16 | m_TestMode: 0 17 | UnityAnalyticsSettings: 18 | m_Enabled: 0 19 | m_InitializeOnStartup: 1 20 | m_TestMode: 0 21 | m_TestEventUrl: 22 | m_TestConfigUrl: 23 | UnityAdsSettings: 24 | m_Enabled: 0 25 | m_InitializeOnStartup: 1 26 | m_TestMode: 0 27 | m_EnabledPlatforms: 4294967295 28 | m_IosGameId: 29 | m_AndroidGameId: 30 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/InstanceGenerator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class InstanceGenerator : MonoBehaviour { 4 | [SerializeField] private GameObject m_Prefab; 5 | [SerializeField, Range(0.1f, 10f)] private float m_GenerateDelay = 2; 6 | [SerializeField, Range(1f, 20f)] private float m_DestroyDelay = 10; 7 | [SerializeField] private bool m_RotateRandomly; 8 | [SerializeField] private Vector3 m_InitialVelocity = Vector3.zero; 9 | private float m_LastTime; 10 | 11 | private void Update() { 12 | if (m_LastTime + m_GenerateDelay > Time.time) { 13 | return; 14 | } 15 | 16 | m_LastTime = Time.time; 17 | GameObject instance = (GameObject)Instantiate(m_Prefab, transform.position, GetRotation()); 18 | 19 | if (!m_InitialVelocity.Equals(Vector3.zero)) { 20 | Rigidbody rb = instance.GetComponent(); 21 | if (rb) { 22 | rb.velocity = m_InitialVelocity; 23 | } 24 | } 25 | 26 | Destroy(instance, m_DestroyDelay); 27 | } 28 | 29 | private Quaternion GetRotation() { 30 | return m_RotateRandomly ? Quaternion.Euler(Random.Range(0f, 360f), Random.Range(0f, 360f), Random.Range(0f, 360f)) : transform.rotation; 31 | } 32 | } -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshAreas: 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 | -------------------------------------------------------------------------------- /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: 2 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_MinPenetrationForPenalty: 0.01 17 | m_BaumgarteScale: 0.2 18 | m_BaumgarteTimeOfImpactScale: 0.75 19 | m_TimeToSleep: 0.5 20 | m_LinearSleepTolerance: 0.01 21 | m_AngularSleepTolerance: 2 22 | m_QueriesHitTriggers: 1 23 | m_QueriesStartInColliders: 1 24 | m_ChangeStopsCallbacks: 0 25 | m_AlwaysShowColliders: 0 26 | m_ShowColliderSleep: 1 27 | m_ShowColliderContacts: 0 28 | m_ContactArrowScale: 0.2 29 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 30 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 31 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 32 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 33 | -------------------------------------------------------------------------------- /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: 9 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: 10782, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_TierSettings_Tier1: 43 | renderingPath: 1 44 | useCascadedShadowMaps: 1 45 | m_TierSettings_Tier2: 46 | renderingPath: 1 47 | useCascadedShadowMaps: 1 48 | m_TierSettings_Tier3: 49 | renderingPath: 1 50 | useCascadedShadowMaps: 1 51 | m_DefaultRenderingPath: 1 52 | m_DefaultMobileRenderingPath: 1 53 | m_TierSettings: [] 54 | m_LightmapStripping: 0 55 | m_FogStripping: 0 56 | m_LightmapKeepPlain: 1 57 | m_LightmapKeepDirCombined: 1 58 | m_LightmapKeepDirSeparate: 1 59 | m_LightmapKeepDynamicPlain: 1 60 | m_LightmapKeepDynamicDirCombined: 1 61 | m_LightmapKeepDynamicDirSeparate: 1 62 | m_FogKeepLinear: 1 63 | m_FogKeepExp: 1 64 | m_FogKeepExp2: 1 65 | -------------------------------------------------------------------------------- /Assets/Example/Scripts/FlyCamera.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class FlyCamera : MonoBehaviour { 4 | [SerializeField] private float m_MainSpeed = 100.0f; 5 | [SerializeField] private float m_ShiftAdd = 250.0f; 6 | [SerializeField] private float m_MaxShift = 1000.0f; 7 | [SerializeField] private float m_Sensitivity = 0.25f; 8 | 9 | private Vector3 m_LastMouse; 10 | private float m_TotalRun = 1.0f; 11 | 12 | private void OnEnable() { 13 | m_LastMouse = Input.mousePosition; 14 | } 15 | 16 | private void Update() { 17 | 18 | if (!Input.GetMouseButton(1) && !Input.GetMouseButton(0)) { 19 | m_LastMouse = Input.mousePosition; 20 | return; 21 | } 22 | 23 | // Camera Rotation 24 | Vector3 mouseMove = Input.mousePosition - m_LastMouse; 25 | Vector3 rotation = new Vector3(-mouseMove.y*m_Sensitivity, mouseMove.x*m_Sensitivity, 0); 26 | transform.eulerAngles = new Vector3(transform.eulerAngles.x + rotation.x, transform.eulerAngles.y + rotation.y, 0); 27 | m_LastMouse = Input.mousePosition; 28 | 29 | // Keyboard commands 30 | Vector3 p = GetBaseInput(); 31 | if (Input.GetKey(KeyCode.LeftShift)) { 32 | m_TotalRun += Time.deltaTime; 33 | p = p*m_TotalRun*m_ShiftAdd; 34 | p.x = Mathf.Clamp(p.x, -m_MaxShift, m_MaxShift); 35 | p.y = Mathf.Clamp(p.y, -m_MaxShift, m_MaxShift); 36 | p.z = Mathf.Clamp(p.z, -m_MaxShift, m_MaxShift); 37 | } else { 38 | m_TotalRun = Mathf.Clamp(m_TotalRun*0.5f, 1f, 1000f); 39 | p = p*m_MainSpeed; 40 | } 41 | 42 | p = p*Time.deltaTime; 43 | Vector3 newPosition = transform.position; 44 | if (Input.GetKey(KeyCode.Space)) { 45 | //If player wants to move on X and Z axis only 46 | transform.Translate(p); 47 | newPosition.x = transform.position.x; 48 | newPosition.z = transform.position.z; 49 | transform.position = newPosition; 50 | } else { 51 | transform.Translate(p); 52 | } 53 | } 54 | 55 | private static Vector3 GetBaseInput() { 56 | //returns the basic values, if it's 0 than it's not active. 57 | Vector3 velocity = new Vector3(); 58 | if (Input.GetKey(KeyCode.W)) { 59 | velocity += new Vector3(0, 0, 1); 60 | } 61 | if (Input.GetKey(KeyCode.S)) { 62 | velocity += new Vector3(0, 0, -1); 63 | } 64 | if (Input.GetKey(KeyCode.A)) { 65 | velocity += new Vector3(-1, 0, 0); 66 | } 67 | if (Input.GetKey(KeyCode.D)) { 68 | velocity += new Vector3(1, 0, 0); 69 | } 70 | return velocity; 71 | } 72 | } -------------------------------------------------------------------------------- /Assets/Example/Prefabs/Ground.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000011091414616} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000011091414616 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 4 20 | m_Component: 21 | - 4: {fileID: 4000013224790212} 22 | - 33: {fileID: 33000013940839474} 23 | - 23: {fileID: 23000012691444236} 24 | - 65: {fileID: 65000012764383142} 25 | m_Layer: 0 26 | m_Name: Ground 27 | m_TagString: Untagged 28 | m_Icon: {fileID: 0} 29 | m_NavMeshLayer: 0 30 | m_StaticEditorFlags: 0 31 | m_IsActive: 1 32 | --- !u!4 &4000013224790212 33 | Transform: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 1000011091414616} 38 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 39 | m_LocalPosition: {x: 0, y: 0, z: 0} 40 | m_LocalScale: {x: 1, y: 1, z: 1} 41 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 42 | m_Children: [] 43 | m_Father: {fileID: 0} 44 | m_RootOrder: 0 45 | --- !u!23 &23000012691444236 46 | MeshRenderer: 47 | m_ObjectHideFlags: 1 48 | m_PrefabParentObject: {fileID: 0} 49 | m_PrefabInternal: {fileID: 100100000} 50 | m_GameObject: {fileID: 1000011091414616} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_Materials: 58 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 59 | m_SubsetIndices: 60 | m_StaticBatchRoot: {fileID: 0} 61 | m_ProbeAnchor: {fileID: 0} 62 | m_LightProbeVolumeOverride: {fileID: 0} 63 | m_ScaleInLightmap: 1 64 | m_PreserveUVs: 1 65 | m_IgnoreNormalsForChartDetection: 0 66 | m_ImportantGI: 0 67 | m_SelectedWireframeHidden: 0 68 | m_MinimumChartSize: 4 69 | m_AutoUVMaxDistance: 0.5 70 | m_AutoUVMaxAngle: 89 71 | m_LightmapParameters: {fileID: 0} 72 | m_SortingLayerID: 0 73 | m_SortingOrder: 0 74 | --- !u!33 &33000013940839474 75 | MeshFilter: 76 | m_ObjectHideFlags: 1 77 | m_PrefabParentObject: {fileID: 0} 78 | m_PrefabInternal: {fileID: 100100000} 79 | m_GameObject: {fileID: 1000011091414616} 80 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 81 | --- !u!65 &65000012764383142 82 | BoxCollider: 83 | m_ObjectHideFlags: 1 84 | m_PrefabParentObject: {fileID: 0} 85 | m_PrefabInternal: {fileID: 100100000} 86 | m_GameObject: {fileID: 1000011091414616} 87 | m_Material: {fileID: 0} 88 | m_IsTrigger: 0 89 | m_Enabled: 1 90 | serializedVersion: 2 91 | m_Size: {x: 10, y: 1, z: 10} 92 | m_Center: {x: 0, y: -0.5, z: 0} 93 | -------------------------------------------------------------------------------- /Assets/Example/Materials/Paper.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_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Paper 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _BumpMap 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _DetailAlbedoMap 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - first: 31 | name: _DetailMask 32 | second: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - first: 37 | name: _DetailNormalMap 38 | second: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - first: 43 | name: _EmissionMap 44 | second: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - first: 49 | name: _MainTex 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - first: 55 | name: _MetallicGlossMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - first: 61 | name: _OcclusionMap 62 | second: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - first: 67 | name: _ParallaxMap 68 | second: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | m_Floats: 73 | - first: 74 | name: _BumpScale 75 | second: 1 76 | - first: 77 | name: _Cutoff 78 | second: 0.5 79 | - first: 80 | name: _DetailNormalMapScale 81 | second: 1 82 | - first: 83 | name: _DstBlend 84 | second: 0 85 | - first: 86 | name: _GlossMapScale 87 | second: 1 88 | - first: 89 | name: _Glossiness 90 | second: 0.5 91 | - first: 92 | name: _GlossyReflections 93 | second: 1 94 | - first: 95 | name: _Metallic 96 | second: 0 97 | - first: 98 | name: _Mode 99 | second: 0 100 | - first: 101 | name: _OcclusionStrength 102 | second: 1 103 | - first: 104 | name: _Parallax 105 | second: 0.02 106 | - first: 107 | name: _SmoothnessTextureChannel 108 | second: 0 109 | - first: 110 | name: _SpecularHighlights 111 | second: 1 112 | - first: 113 | name: _SrcBlend 114 | second: 1 115 | - first: 116 | name: _UVSec 117 | second: 0 118 | - first: 119 | name: _ZWrite 120 | second: 1 121 | m_Colors: 122 | - first: 123 | name: _Color 124 | second: {r: 0.36764705, g: 0.47667345, b: 1, a: 1} 125 | - first: 126 | name: _EmissionColor 127 | second: {r: 0, g: 0, b: 0, a: 1} 128 | -------------------------------------------------------------------------------- /Assets/Example/Materials/Ground.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_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Ground 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _BumpMap 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _DetailAlbedoMap 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - first: 31 | name: _DetailMask 32 | second: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - first: 37 | name: _DetailNormalMap 38 | second: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - first: 43 | name: _EmissionMap 44 | second: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - first: 49 | name: _MainTex 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - first: 55 | name: _MetallicGlossMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - first: 61 | name: _OcclusionMap 62 | second: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - first: 67 | name: _ParallaxMap 68 | second: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | m_Floats: 73 | - first: 74 | name: _BumpScale 75 | second: 1 76 | - first: 77 | name: _Cutoff 78 | second: 0.5 79 | - first: 80 | name: _DetailNormalMapScale 81 | second: 1 82 | - first: 83 | name: _DstBlend 84 | second: 0 85 | - first: 86 | name: _GlossMapScale 87 | second: 1 88 | - first: 89 | name: _Glossiness 90 | second: 0.5 91 | - first: 92 | name: _GlossyReflections 93 | second: 1 94 | - first: 95 | name: _Metallic 96 | second: 0 97 | - first: 98 | name: _Mode 99 | second: 0 100 | - first: 101 | name: _OcclusionStrength 102 | second: 1 103 | - first: 104 | name: _Parallax 105 | second: 0.02 106 | - first: 107 | name: _SmoothnessTextureChannel 108 | second: 0 109 | - first: 110 | name: _SpecularHighlights 111 | second: 1 112 | - first: 113 | name: _SrcBlend 114 | second: 1 115 | - first: 116 | name: _UVSec 117 | second: 0 118 | - first: 119 | name: _ZWrite 120 | second: 1 121 | m_Colors: 122 | - first: 123 | name: _Color 124 | second: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 1} 125 | - first: 126 | name: _EmissionColor 127 | second: {r: 0, g: 0, b: 0, a: 1} 128 | -------------------------------------------------------------------------------- /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: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 2 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 2 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 2 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 1 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 2 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 2 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 2 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: {} 166 | -------------------------------------------------------------------------------- /Assets/Scripts/FeatherFall.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using UnityEngine; 3 | 4 | [RequireComponent(typeof(BoxCollider), typeof(Rigidbody), typeof(ConstantForce))] 5 | public class FeatherFall : MonoBehaviour { 6 | [SerializeField, Range(0.01f, 1f)] private float m_FloatForce = 0.8f; 7 | [SerializeField, Range(0.01f, 1f)] private float m_SlidePower = 0.2f; 8 | [SerializeField, Range(0.01f, 1f)] private float m_PuffPower = 0.05f; 9 | [SerializeField, Range(0.01f, 1f)] private float m_PuffDelayMin = 0.2f; 10 | [SerializeField, Range(0.01f, 1f)] private float m_PuffDelayMax = 0.3f; 11 | 12 | private Rigidbody m_Rigidbody; 13 | private BoxCollider m_Collider; 14 | private Vector3 m_AntigravityForce; 15 | private float m_LastTime; 16 | private float m_Delay; 17 | private Vector3[] m_EdgePoints; 18 | private Vector3 m_SlideVector; 19 | private Vector3 m_LastPuffPosition; 20 | private Vector3 m_LastPuffPower; 21 | 22 | private void Start() { 23 | m_Rigidbody = GetComponent(); 24 | m_Collider = GetComponent(); 25 | m_AntigravityForce = GetAntigravityForce(); 26 | GetComponent().force = m_AntigravityForce*m_FloatForce; 27 | 28 | Vector3 center = m_Collider.center; 29 | Vector3 size = m_Collider.size/2; 30 | 31 | // Edge points listed in circular order so the opposite point can be easily chosen. 32 | m_EdgePoints = new[] { 33 | new Vector3(-size.x, 0, size.z) + center, //top left 34 | new Vector3( 0, 0, size.z) + center, //top 35 | new Vector3( size.x, 0, size.z) + center, //top right 36 | new Vector3( size.x, 0, 0) + center, //right 37 | new Vector3( size.x, 0, -size.z) + center, //bottom right 38 | new Vector3( 0, 0, -size.z) + center, //bottom 39 | new Vector3(-size.x, 0, -size.z) + center, //bottom left 40 | new Vector3(-size.x, 0, 0) + center //left 41 | }; 42 | } 43 | 44 | private void Update() { 45 | UpdateSlide(); 46 | UpdatePuffs(); 47 | } 48 | 49 | private void UpdateSlide() { 50 | // This generates a vector along the plane of the object pointing most downward. 51 | Vector3 normal = transform.up; 52 | m_SlideVector.x = normal.x*normal.y; 53 | m_SlideVector.z = normal.z*normal.y; 54 | m_SlideVector.y = -(normal.x*normal.x) - normal.z*normal.z; 55 | m_SlideVector = m_SlideVector*m_SlidePower; 56 | m_Rigidbody.AddForce(m_SlideVector); 57 | } 58 | 59 | private void UpdatePuffs() { 60 | if (m_LastTime + m_Delay < Time.time) { 61 | Puff(); 62 | } 63 | } 64 | 65 | private void Puff() { 66 | float velocity = m_Rigidbody.velocity.y < 0 ? m_Rigidbody.velocity.magnitude : -m_Rigidbody.velocity.magnitude; 67 | 68 | if (Mathf.Abs(velocity) < 0.001f) { 69 | return; 70 | } 71 | 72 | Vector3 puffPosition = GetPuffPosition(); 73 | m_LastPuffPosition = transform.InverseTransformPoint(puffPosition); 74 | 75 | Vector3 pushAngle = Vector3.Dot(transform.up, Vector3.down) > 0 ? -Vector3.up : Vector3.up; 76 | m_LastPuffPower = pushAngle*m_AntigravityForce.magnitude*m_PuffPower*velocity/100; 77 | 78 | Vector3 powerVector = transform.TransformDirection(m_LastPuffPower); 79 | m_Rigidbody.AddForceAtPosition(powerVector, puffPosition, ForceMode.Impulse); 80 | 81 | m_LastTime = Time.time; 82 | m_Delay = Random.Range(m_PuffDelayMin, m_PuffDelayMax); 83 | } 84 | 85 | private Vector3 GetPuffPosition() { 86 | // Gets a random point along the object's edge. 87 | int pointIndex = Random.Range(0, m_EdgePoints.Length - 1); 88 | m_LastPuffPosition = m_EdgePoints[pointIndex]; 89 | Vector3 worldPoint = transform.TransformPoint(m_LastPuffPosition); 90 | 91 | // Chooses an edge position on the opposite side if the point chosen isn't on the leading edge. 92 | if (!IsLeadingEdge(worldPoint)) { 93 | m_LastPuffPosition = m_EdgePoints[(pointIndex + m_EdgePoints.Length/2)%m_EdgePoints.Length]; 94 | worldPoint = transform.TransformPoint(m_LastPuffPosition); 95 | } 96 | 97 | return worldPoint; 98 | } 99 | 100 | private bool IsLeadingEdge(Vector3 globalPoint) { 101 | Vector3 globalCenter = m_Collider.bounds.center; 102 | Vector3 pointDirection = globalPoint - globalCenter; 103 | return Vector3.Dot(pointDirection, m_Rigidbody.velocity) > 0; 104 | } 105 | 106 | private Vector3 GetAntigravityForce() { 107 | float totalMass = transform.GetComponentsInChildren().Sum(rb => rb.mass); 108 | return Physics.gravity*totalMass*-1f; 109 | } 110 | 111 | private void OnDrawGizmos() { 112 | if (m_EdgePoints == null) { 113 | return; 114 | } 115 | 116 | // Draw Slide Vector 117 | Debug.DrawRay(transform.position, m_SlideVector, Color.blue); 118 | 119 | // Draw Last Puff Vector 120 | Vector3 puffPosition = transform.TransformPoint(m_LastPuffPosition); 121 | Color puffColor = Color.white; 122 | float timeSinceLast = Time.time - m_LastTime; 123 | puffColor.a = 1 - timeSinceLast/m_Delay; 124 | Vector3 powerVector = transform.TransformDirection(m_LastPuffPower); 125 | Debug.DrawRay(puffPosition, powerVector*10, puffColor); 126 | 127 | // Draw Edge Points 128 | foreach (Vector3 edgePoint in m_EdgePoints) { 129 | Vector3 edgePosition = transform.TransformPoint(edgePoint); 130 | Gizmos.color = Color.white; 131 | Gizmos.DrawSphere(edgePosition, 0.01f); 132 | } 133 | } 134 | } -------------------------------------------------------------------------------- /Assets/Example/Prefabs/Paper.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000012941755776} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000010944399330 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 4 20 | m_Component: 21 | - 4: {fileID: 4000012330016592} 22 | - 33: {fileID: 33000011628151834} 23 | - 23: {fileID: 23000012545879718} 24 | m_Layer: 0 25 | m_Name: Geo 26 | m_TagString: Untagged 27 | m_Icon: {fileID: 0} 28 | m_NavMeshLayer: 0 29 | m_StaticEditorFlags: 0 30 | m_IsActive: 1 31 | --- !u!1 &1000012941755776 32 | GameObject: 33 | m_ObjectHideFlags: 0 34 | m_PrefabParentObject: {fileID: 0} 35 | m_PrefabInternal: {fileID: 100100000} 36 | serializedVersion: 4 37 | m_Component: 38 | - 4: {fileID: 4000013808607044} 39 | - 65: {fileID: 65000012432380394} 40 | - 54: {fileID: 54000012460737102} 41 | - 75: {fileID: 75000013853451008} 42 | - 114: {fileID: 114000010408085520} 43 | - 114: {fileID: 114000011740585998} 44 | m_Layer: 0 45 | m_Name: Paper 46 | m_TagString: Untagged 47 | m_Icon: {fileID: 0} 48 | m_NavMeshLayer: 0 49 | m_StaticEditorFlags: 0 50 | m_IsActive: 1 51 | --- !u!4 &4000012330016592 52 | Transform: 53 | m_ObjectHideFlags: 1 54 | m_PrefabParentObject: {fileID: 0} 55 | m_PrefabInternal: {fileID: 100100000} 56 | m_GameObject: {fileID: 1000010944399330} 57 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 58 | m_LocalPosition: {x: 0, y: 0, z: 0} 59 | m_LocalScale: {x: 0.5, y: 0.008465939, z: 0.32923457} 60 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 61 | m_Children: [] 62 | m_Father: {fileID: 4000013808607044} 63 | m_RootOrder: 0 64 | --- !u!4 &4000013808607044 65 | Transform: 66 | m_ObjectHideFlags: 1 67 | m_PrefabParentObject: {fileID: 0} 68 | m_PrefabInternal: {fileID: 100100000} 69 | m_GameObject: {fileID: 1000012941755776} 70 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 71 | m_LocalPosition: {x: 0, y: 0, z: 0} 72 | m_LocalScale: {x: 1, y: 1, z: 1} 73 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 74 | m_Children: 75 | - {fileID: 4000012330016592} 76 | m_Father: {fileID: 0} 77 | m_RootOrder: 0 78 | --- !u!23 &23000012545879718 79 | MeshRenderer: 80 | m_ObjectHideFlags: 1 81 | m_PrefabParentObject: {fileID: 0} 82 | m_PrefabInternal: {fileID: 100100000} 83 | m_GameObject: {fileID: 1000010944399330} 84 | m_Enabled: 1 85 | m_CastShadows: 1 86 | m_ReceiveShadows: 1 87 | m_MotionVectors: 1 88 | m_LightProbeUsage: 1 89 | m_ReflectionProbeUsage: 1 90 | m_Materials: 91 | - {fileID: 2100000, guid: c3c0ccac5f8a931499979f66f3c1a31e, type: 2} 92 | m_SubsetIndices: 93 | m_StaticBatchRoot: {fileID: 0} 94 | m_ProbeAnchor: {fileID: 0} 95 | m_LightProbeVolumeOverride: {fileID: 0} 96 | m_ScaleInLightmap: 1 97 | m_PreserveUVs: 1 98 | m_IgnoreNormalsForChartDetection: 0 99 | m_ImportantGI: 0 100 | m_SelectedWireframeHidden: 0 101 | m_MinimumChartSize: 4 102 | m_AutoUVMaxDistance: 0.5 103 | m_AutoUVMaxAngle: 89 104 | m_LightmapParameters: {fileID: 0} 105 | m_SortingLayerID: 0 106 | m_SortingOrder: 0 107 | --- !u!33 &33000011628151834 108 | MeshFilter: 109 | m_ObjectHideFlags: 1 110 | m_PrefabParentObject: {fileID: 0} 111 | m_PrefabInternal: {fileID: 100100000} 112 | m_GameObject: {fileID: 1000010944399330} 113 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 114 | --- !u!54 &54000012460737102 115 | Rigidbody: 116 | m_ObjectHideFlags: 1 117 | m_PrefabParentObject: {fileID: 0} 118 | m_PrefabInternal: {fileID: 100100000} 119 | m_GameObject: {fileID: 1000012941755776} 120 | serializedVersion: 2 121 | m_Mass: 0.1 122 | m_Drag: 0.85 123 | m_AngularDrag: 0.93 124 | m_UseGravity: 1 125 | m_IsKinematic: 0 126 | m_Interpolate: 1 127 | m_Constraints: 0 128 | m_CollisionDetection: 0 129 | --- !u!65 &65000012432380394 130 | BoxCollider: 131 | m_ObjectHideFlags: 1 132 | m_PrefabParentObject: {fileID: 0} 133 | m_PrefabInternal: {fileID: 100100000} 134 | m_GameObject: {fileID: 1000012941755776} 135 | m_Material: {fileID: 0} 136 | m_IsTrigger: 0 137 | m_Enabled: 1 138 | serializedVersion: 2 139 | m_Size: {x: 0.50056577, y: 0.008, z: 0.32911968} 140 | m_Center: {x: 0.00058695674, y: 0, z: 0.0002802238} 141 | --- !u!75 &75000013853451008 142 | ConstantForce: 143 | m_ObjectHideFlags: 1 144 | m_PrefabParentObject: {fileID: 0} 145 | m_PrefabInternal: {fileID: 100100000} 146 | m_GameObject: {fileID: 1000012941755776} 147 | m_Enabled: 1 148 | m_Force: {x: 0, y: 0, z: 0} 149 | m_RelativeForce: {x: 0, y: 0, z: 0} 150 | m_Torque: {x: 0, y: 0, z: 0} 151 | m_RelativeTorque: {x: 0, y: 0, z: 0} 152 | --- !u!114 &114000010408085520 153 | MonoBehaviour: 154 | m_ObjectHideFlags: 1 155 | m_PrefabParentObject: {fileID: 0} 156 | m_PrefabInternal: {fileID: 100100000} 157 | m_GameObject: {fileID: 1000012941755776} 158 | m_Enabled: 1 159 | m_EditorHideFlags: 0 160 | m_Script: {fileID: 11500000, guid: d989b59316561b241afd46bed693aa66, type: 3} 161 | m_Name: 162 | m_EditorClassIdentifier: 163 | m_FloatForce: 0.926 164 | m_SlidePower: 0.392 165 | m_PuffPower: 0.187 166 | m_PuffDelayMin: 0.215 167 | m_PuffDelayMax: 0.414 168 | --- !u!114 &114000011740585998 169 | MonoBehaviour: 170 | m_ObjectHideFlags: 1 171 | m_PrefabParentObject: {fileID: 0} 172 | m_PrefabInternal: {fileID: 100100000} 173 | m_GameObject: {fileID: 1000012941755776} 174 | m_Enabled: 1 175 | m_EditorHideFlags: 0 176 | m_Script: {fileID: 11500000, guid: 300855edde3a8ca46988a29569d7993d, type: 3} 177 | m_Name: 178 | m_EditorClassIdentifier: 179 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /Assets/Example/Test.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_PVSObjectsArray: [] 8 | m_PVSPortalsArray: [] 9 | m_OcclusionBakeSettings: 10 | smallestOccluder: 5 11 | smallestHole: 0.25 12 | backfaceThreshold: 100 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 7 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_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | m_IndirectSpecularColor: {r: 0.44692528, g: 0.49678713, b: 0.5750856, a: 1} 41 | --- !u!157 &3 42 | LightmapSettings: 43 | m_ObjectHideFlags: 0 44 | serializedVersion: 7 45 | m_GIWorkflowMode: 0 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 1 55 | m_LightmapEditorSettings: 56 | serializedVersion: 4 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_DirectLightInLightProbes: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_LightingDataAsset: {fileID: 0} 75 | m_RuntimeCPUUsage: 25 76 | --- !u!196 &4 77 | NavMeshSettings: 78 | serializedVersion: 2 79 | m_ObjectHideFlags: 0 80 | m_BuildSettings: 81 | serializedVersion: 2 82 | agentRadius: 0.5 83 | agentHeight: 2 84 | agentSlope: 45 85 | agentClimb: 0.4 86 | ledgeDropHeight: 0 87 | maxJumpAcrossDistance: 0 88 | accuratePlacement: 0 89 | minRegionArea: 2 90 | cellSize: 0.16666667 91 | manualCellSize: 0 92 | m_NavMeshData: {fileID: 0} 93 | --- !u!1001 &72135554 94 | Prefab: 95 | m_ObjectHideFlags: 0 96 | serializedVersion: 2 97 | m_Modification: 98 | m_TransformParent: {fileID: 0} 99 | m_Modifications: 100 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 101 | propertyPath: m_LocalPosition.x 102 | value: 0 103 | objectReference: {fileID: 0} 104 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 105 | propertyPath: m_LocalPosition.y 106 | value: 0 107 | objectReference: {fileID: 0} 108 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 109 | propertyPath: m_LocalPosition.z 110 | value: 0 111 | objectReference: {fileID: 0} 112 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 113 | propertyPath: m_LocalRotation.x 114 | value: 0 115 | objectReference: {fileID: 0} 116 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 117 | propertyPath: m_LocalRotation.y 118 | value: 0 119 | objectReference: {fileID: 0} 120 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 121 | propertyPath: m_LocalRotation.z 122 | value: 0 123 | objectReference: {fileID: 0} 124 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 125 | propertyPath: m_LocalRotation.w 126 | value: 1 127 | objectReference: {fileID: 0} 128 | - target: {fileID: 4000013224790212, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 129 | propertyPath: m_RootOrder 130 | value: 2 131 | objectReference: {fileID: 0} 132 | - target: {fileID: 1000011091414616, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 133 | propertyPath: m_IsActive 134 | value: 1 135 | objectReference: {fileID: 0} 136 | - target: {fileID: 23000012691444236, guid: b923b88bb60009449a23ccb3f33268b1, 137 | type: 2} 138 | propertyPath: m_Materials.Array.data[0] 139 | value: 140 | objectReference: {fileID: 2100000, guid: bdff4a9e15115b84ba1b4328a7030f94, type: 2} 141 | m_RemovedComponents: [] 142 | m_ParentPrefab: {fileID: 100100000, guid: b923b88bb60009449a23ccb3f33268b1, type: 2} 143 | m_IsPrefabParent: 0 144 | --- !u!1 &351886326 145 | GameObject: 146 | m_ObjectHideFlags: 0 147 | m_PrefabParentObject: {fileID: 0} 148 | m_PrefabInternal: {fileID: 0} 149 | serializedVersion: 4 150 | m_Component: 151 | - 4: {fileID: 351886328} 152 | - 114: {fileID: 351886327} 153 | m_Layer: 0 154 | m_Name: PaperGenerator 155 | m_TagString: Untagged 156 | m_Icon: {fileID: 0} 157 | m_NavMeshLayer: 0 158 | m_StaticEditorFlags: 0 159 | m_IsActive: 1 160 | --- !u!114 &351886327 161 | MonoBehaviour: 162 | m_ObjectHideFlags: 0 163 | m_PrefabParentObject: {fileID: 0} 164 | m_PrefabInternal: {fileID: 0} 165 | m_GameObject: {fileID: 351886326} 166 | m_Enabled: 1 167 | m_EditorHideFlags: 0 168 | m_Script: {fileID: 11500000, guid: 592c2f99262ac63469f865661aa785b3, type: 3} 169 | m_Name: 170 | m_EditorClassIdentifier: 171 | m_Prefab: {fileID: 1000012941755776, guid: 18a0e785ddbd4864eaa1a2b2cd163d06, type: 2} 172 | m_Delay: 0.5 173 | m_DestroyDelay: 10 174 | m_RotateRandomly: 1 175 | m_InitialVelocity: {x: 0, y: 5, z: 0} 176 | --- !u!4 &351886328 177 | Transform: 178 | m_ObjectHideFlags: 0 179 | m_PrefabParentObject: {fileID: 0} 180 | m_PrefabInternal: {fileID: 0} 181 | m_GameObject: {fileID: 351886326} 182 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 183 | m_LocalPosition: {x: 0, y: 5.197, z: 0} 184 | m_LocalScale: {x: 1, y: 1, z: 1} 185 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 186 | m_Children: [] 187 | m_Father: {fileID: 0} 188 | m_RootOrder: 1 189 | --- !u!1 &589282600 190 | GameObject: 191 | m_ObjectHideFlags: 0 192 | m_PrefabParentObject: {fileID: 0} 193 | m_PrefabInternal: {fileID: 0} 194 | serializedVersion: 4 195 | m_Component: 196 | - 4: {fileID: 589282605} 197 | - 20: {fileID: 589282604} 198 | - 124: {fileID: 589282603} 199 | - 92: {fileID: 589282602} 200 | - 81: {fileID: 589282601} 201 | - 114: {fileID: 589282606} 202 | - 114: {fileID: 589282607} 203 | - 135: {fileID: 589282608} 204 | m_Layer: 0 205 | m_Name: Camera 206 | m_TagString: Untagged 207 | m_Icon: {fileID: 0} 208 | m_NavMeshLayer: 0 209 | m_StaticEditorFlags: 0 210 | m_IsActive: 1 211 | --- !u!81 &589282601 212 | AudioListener: 213 | m_ObjectHideFlags: 0 214 | m_PrefabParentObject: {fileID: 0} 215 | m_PrefabInternal: {fileID: 0} 216 | m_GameObject: {fileID: 589282600} 217 | m_Enabled: 1 218 | --- !u!92 &589282602 219 | Behaviour: 220 | m_ObjectHideFlags: 0 221 | m_PrefabParentObject: {fileID: 0} 222 | m_PrefabInternal: {fileID: 0} 223 | m_GameObject: {fileID: 589282600} 224 | m_Enabled: 1 225 | --- !u!124 &589282603 226 | Behaviour: 227 | m_ObjectHideFlags: 0 228 | m_PrefabParentObject: {fileID: 0} 229 | m_PrefabInternal: {fileID: 0} 230 | m_GameObject: {fileID: 589282600} 231 | m_Enabled: 1 232 | --- !u!20 &589282604 233 | Camera: 234 | m_ObjectHideFlags: 0 235 | m_PrefabParentObject: {fileID: 0} 236 | m_PrefabInternal: {fileID: 0} 237 | m_GameObject: {fileID: 589282600} 238 | m_Enabled: 1 239 | serializedVersion: 2 240 | m_ClearFlags: 1 241 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 242 | m_NormalizedViewPortRect: 243 | serializedVersion: 2 244 | x: 0 245 | y: 0 246 | width: 1 247 | height: 1 248 | near clip plane: 0.3 249 | far clip plane: 1000 250 | field of view: 60 251 | orthographic: 0 252 | orthographic size: 5 253 | m_Depth: 0 254 | m_CullingMask: 255 | serializedVersion: 2 256 | m_Bits: 4294967295 257 | m_RenderingPath: -1 258 | m_TargetTexture: {fileID: 0} 259 | m_TargetDisplay: 0 260 | m_TargetEye: 3 261 | m_HDR: 0 262 | m_OcclusionCulling: 1 263 | m_StereoConvergence: 10 264 | m_StereoSeparation: 0.022 265 | m_StereoMirrorMode: 0 266 | --- !u!4 &589282605 267 | Transform: 268 | m_ObjectHideFlags: 0 269 | m_PrefabParentObject: {fileID: 0} 270 | m_PrefabInternal: {fileID: 0} 271 | m_GameObject: {fileID: 589282600} 272 | m_LocalRotation: {x: -0.074990846, y: 0.90285414, z: -0.1758002, w: -0.38513002} 273 | m_LocalPosition: {x: 4.26, y: 6.96, z: 4.1} 274 | m_LocalScale: {x: 1, y: 1, z: 1} 275 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 276 | m_Children: [] 277 | m_Father: {fileID: 0} 278 | m_RootOrder: 3 279 | --- !u!114 &589282606 280 | MonoBehaviour: 281 | m_ObjectHideFlags: 0 282 | m_PrefabParentObject: {fileID: 0} 283 | m_PrefabInternal: {fileID: 0} 284 | m_GameObject: {fileID: 589282600} 285 | m_Enabled: 1 286 | m_EditorHideFlags: 0 287 | m_Script: {fileID: 11500000, guid: edd0f3ae4ab0d7349ac1e9311dc0e0d1, type: 3} 288 | m_Name: 289 | m_EditorClassIdentifier: 290 | m_MainSpeed: 10 291 | m_ShiftAdd: 25 292 | m_MaxShift: 100 293 | m_Sensitivity: 0.25 294 | --- !u!114 &589282607 295 | MonoBehaviour: 296 | m_ObjectHideFlags: 0 297 | m_PrefabParentObject: {fileID: 0} 298 | m_PrefabInternal: {fileID: 0} 299 | m_GameObject: {fileID: 589282600} 300 | m_Enabled: 1 301 | m_EditorHideFlags: 0 302 | m_Script: {fileID: 11500000, guid: a3c7cd5c4304b3e46855dfccd2fa82b3, type: 3} 303 | m_Name: 304 | m_EditorClassIdentifier: 305 | m_PixelsPerUnit: 100 306 | --- !u!135 &589282608 307 | SphereCollider: 308 | m_ObjectHideFlags: 0 309 | m_PrefabParentObject: {fileID: 0} 310 | m_PrefabInternal: {fileID: 0} 311 | m_GameObject: {fileID: 589282600} 312 | m_Material: {fileID: 0} 313 | m_IsTrigger: 0 314 | m_Enabled: 1 315 | serializedVersion: 2 316 | m_Radius: 0.5 317 | m_Center: {x: 0, y: 0, z: 0} 318 | --- !u!1 &1694850882 319 | GameObject: 320 | m_ObjectHideFlags: 0 321 | m_PrefabParentObject: {fileID: 0} 322 | m_PrefabInternal: {fileID: 0} 323 | serializedVersion: 4 324 | m_Component: 325 | - 4: {fileID: 1694850884} 326 | - 108: {fileID: 1694850883} 327 | m_Layer: 0 328 | m_Name: Directional Light 329 | m_TagString: Untagged 330 | m_Icon: {fileID: 0} 331 | m_NavMeshLayer: 0 332 | m_StaticEditorFlags: 0 333 | m_IsActive: 1 334 | --- !u!108 &1694850883 335 | Light: 336 | m_ObjectHideFlags: 0 337 | m_PrefabParentObject: {fileID: 0} 338 | m_PrefabInternal: {fileID: 0} 339 | m_GameObject: {fileID: 1694850882} 340 | m_Enabled: 1 341 | serializedVersion: 7 342 | m_Type: 1 343 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 344 | m_Intensity: 1 345 | m_Range: 10 346 | m_SpotAngle: 30 347 | m_CookieSize: 10 348 | m_Shadows: 349 | m_Type: 2 350 | m_Resolution: -1 351 | m_CustomResolution: -1 352 | m_Strength: 1 353 | m_Bias: 0.05 354 | m_NormalBias: 0.4 355 | m_NearPlane: 0.2 356 | m_Cookie: {fileID: 0} 357 | m_DrawHalo: 0 358 | m_Flare: {fileID: 0} 359 | m_RenderMode: 0 360 | m_CullingMask: 361 | serializedVersion: 2 362 | m_Bits: 4294967295 363 | m_Lightmapping: 4 364 | m_AreaSize: {x: 1, y: 1} 365 | m_BounceIntensity: 1 366 | m_ShadowRadius: 0 367 | m_ShadowAngle: 0 368 | --- !u!4 &1694850884 369 | Transform: 370 | m_ObjectHideFlags: 0 371 | m_PrefabParentObject: {fileID: 0} 372 | m_PrefabInternal: {fileID: 0} 373 | m_GameObject: {fileID: 1694850882} 374 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 375 | m_LocalPosition: {x: 0, y: 3, z: -3.81} 376 | m_LocalScale: {x: 1, y: 1, z: 1} 377 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 378 | m_Children: [] 379 | m_Father: {fileID: 0} 380 | m_RootOrder: 0 381 | -------------------------------------------------------------------------------- /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: 8 7 | productGUID: beaec07d7d7339d419815a1c280e3ccc 8 | AndroidProfiler: 0 9 | defaultScreenOrientation: 4 10 | targetDevice: 2 11 | useOnDemandResources: 0 12 | accelerometerFrequency: 60 13 | companyName: DefaultCompany 14 | productName: Falling Paper Experiment 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | m_SplashScreenStyle: 0 18 | m_ShowUnitySplashScreen: 1 19 | m_VirtualRealitySplashScreen: {fileID: 0} 20 | defaultScreenWidth: 1024 21 | defaultScreenHeight: 768 22 | defaultScreenWidthWeb: 960 23 | defaultScreenHeightWeb: 600 24 | m_RenderingPath: 1 25 | m_MobileRenderingPath: 1 26 | m_ActiveColorSpace: 0 27 | m_MTRendering: 1 28 | m_MobileMTRendering: 0 29 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 30 | iosShowActivityIndicatorOnLoading: -1 31 | androidShowActivityIndicatorOnLoading: -1 32 | iosAppInBackgroundBehavior: 0 33 | displayResolutionDialog: 1 34 | iosAllowHTTPDownload: 1 35 | allowedAutorotateToPortrait: 1 36 | allowedAutorotateToPortraitUpsideDown: 1 37 | allowedAutorotateToLandscapeRight: 1 38 | allowedAutorotateToLandscapeLeft: 1 39 | useOSAutorotation: 1 40 | use32BitDisplayBuffer: 1 41 | disableDepthAndStencilBuffers: 0 42 | defaultIsFullScreen: 1 43 | defaultIsNativeResolution: 1 44 | runInBackground: 0 45 | captureSingleScreen: 0 46 | Override IPod Music: 0 47 | Prepare IOS For Recording: 0 48 | submitAnalytics: 1 49 | usePlayerLog: 1 50 | bakeCollisionMeshes: 0 51 | forceSingleInstance: 0 52 | resizableWindow: 0 53 | useMacAppStoreValidation: 0 54 | gpuSkinning: 0 55 | graphicsJobs: 0 56 | xboxPIXTextureCapture: 0 57 | xboxEnableAvatar: 0 58 | xboxEnableKinect: 0 59 | xboxEnableKinectAutoTracking: 0 60 | xboxEnableFitness: 0 61 | visibleInBackground: 0 62 | allowFullscreenSwitch: 1 63 | macFullscreenMode: 2 64 | d3d9FullscreenMode: 1 65 | d3d11FullscreenMode: 1 66 | xboxSpeechDB: 0 67 | xboxEnableHeadOrientation: 0 68 | xboxEnableGuest: 0 69 | xboxEnablePIXSampling: 0 70 | n3dsDisableStereoscopicView: 0 71 | n3dsEnableSharedListOpt: 1 72 | n3dsEnableVSync: 0 73 | uiUse16BitDepthBuffer: 0 74 | ignoreAlphaClear: 0 75 | xboxOneResolution: 0 76 | xboxOneMonoLoggingLevel: 0 77 | xboxOneLoggingLevel: 1 78 | ps3SplashScreen: {fileID: 0} 79 | videoMemoryForVertexBuffers: 0 80 | psp2PowerMode: 0 81 | psp2AcquireBGM: 1 82 | wiiUTVResolution: 0 83 | wiiUGamePadMSAA: 1 84 | wiiUSupportsNunchuk: 0 85 | wiiUSupportsClassicController: 0 86 | wiiUSupportsBalanceBoard: 0 87 | wiiUSupportsMotionPlus: 0 88 | wiiUSupportsProController: 0 89 | wiiUAllowScreenCapture: 1 90 | wiiUControllerCount: 0 91 | m_SupportedAspectRatios: 92 | 4:3: 1 93 | 5:4: 1 94 | 16:10: 1 95 | 16:9: 1 96 | Others: 1 97 | bundleIdentifier: com.Company.ProductName 98 | bundleVersion: 1.0 99 | preloadedAssets: [] 100 | metroEnableIndependentInputSource: 0 101 | xboxOneDisableKinectGpuReservation: 0 102 | singlePassStereoRendering: 0 103 | protectGraphicsMemory: 0 104 | AndroidBundleVersionCode: 1 105 | AndroidMinSdkVersion: 9 106 | AndroidPreferredInstallLocation: 1 107 | aotOptions: 108 | apiCompatibilityLevel: 2 109 | stripEngineCode: 1 110 | iPhoneStrippingLevel: 0 111 | iPhoneScriptCallOptimization: 0 112 | iPhoneBuildNumber: 0 113 | ForceInternetPermission: 0 114 | ForceSDCardPermission: 0 115 | CreateWallpaper: 0 116 | APKExpansionFiles: 0 117 | preloadShaders: 0 118 | StripUnusedMeshComponents: 0 119 | VertexChannelCompressionMask: 120 | serializedVersion: 2 121 | m_Bits: 238 122 | iPhoneSdkVersion: 988 123 | iPhoneTargetOSVersion: 24 124 | tvOSSdkVersion: 0 125 | tvOSTargetOSVersion: 900 126 | tvOSRequireExtendedGameController: 0 127 | uIPrerenderedIcon: 0 128 | uIRequiresPersistentWiFi: 0 129 | uIRequiresFullScreen: 1 130 | uIStatusBarHidden: 1 131 | uIExitOnSuspend: 0 132 | uIStatusBarStyle: 0 133 | iPhoneSplashScreen: {fileID: 0} 134 | iPhoneHighResSplashScreen: {fileID: 0} 135 | iPhoneTallHighResSplashScreen: {fileID: 0} 136 | iPhone47inSplashScreen: {fileID: 0} 137 | iPhone55inPortraitSplashScreen: {fileID: 0} 138 | iPhone55inLandscapeSplashScreen: {fileID: 0} 139 | iPadPortraitSplashScreen: {fileID: 0} 140 | iPadHighResPortraitSplashScreen: {fileID: 0} 141 | iPadLandscapeSplashScreen: {fileID: 0} 142 | iPadHighResLandscapeSplashScreen: {fileID: 0} 143 | appleTVSplashScreen: {fileID: 0} 144 | tvOSSmallIconLayers: [] 145 | tvOSLargeIconLayers: [] 146 | tvOSTopShelfImageLayers: [] 147 | iOSLaunchScreenType: 0 148 | iOSLaunchScreenPortrait: {fileID: 0} 149 | iOSLaunchScreenLandscape: {fileID: 0} 150 | iOSLaunchScreenBackgroundColor: 151 | serializedVersion: 2 152 | rgba: 0 153 | iOSLaunchScreenFillPct: 100 154 | iOSLaunchScreenSize: 100 155 | iOSLaunchScreenCustomXibPath: 156 | iOSLaunchScreeniPadType: 0 157 | iOSLaunchScreeniPadImage: {fileID: 0} 158 | iOSLaunchScreeniPadBackgroundColor: 159 | serializedVersion: 2 160 | rgba: 0 161 | iOSLaunchScreeniPadFillPct: 100 162 | iOSLaunchScreeniPadSize: 100 163 | iOSLaunchScreeniPadCustomXibPath: 164 | iOSDeviceRequirements: [] 165 | iOSURLSchemes: [] 166 | appleDeveloperTeamID: 167 | AndroidTargetDevice: 0 168 | AndroidSplashScreenScale: 0 169 | androidSplashScreen: {fileID: 0} 170 | AndroidKeystoreName: 171 | AndroidKeyaliasName: 172 | AndroidTVCompatibility: 1 173 | AndroidIsGame: 1 174 | androidEnableBanner: 1 175 | m_AndroidBanners: 176 | - width: 320 177 | height: 180 178 | banner: {fileID: 0} 179 | androidGamepadSupportLevel: 0 180 | resolutionDialogBanner: {fileID: 0} 181 | m_BuildTargetIcons: [] 182 | m_BuildTargetBatching: [] 183 | m_BuildTargetGraphicsAPIs: [] 184 | webPlayerTemplate: APPLICATION:Default 185 | m_TemplateCustomTags: {} 186 | wiiUTitleID: 0005000011000000 187 | wiiUGroupID: 00010000 188 | wiiUCommonSaveSize: 4096 189 | wiiUAccountSaveSize: 2048 190 | wiiUOlvAccessKey: 0 191 | wiiUTinCode: 0 192 | wiiUJoinGameId: 0 193 | wiiUJoinGameModeMask: 0000000000000000 194 | wiiUCommonBossSize: 0 195 | wiiUAccountBossSize: 0 196 | wiiUAddOnUniqueIDs: [] 197 | wiiUMainThreadStackSize: 3072 198 | wiiULoaderThreadStackSize: 1024 199 | wiiUSystemHeapSize: 128 200 | wiiUTVStartupScreen: {fileID: 0} 201 | wiiUGamePadStartupScreen: {fileID: 0} 202 | wiiUDrcBufferDisabled: 0 203 | wiiUProfilerLibPath: 204 | actionOnDotNetUnhandledException: 1 205 | enableInternalProfiler: 0 206 | logObjCUncaughtExceptions: 1 207 | enableCrashReportAPI: 0 208 | cameraUsageDescription: 209 | locationUsageDescription: 210 | microphoneUsageDescription: 211 | XboxTitleId: 212 | XboxImageXexPath: 213 | XboxSpaPath: 214 | XboxGenerateSpa: 0 215 | XboxDeployKinectResources: 0 216 | XboxSplashScreen: {fileID: 0} 217 | xboxEnableSpeech: 0 218 | xboxAdditionalTitleMemorySize: 0 219 | xboxDeployKinectHeadOrientation: 0 220 | xboxDeployKinectHeadPosition: 0 221 | ps3TitleConfigPath: 222 | ps3DLCConfigPath: 223 | ps3ThumbnailPath: 224 | ps3BackgroundPath: 225 | ps3SoundPath: 226 | ps3NPAgeRating: 12 227 | ps3TrophyCommId: 228 | ps3NpCommunicationPassphrase: 229 | ps3TrophyPackagePath: 230 | ps3BootCheckMaxSaveGameSizeKB: 128 231 | ps3TrophyCommSig: 232 | ps3SaveGameSlots: 1 233 | ps3TrialMode: 0 234 | ps3VideoMemoryForAudio: 0 235 | ps3EnableVerboseMemoryStats: 0 236 | ps3UseSPUForUmbra: 0 237 | ps3EnableMoveSupport: 1 238 | ps3DisableDolbyEncoding: 0 239 | ps4NPAgeRating: 12 240 | ps4NPTitleSecret: 241 | ps4NPTrophyPackPath: 242 | ps4ParentalLevel: 1 243 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 244 | ps4Category: 0 245 | ps4MasterVersion: 01.00 246 | ps4AppVersion: 01.00 247 | ps4AppType: 0 248 | ps4ParamSfxPath: 249 | ps4VideoOutPixelFormat: 0 250 | ps4VideoOutInitialWidth: 1920 251 | ps4VideoOutReprojectionRate: 120 252 | ps4PronunciationXMLPath: 253 | ps4PronunciationSIGPath: 254 | ps4BackgroundImagePath: 255 | ps4StartupImagePath: 256 | ps4SaveDataImagePath: 257 | ps4SdkOverride: 258 | ps4BGMPath: 259 | ps4ShareFilePath: 260 | ps4ShareOverlayImagePath: 261 | ps4PrivacyGuardImagePath: 262 | ps4NPtitleDatPath: 263 | ps4RemotePlayKeyAssignment: -1 264 | ps4RemotePlayKeyMappingDir: 265 | ps4PlayTogetherPlayerCount: 0 266 | ps4EnterButtonAssignment: 1 267 | ps4ApplicationParam1: 0 268 | ps4ApplicationParam2: 0 269 | ps4ApplicationParam3: 0 270 | ps4ApplicationParam4: 0 271 | ps4DownloadDataSize: 0 272 | ps4GarlicHeapSize: 2048 273 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 274 | ps4UseDebugIl2cppLibs: 0 275 | ps4pnSessions: 1 276 | ps4pnPresence: 1 277 | ps4pnFriends: 1 278 | ps4pnGameCustomData: 1 279 | playerPrefsSupport: 0 280 | ps4UseResolutionFallback: 0 281 | restrictedAudioUsageRights: 0 282 | ps4ReprojectionSupport: 0 283 | ps4UseAudio3dBackend: 0 284 | ps4SocialScreenEnabled: 0 285 | ps4ScriptOptimizationLevel: 3 286 | ps4Audio3dVirtualSpeakerCount: 14 287 | ps4attribCpuUsage: 0 288 | ps4PatchPkgPath: 289 | ps4PatchLatestPkgPath: 290 | ps4PatchChangeinfoPath: 291 | ps4PatchDayOne: 0 292 | ps4attribUserManagement: 0 293 | ps4attribMoveSupport: 0 294 | ps4attrib3DSupport: 0 295 | ps4attribShareSupport: 0 296 | ps4attribExclusiveVR: 0 297 | ps4disableAutoHideSplash: 0 298 | ps4IncludedModules: [] 299 | monoEnv: 300 | psp2Splashimage: {fileID: 0} 301 | psp2NPTrophyPackPath: 302 | psp2NPSupportGBMorGJP: 0 303 | psp2NPAgeRating: 12 304 | psp2NPTitleDatPath: 305 | psp2NPCommsID: 306 | psp2NPCommunicationsID: 307 | psp2NPCommsPassphrase: 308 | psp2NPCommsSig: 309 | psp2ParamSfxPath: 310 | psp2ManualPath: 311 | psp2LiveAreaGatePath: 312 | psp2LiveAreaBackroundPath: 313 | psp2LiveAreaPath: 314 | psp2LiveAreaTrialPath: 315 | psp2PatchChangeInfoPath: 316 | psp2PatchOriginalPackage: 317 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 318 | psp2KeystoneFile: 319 | psp2MemoryExpansionMode: 0 320 | psp2DRMType: 0 321 | psp2StorageType: 0 322 | psp2MediaCapacity: 0 323 | psp2DLCConfigPath: 324 | psp2ThumbnailPath: 325 | psp2BackgroundPath: 326 | psp2SoundPath: 327 | psp2TrophyCommId: 328 | psp2TrophyPackagePath: 329 | psp2PackagedResourcesPath: 330 | psp2SaveDataQuota: 10240 331 | psp2ParentalLevel: 1 332 | psp2ShortTitle: Not Set 333 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 334 | psp2Category: 0 335 | psp2MasterVersion: 01.00 336 | psp2AppVersion: 01.00 337 | psp2TVBootMode: 0 338 | psp2EnterButtonAssignment: 2 339 | psp2TVDisableEmu: 0 340 | psp2AllowTwitterDialog: 1 341 | psp2Upgradable: 0 342 | psp2HealthWarning: 0 343 | psp2UseLibLocation: 0 344 | psp2InfoBarOnStartup: 0 345 | psp2InfoBarColor: 0 346 | psp2UseDebugIl2cppLibs: 0 347 | psmSplashimage: {fileID: 0} 348 | spritePackerPolicy: 349 | scriptingDefineSymbols: 350 | 1: CROSS_PLATFORM_INPUT 351 | 2: CROSS_PLATFORM_INPUT 352 | 4: CROSS_PLATFORM_INPUT;MOBILE_INPUT 353 | 7: CROSS_PLATFORM_INPUT;MOBILE_INPUT 354 | 14: MOBILE_INPUT 355 | 17: MOBILE_INPUT 356 | 20: MOBILE_INPUT 357 | metroPackageName: Falling Paper Experiment 358 | metroPackageVersion: 359 | metroCertificatePath: 360 | metroCertificatePassword: 361 | metroCertificateSubject: 362 | metroCertificateIssuer: 363 | metroCertificateNotAfter: 0000000000000000 364 | metroApplicationDescription: Falling Paper Experiment 365 | wsaImages: {} 366 | metroTileShortName: 367 | metroCommandLineArgsFile: 368 | metroTileShowName: 0 369 | metroMediumTileShowName: 0 370 | metroLargeTileShowName: 0 371 | metroWideTileShowName: 0 372 | metroDefaultTileSize: 1 373 | metroTileForegroundText: 1 374 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 375 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 376 | a: 1} 377 | metroSplashScreenUseBackgroundColor: 0 378 | platformCapabilities: {} 379 | metroFTAName: 380 | metroFTAFileTypes: [] 381 | metroProtocolName: 382 | metroCompilationOverrides: 1 383 | tizenProductDescription: 384 | tizenProductURL: 385 | tizenSigningProfileName: 386 | tizenGPSPermissions: 0 387 | tizenMicrophonePermissions: 0 388 | tizenMinOSVersion: 0 389 | n3dsUseExtSaveData: 0 390 | n3dsCompressStaticMem: 1 391 | n3dsExtSaveDataNumber: 0x12345 392 | n3dsStackSize: 131072 393 | n3dsTargetPlatform: 2 394 | n3dsRegion: 7 395 | n3dsMediaSize: 0 396 | n3dsLogoStyle: 3 397 | n3dsTitle: GameName 398 | n3dsProductCode: 399 | n3dsApplicationId: 0xFF3FF 400 | stvDeviceAddress: 401 | stvProductDescription: 402 | stvProductAuthor: 403 | stvProductAuthorEmail: 404 | stvProductLink: 405 | stvProductCategory: 0 406 | XboxOneProductId: 407 | XboxOneUpdateKey: 408 | XboxOneSandboxId: 409 | XboxOneContentId: 410 | XboxOneTitleId: 411 | XboxOneSCId: 412 | XboxOneGameOsOverridePath: 413 | XboxOnePackagingOverridePath: 414 | XboxOneAppManifestOverridePath: 415 | XboxOnePackageEncryption: 0 416 | XboxOnePackageUpdateGranularity: 2 417 | XboxOneDescription: 418 | XboxOneIsContentPackage: 0 419 | XboxOneEnableGPUVariability: 0 420 | XboxOneSockets: {} 421 | XboxOneSplashScreen: {fileID: 0} 422 | XboxOneAllowedProductIds: [] 423 | XboxOnePersistentLocalStorageSize: 0 424 | intPropertyNames: 425 | - Standalone::ScriptingBackend 426 | - WebPlayer::ScriptingBackend 427 | Standalone::ScriptingBackend: 0 428 | WebPlayer::ScriptingBackend: 0 429 | boolPropertyNames: 430 | - Android::VR::enable 431 | - Metro::VR::enable 432 | - N3DS::VR::enable 433 | - PS3::VR::enable 434 | - PS4::VR::enable 435 | - PSM::VR::enable 436 | - PSP2::VR::enable 437 | - SamsungTV::VR::enable 438 | - Standalone::VR::enable 439 | - Tizen::VR::enable 440 | - WebGL::VR::enable 441 | - WebPlayer::VR::enable 442 | - WiiU::VR::enable 443 | - Xbox360::VR::enable 444 | - XboxOne::VR::enable 445 | - XboxOne::enus 446 | - iOS::VR::enable 447 | - tvOS::VR::enable 448 | Android::VR::enable: 0 449 | Metro::VR::enable: 0 450 | N3DS::VR::enable: 0 451 | PS3::VR::enable: 0 452 | PS4::VR::enable: 0 453 | PSM::VR::enable: 0 454 | PSP2::VR::enable: 0 455 | SamsungTV::VR::enable: 0 456 | Standalone::VR::enable: 0 457 | Tizen::VR::enable: 0 458 | WebGL::VR::enable: 0 459 | WebPlayer::VR::enable: 0 460 | WiiU::VR::enable: 0 461 | Xbox360::VR::enable: 0 462 | XboxOne::VR::enable: 0 463 | XboxOne::enus: 1 464 | iOS::VR::enable: 0 465 | tvOS::VR::enable: 0 466 | stringPropertyNames: 467 | - Analytics_ServiceEnabled::Analytics_ServiceEnabled 468 | - Build_ServiceEnabled::Build_ServiceEnabled 469 | - Collab_ServiceEnabled::Collab_ServiceEnabled 470 | - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled 471 | - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled 472 | - Hub_ServiceEnabled::Hub_ServiceEnabled 473 | - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled 474 | - UNet_ServiceEnabled::UNet_ServiceEnabled 475 | - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled 476 | Analytics_ServiceEnabled::Analytics_ServiceEnabled: False 477 | Build_ServiceEnabled::Build_ServiceEnabled: False 478 | Collab_ServiceEnabled::Collab_ServiceEnabled: False 479 | ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled: False 480 | Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled: False 481 | Hub_ServiceEnabled::Hub_ServiceEnabled: False 482 | Purchasing_ServiceEnabled::Purchasing_ServiceEnabled: False 483 | UNet_ServiceEnabled::UNet_ServiceEnabled: True 484 | Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled: False 485 | vectorPropertyNames: 486 | - Android::VR::enabledDevices 487 | - Metro::VR::enabledDevices 488 | - N3DS::VR::enabledDevices 489 | - PS3::VR::enabledDevices 490 | - PS4::VR::enabledDevices 491 | - PSM::VR::enabledDevices 492 | - PSP2::VR::enabledDevices 493 | - SamsungTV::VR::enabledDevices 494 | - Standalone::VR::enabledDevices 495 | - Tizen::VR::enabledDevices 496 | - WebGL::VR::enabledDevices 497 | - WebPlayer::VR::enabledDevices 498 | - WiiU::VR::enabledDevices 499 | - Xbox360::VR::enabledDevices 500 | - XboxOne::VR::enabledDevices 501 | - iOS::VR::enabledDevices 502 | - tvOS::VR::enabledDevices 503 | Android::VR::enabledDevices: 504 | - Oculus 505 | Metro::VR::enabledDevices: [] 506 | N3DS::VR::enabledDevices: [] 507 | PS3::VR::enabledDevices: [] 508 | PS4::VR::enabledDevices: 509 | - PlayStationVR 510 | PSM::VR::enabledDevices: [] 511 | PSP2::VR::enabledDevices: [] 512 | SamsungTV::VR::enabledDevices: [] 513 | Standalone::VR::enabledDevices: 514 | - Oculus 515 | Tizen::VR::enabledDevices: [] 516 | WebGL::VR::enabledDevices: [] 517 | WebPlayer::VR::enabledDevices: [] 518 | WiiU::VR::enabledDevices: [] 519 | Xbox360::VR::enabledDevices: [] 520 | XboxOne::VR::enabledDevices: [] 521 | iOS::VR::enabledDevices: [] 522 | tvOS::VR::enabledDevices: [] 523 | cloudProjectId: c2489b47-9b51-483a-8398-197a225220fb 524 | projectName: Falling Paper Experiment 525 | organizationId: unspeakable-productions 526 | cloudEnabled: 0 527 | -------------------------------------------------------------------------------- /unity-feather-fall.sln.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | HINT 3 | WARNING 4 | WARNING 5 | WARNING 6 | WARNING 7 | WARNING 8 | WARNING 9 | WARNING 10 | WARNING 11 | DO_NOT_SHOW 12 | <?xml version="1.0" encoding="utf-16"?><Profile name="Cleanup Without Reorder"><CSUpdateFileHeader>True</CSUpdateFileHeader><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="False" /><CSEnforceVarKeywordUsageSettings>True</CSEnforceVarKeywordUsageSettings><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments></Profile> 13 | Cleanup Without Reorder 14 | OPTIMAL_FILL 15 | Required 16 | Required 17 | Required 18 | Required 19 | Join 20 | END_OF_LINE 21 | END_OF_LINE 22 | True 23 | END_OF_LINE 24 | 0 25 | END_OF_LINE 26 | TOGETHER 27 | ALWAYS_ADD 28 | ALWAYS_ADD 29 | ALWAYS_ADD 30 | ALWAYS_ADD 31 | ALWAYS_ADD 32 | ALWAYS_ADD 33 | END_OF_LINE 34 | END_OF_LINE 35 | False 36 | END_OF_LINE 37 | False 38 | False 39 | True 40 | False 41 | LINE_BREAK 42 | LINE_BREAK 43 | False 44 | END_OF_LINE 45 | False 46 | UseExplicitType 47 | UseExplicitType 48 | UseExplicitType 49 | 50 | AI 51 | BB 52 | FPS 53 | FX 54 | GO 55 | GUI 56 | IK 57 | MLX 58 | OVR 59 | PC 60 | PID 61 | <Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /> 62 | <Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /> 63 | <Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /> 64 | <Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /> 65 | <Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /> 66 | <Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /> 67 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 68 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 69 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 70 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 71 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 72 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 73 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 74 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 75 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 76 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 77 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 78 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 79 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 80 | <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> 81 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 82 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 83 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 84 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 85 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 86 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 87 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 88 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 89 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 90 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 91 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 92 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 93 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 94 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 95 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 96 | <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> 97 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 98 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 99 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 100 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 101 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 102 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 103 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 104 | True 105 | True 106 | True 107 | True 108 | [-209,-8](1310,924) 109 | FileHeaderTextPage --------------------------------------------------------------------------------