public override void initialize(MoverBehavior copiedBehavior) { RigidBodyForceMoverBehavior copiedRigidBodyForceBehavior = copiedBehavior as RigidBodyForceMoverBehavior; if (copiedRigidBodyForceBehavior != null) { m_data.copy(copiedRigidBodyForceBehavior.m_data); } initialize(); }
private void createRigidBodyForceMoverBehaviorUI(MoverBehavior moverBehavior) { RigidBodyForceMoverBehavior rigidBodyForceMover = moverBehavior as RigidBodyForceMoverBehavior; if (rigidBodyForceMover != null) { EditorGUI.BeginChangeCheck(); Vector3 forceMagnitude = EditorGUILayout.Vector3Field("Force Magnitude", rigidBodyForceMover.getForceMagnitude()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Force Magnitude"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setForceMagnitude(forceMagnitude); } EditorGUI.BeginChangeCheck(); float duration = EditorGUILayout.DelayedFloatField("Duration", rigidBodyForceMover.getDuration()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Duration"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setDuration(duration); } EditorGUILayout.LabelField("RigidBody"); EditorGUI.BeginChangeCheck(); Rigidbody rigidBody = (Rigidbody)EditorGUILayout.ObjectField(rigidBodyForceMover.getRigidBody(), typeof(Rigidbody), true); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "RigidBody"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setRigidBody(rigidBody); } EditorGUI.BeginChangeCheck(); bool isAdditiveForce = EditorGUILayout.Toggle("Is Additive Force", rigidBodyForceMover.getIsAdditiveForce()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Is Additive Force"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setIsAdditiveForce(isAdditiveForce); } EditorGUILayout.LabelField("Surface Collision Checker Transform"); EditorGUI.BeginChangeCheck(); Transform surfaceCheckTransform = (Transform)EditorGUILayout.ObjectField(rigidBodyForceMover.getSurfaceCheckSourceTransform(), typeof(Transform), true); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Surface Collision Checker Transform"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setSurfaceCheckSourceTransform(surfaceCheckTransform); } if (surfaceCheckTransform) { EditorGUI.BeginChangeCheck(); float surfaceCheckRadius = EditorGUILayout.DelayedFloatField("Checker Radius", rigidBodyForceMover.getSurfaceCheckRadius()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Checker Radius"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setSurfaceCheckRadius(surfaceCheckRadius); } LayerMask surfaceLayerMask = InspectorHelper.convert32BitLayerMaskToTrimmedMask(rigidBodyForceMover.getSurfaceLayerMask()); EditorGUI.BeginChangeCheck(); surfaceLayerMask = EditorGUILayout.MaskField("Surface Layer Mask", surfaceLayerMask, UnityEditorInternal.InternalEditorUtility.layers); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(rigidBodyForceMover, "Surface Layer Mask"); EditorUtility.SetDirty(rigidBodyForceMover); rigidBodyForceMover.setSurfaceLayerMask(InspectorHelper.convertTrimmedLayerMaskTo32BitMask(surfaceLayerMask)); } } } }