Exemplo n.º 1
0
    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));
            }
        }
    }
Exemplo n.º 2
0
    public override void initialize(MoverBehavior copiedBehavior)
    {
        SurfaceMoverBehavior copiedSurfaceBehavior = copiedBehavior as SurfaceMoverBehavior;

        if (copiedSurfaceBehavior != null)
        {
//			m_data.copy(copiedSurfaceBehavior.m_data);
        }
        initialize();
    }