示例#1
0
    void LoadVertexAnim()
    {
        MegaVertexAnim am = (MegaVertexAnim)target;

        mods = am.gameObject.GetComponent <MegaModifiers>();

        string filename = EditorUtility.OpenFilePanel("Vertex Animation File", lastpath, "mpc");

        if (filename == null || filename.Length < 1)
        {
            return;
        }

        lastpath = filename;

        // Clear what we have
        Verts.Clear();

        ParseFile(filename, AnimatedMeshCallback);
        am.Verts = Verts.ToArray();

        BitArray animated = new BitArray(mods.verts.Length);
        int      count    = 0;

        for (int i = 0; i < Verts.Count; i++)
        {
            for (int v = 0; v < Verts[i].indices.Length; v++)
            {
                if (!animated[Verts[i].indices[v]])
                {
                    animated[Verts[i].indices[v]] = true;
                    count++;
                }
            }
        }

        am.NoAnim = new int[mods.verts.Length - count];
        int index = 0;

        for (int i = 0; i < animated.Count; i++)
        {
            if (!animated[i])
            {
                am.NoAnim[index++] = i;
            }
        }

        am.maxtime = 0.0f;
        for (int i = 0; i < Verts.Count; i++)
        {
            float t = Verts[i].con.Times[Verts[i].con.Times.Length - 1];
            if (t > am.maxtime)
            {
                am.maxtime = t;
            }
        }
    }
示例#2
0
    public override void OnInspectorGUI()
    {
        MegaVertexAnim am = (MegaVertexAnim)target;

        if (GUILayout.Button("Import Vertex Anim File"))
        {
            LoadVertexAnim();
            EditorUtility.SetDirty(target);
        }

        // Basic mod stuff
        showmodparams = EditorGUILayout.Foldout(showmodparams, "Modifier Common Params");

        if (showmodparams)
        {
            CommonModParamsBasic(am);
#if false
            am.ModEnabled   = EditorGUILayout.Toggle("Mod Enabled", am.ModEnabled);
            am.DisplayGizmo = EditorGUILayout.Toggle("Display Gizmo", am.DisplayGizmo);
            am.Order        = EditorGUILayout.IntField("Order", am.Order);
            am.gizCol1      = EditorGUILayout.ColorField("Giz Col 1", am.gizCol1);
            am.gizCol2      = EditorGUILayout.ColorField("Giz Col 2", am.gizCol2);
#endif
        }

        am.time     = EditorGUILayout.FloatField("Time", am.time);
        am.maxtime  = EditorGUILayout.FloatField("Loop Time", am.maxtime);
        am.animated = EditorGUILayout.Toggle("Animated", am.animated);
        am.speed    = EditorGUILayout.FloatField("Speed", am.speed);
        am.LoopMode = (MegaRepeatMode)EditorGUILayout.EnumPopup("Loop Mode", am.LoopMode);

        am.blendMode = (MegaBlendAnimMode)EditorGUILayout.EnumPopup("Blend Mode", am.blendMode);
        if (am.blendMode == MegaBlendAnimMode.Additive)
        {
            am.weight = EditorGUILayout.FloatField("Weight", am.weight);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }