a5.0.0f4ţ˙˙˙s˙8-l'€Łć„hŒÎA,Œ€7€˙˙˙˙€Ś€˛€Ő€ ހ.€†€Ä€ ހ.€H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ H€ę€˙˙˙˙ €1€1€˙˙˙˙ @ހ€Q€j€ń€(˙˙˙˙€1€1€˙˙˙˙€ހ€€j€˙˙˙˙€H€›€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ.€y€< ހ.€ހCH€T˙˙˙˙€1€1€˙˙˙˙ @ހ€!Q€j€"H€`˙˙˙˙#€1€1€˙˙˙˙$@ހ€%Q€j€&H€l˙˙˙˙'€1€1€˙˙˙˙(@ހ€)Q€j€*L€{+PPtrm_FileIDm_PathIDm_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacem_AssemblyNamem_IsEditorScriptČ0ĹňĂôL.`?^Ů0D7€˙˙˙˙€Ś€˛€Ѐڀڀڀ#Ś€+H€3˙˙˙˙€1€1€˙˙˙˙@ހ€ Q€j€ ™€< Ś€H H€Z˙˙˙˙ €1€1€˙˙˙˙@ހ€Q€j€Ѐgڀڀڀ#Ś€+v~ € €– €Ÿ €¨ €ą €ş €Ă €Ě €Ő €Ţ  €ç! €ń" €ű# €$ €% €&Ő€#˙˙˙˙'€1€1€˙˙˙˙(€ހ€)H€j€˙˙˙˙*€1€1€˙˙˙˙+@ހ€,Q€j€-™€*.ހ8/AssetMetaDataguiddata[0]data[1]data[2]data[3]pathNametimeCreatedoriginalChangesetoriginalNameoriginalParentHash128originalDigestbytes[0]bytes[1]bytes[2]bytes[3]bytes[4]bytes[5]bytes[6]bytes[7]bytes[8]bytes[9]bytes[10]bytes[11]bytes[12]bytes[13]bytes[14]bytes[15]labelsassetStoreReflicenseType z{ď@îČă5^(H'7€˙˙˙˙€Ś€˛€ Ő€ ހ#.€,†€Ä€ ހ#.€,H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ Ő€5˙˙˙˙ €1€1€˙˙˙˙ €ހ€€j€˙˙˙˙€H€›€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ#.€, €I@ž€X @ހ#.€,H€]˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€H€h˙˙˙˙€1€1€˙˙˙˙ @ހ€!Q€j€"H€z˙˙˙˙#€1€1€˙˙˙˙$@ހ€%Q€j€&MonoImporterPPtrm_FileIDm_PathIDm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariant”˙˙˜@  ˙˙ŕyŻŘE ss˙˙j[SBÜ:BߘnQ}JŔú:Assets/LeapMotion/DemoResources/Scripts/AerodynamicLeaf.csAerodynamicLeafË /******************************************************************************\ * Copyright (C) Leap Motion, Inc. 2011-2014. * * Leap Motion proprietary. Licensed under Apache 2.0 * * Available at http://www.apache.org/licenses/LICENSE-2.0.html * \******************************************************************************/ using UnityEngine; using System.Collections; public class AerodynamicLeaf : MonoBehaviour { public float airDragForce = 0.2f; public float airDragTorque = 0.001f; // Air to water transition level. public float waterHeight = 0.0f; public float transitionWidth = 0.2f; // Water drag. public float waterDrag = 5.0f; public float waterAngularDrag = 10.0f; // Water forces. public float waterBuoancyForce = 0.1f; public float waterDragTorque = 0.002f; public float waterDragForce = 0.002f; public float waterSurfaceTorque = 0.002f; // Water curent. public Vector3 waterCurrentVelocity; public float waterCurrentForce = 0.1f; private float air_drag_; private float air_angular_drag_; private float drag_force_; private float drag_torque_; void Start() { air_drag_ = GetComponent().drag; air_angular_drag_ = GetComponent().angularDrag; drag_force_ = airDragForce; drag_torque_ = airDragTorque; } void DragUpdate() { Vector3 velocity = GetComponent().velocity; Vector3 normal = transform.up; float dot = Vector3.Dot(velocity, normal); GetComponent().AddForce(-normal * drag_force_ * dot); Vector3 cross = Vector3.Cross(velocity, normal); GetComponent().AddTorque(-drag_torque_ * cross); } void AirUpdate() { GetComponent().drag = air_drag_; GetComponent().angularDrag = air_angular_drag_; drag_force_ = airDragForce; drag_torque_ = airDragTorque; DragUpdate(); } void WaterUpdate(float level) { GetComponent().drag = waterDrag; GetComponent().angularDrag = waterAngularDrag; drag_force_ = waterDragForce; drag_torque_ = waterDragTorque; DragUpdate(); float transition = Mathf.Clamp(-level / transitionWidth, 0.0f, 1.0f); GetComponent().AddForce(new Vector3(0, waterBuoancyForce * transition, 0)); if (Vector3.Dot(transform.up, Vector3.up) >= 0) { Vector3 torque_vector = Vector3.Cross(transform.up, Vector3.up); GetComponent().AddTorque((1 - transition) * waterSurfaceTorque * torque_vector); } else { Vector3 torque_vector = Vector3.Cross(-transform.up, Vector3.up); GetComponent().AddTorque((1 - transition) * waterSurfaceTorque * torque_vector); } // Running water current. Vector3 delta_current = waterCurrentVelocity - GetComponent().velocity; delta_current.y = 0; GetComponent().AddForce(waterCurrentForce * delta_current); } float UnitsAboveWater() { return transform.position.y - waterHeight; } public bool TouchingWater() { return UnitsAboveWater() < 0; } void FixedUpdate() { if (TouchingWater()) WaterUpdate(UnitsAboveWater()); else AirUpdate(); } } AerodynamicLeafAssembly-CSharp.dll