private void createAttachToSurfaceMoverBehaviorUI(MoverBehavior moverBehavior) { SurfaceMoverBehavior surfaceMover = moverBehavior as SurfaceMoverBehavior; if (surfaceMover != null) { //EditorGUI.BeginChangeCheck(); //Vector3 positionOffset = EditorGUILayout.Vector3Field("Position Offset", surfaceMover.getPositionOffset()); //if (EditorGUI.EndChangeCheck()) //{ // Undo.RecordObject(surfaceMover, "Position Offset"); // EditorUtility.SetDirty(surfaceMover); // surfaceMover.setPositionOffset(positionOffset); //} EditorGUILayout.LabelField("Surface Collision Checker Transform"); EditorGUI.BeginChangeCheck(); Transform surfaceCheckTransform = (Transform)EditorGUILayout.ObjectField(surfaceMover.getSurfaceCheckSourceTransform(), typeof(Transform), true); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(surfaceMover, "Surface Collision Checker Transform"); EditorUtility.SetDirty(surfaceMover); surfaceMover.setSurfaceCheckSourceTransform(surfaceCheckTransform); } if (surfaceCheckTransform) { EditorGUI.BeginChangeCheck(); Vector3 rayCastDirection = EditorGUILayout.Vector3Field("Default RayCast Direction", surfaceMover.getDefaultRaycastDirection()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(surfaceMover, "Default RayCast Direction"); EditorUtility.SetDirty(surfaceMover); surfaceMover.setDefaultRaycastDirection(rayCastDirection); } LayerMask surfaceLayerMask = InspectorHelper.convert32BitLayerMaskToTrimmedMask(surfaceMover.getSurfaceLayerMask()); EditorGUI.BeginChangeCheck(); surfaceLayerMask = EditorGUILayout.MaskField("Surface Layer Mask", surfaceLayerMask, UnityEditorInternal.InternalEditorUtility.layers); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(surfaceMover, "Surface Layer Mask"); EditorUtility.SetDirty(surfaceMover); surfaceMover.setSurfaceLayerMask(InspectorHelper.convertTrimmedLayerMaskTo32BitMask(surfaceLayerMask)); } } EditorGUI.BeginChangeCheck(); float friction = EditorGUILayout.FloatField("Friction", surfaceMover.getFrictionValue()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(surfaceMover, "Friction"); EditorUtility.SetDirty(surfaceMover); surfaceMover.setFrictionValue(Mathf.Clamp01(friction)); } } }
public override void initialize(MoverBehavior copiedBehavior) { SurfaceMoverBehavior copiedSurfaceBehavior = copiedBehavior as SurfaceMoverBehavior; if (copiedSurfaceBehavior != null) { // m_data.copy(copiedSurfaceBehavior.m_data); } initialize(); }