Esempio n. 1
0
    private void UpdateHandler()
    {
        GPUSkinningSampler sampler = target as GPUSkinningSampler;

        if (EditorApplication.isCompiling)
        {
            if (Selection.activeGameObject == sampler.gameObject)
            {
                Selection.activeGameObject = null;
                return;
            }
        }

        float deltaTime = Time.realtimeSinceStartup - time;

        if (preview != null)
        {
            PreviewDrawBounds();
            PreviewDrawArrows();
            PreviewDrawGrid();

            preview.Update_Editor(deltaTime);
            PreviewInteraction_CameraRestriction();
            cam.Render();
        }

        time = Time.realtimeSinceStartup;

        if (!sampler.isSampling && sampler.IsSamplingProgress())
        {
            if (++sampler.samplingClipIndex < sampler.animClips.Length)
            {
                sampler.StartSample();
            }
            else
            {
                sampler.EndSample();
                EditorApplication.isPlaying = false;
                EditorUtility.ClearProgressBar();
                LockInspector(false);
            }
        }

        if (sampler.isSampling)
        {
            string msg = sampler.animClip.name + "(" + (sampler.samplingClipIndex + 1) + "/" + sampler.animClips.Length + ")";
            EditorUtility.DisplayProgressBar("Sampling, DONOT stop playing", msg, (float)(sampler.samplingFrameIndex + 1) / sampler.samplingTotalFrams);
        }
    }
Esempio n. 2
0
    private void OnGUI_Sampler(GPUSkinningSampler sampler)
    {
        BeginBox();
        {
            EditorGUILayout.PropertyField(serializedObject.FindProperty("animName"), new GUIContent("Animation Name"));

            GUI.enabled = false;
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.PropertyField(serializedObject.FindProperty("anim"), new GUIContent());
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.PropertyField(serializedObject.FindProperty("savedMesh"), new GUIContent());
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.PropertyField(serializedObject.FindProperty("savedMtrl"), new GUIContent());
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.PropertyField(serializedObject.FindProperty("savedShader"), new GUIContent());
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.PropertyField(serializedObject.FindProperty("texture"), new GUIContent());
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            GUI.enabled = true;

            EditorGUILayout.PropertyField(serializedObject.FindProperty("skinQuality"), new GUIContent("Quality"));

            EditorGUILayout.PropertyField(serializedObject.FindProperty("shaderType"), new GUIContent("Shader Type"));

            EditorGUILayout.PropertyField(serializedObject.FindProperty("rootBoneTransform"), new GUIContent("Root Bone"));

            OnGUI_AnimClips(sampler);

            if (GUILayout.Button("Step1: Play Scene"))
            {
                DestroyPreview();
                EditorApplication.isPlaying = true;
            }

            if (Application.isPlaying)
            {
                if (GUILayout.Button("Step2: Start Sample"))
                {
                    DestroyPreview();
                    LockInspector(true);
                    sampler.BeginSample();
                    sampler.StartSample();
                }
            }
        }
        EndBox();
    }