コード例 #1
0
 void Update()
 {
     if (PlayerController.Level1)
     {
         Chapter1.SetActive(true);
     }
     else
     {
         Chapter1.SetActive(false);
     }
     if (PlayerController.Level2)
     {
         Chapter2.SetActive(true);
     }
     else
     {
         Chapter2.SetActive(false);
     }
     if (PlayerController.Level3)
     {
         Chapter3.SetActive(true);
     }
     else
     {
         Chapter3.SetActive(false);
     }
     if (PlayerController.Level4)
     {
         Chapter4.SetActive(true);
     }
     else
     {
         Chapter4.SetActive(false);
     }
     if (PlayerController.Level5)
     {
         Chapter5.SetActive(true);
     }
     else
     {
         Chapter5.SetActive(false);
     }
     if (PlayerController.Level6)
     {
         Chapter6.SetActive(true);
     }
     else
     {
         Chapter6.SetActive(false);
     }
 }
コード例 #2
0
ファイル: Examples.cs プロジェクト: saniainf/uchebnik
 static void Chap5()
 {
     Chapter5 chapter5 = new Chapter5();
 }
コード例 #3
0
ファイル: Chapter5Editor.cs プロジェクト: wangqinru/Math
    public override void OnInspectorGUI()
    {
        // base.OnInspectorGUI ();

        // Hide Script property
        serializedObject.Update();
        DrawPropertiesExcluding(serializedObject, new string[] { "m_Script" });
        serializedObject.ApplyModifiedProperties();

        Chapter5 c5 = target as Chapter5;

        EditorGUI.BeginChangeCheck();

        // Model Transform
        EditorGUILayout.BeginVertical(GUI.skin.box);

        EditorGUILayout.LabelField(new GUIContent("Model Transform"));

        modelTramsform.SetRow(0, RowVector4Field(modelTramsform.GetRow(0)));
        modelTramsform.SetRow(1, RowVector4Field(modelTramsform.GetRow(1)));
        modelTramsform.SetRow(2, RowVector4Field(modelTramsform.GetRow(2)));
        modelTramsform.SetRow(3, RowVector4Field(modelTramsform.GetRow(3)));

        if (GUILayout.Button("Reset"))
        {
            modelTramsform.SetRow(0, new Vector4(1, 0, 0, 0));
            modelTramsform.SetRow(1, new Vector4(0, 1, 0, 0));
            modelTramsform.SetRow(2, new Vector4(0, 0, 1, 0));
            modelTramsform.SetRow(3, new Vector4(0, 0, 0, 1));
        }

        if (GUILayout.Button("Apply"))
        {
            meshFilter = c5.Cube.GetComponent <MeshFilter>();
            origVerts  = meshFilter.mesh.vertices;
            newVerts   = new Vector3[origVerts.Length];

            for (int i = 0; i < origVerts.Length; i++)
            {
                newVerts[i] = modelTramsform.MultiplyPoint3x4(origVerts[i]);
            }

            meshFilter.mesh.vertices = newVerts;
        }

        EditorGUILayout.EndVertical();

        EditorGUILayout.BeginVertical(GUI.skin.box);

        determinant3x3 = EditorGUILayout.FloatField("Determinant (3x3)", determinant3x3);
        determinant4x4 = EditorGUILayout.FloatField("Determinant (4x4)", determinant4x4);

        EditorGUILayout.EndVertical();

        // Translation
        EditorGUILayout.BeginVertical(GUI.skin.box);

        translation = EditorGUILayout.Vector3Field(new GUIContent("Translation"), translation);

        if (GUILayout.Button("Apply"))
        {
            Matrix4x4 m = Matrix4x4.identity;
            m.SetTRS(translation, Quaternion.identity, Vector3.one);
            modelTramsform = m * modelTramsform;
        }

        EditorGUILayout.EndVertical();

        // Rotation
        EditorGUILayout.BeginVertical(GUI.skin.box);

        rotation = EditorGUILayout.Vector3Field(new GUIContent("Rotation"), rotation);

        if (GUILayout.Button("Apply"))
        {
            Matrix4x4 m = Matrix4x4.identity;
            m.SetTRS(Vector3.zero, Quaternion.Euler(rotation.x, rotation.y, rotation.z), Vector3.one);
            modelTramsform = m * modelTramsform;
        }

        EditorGUILayout.EndVertical();

        // Scale
        EditorGUILayout.BeginVertical(GUI.skin.box);

        scale = EditorGUILayout.Vector3Field(new GUIContent("Scale"), scale);

        if (GUILayout.Button("Apply"))
        {
            Matrix4x4 m = Matrix4x4.identity;
            m.SetTRS(Vector3.zero, Quaternion.identity, scale);
            modelTramsform = m * modelTramsform;
        }

        EditorGUILayout.EndVertical();

        // Projection Transform
        EditorGUILayout.BeginVertical(GUI.skin.box);

        EditorGUILayout.LabelField(new GUIContent("Projection Transform"));

        if (GUILayout.Button("Perspective"))
        {
            Camera.main.orthographic = false;
        }

        if (GUILayout.Button("Orthographic"))
        {
            Camera.main.orthographic = true;
        }

        projectionTramsform.SetRow(0, RowVector4Field(projectionTramsform.GetRow(0)));
        projectionTramsform.SetRow(1, RowVector4Field(projectionTramsform.GetRow(1)));
        projectionTramsform.SetRow(2, RowVector4Field(projectionTramsform.GetRow(2)));
        projectionTramsform.SetRow(3, RowVector4Field(projectionTramsform.GetRow(3)));

        if (GUILayout.Button("Camera.main.projectionMatrix"))
        {
            string graphicsDeviceType = SystemInfo.graphicsDeviceType.ToString();
            Debug.Log(graphicsDeviceType);

            bool dx = graphicsDeviceType.IndexOf("Direct3D") == 0;

            int dxVersion = 11;
            if (dx)
            {
                System.Int32.TryParse(graphicsDeviceType.Substring("Direct3D".Length), out dxVersion);
                Debug.Log("Direct3D version: " + dxVersion);
            }

            Matrix4x4 pm = Camera.main.projectionMatrix;

            if (dx)
            {
                if (dxVersion < 11)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        pm [1, i] = -pm [1, i];
                    }

                    for (int i = 0; i < 4; i++)
                    {
                        pm [2, i] = pm [2, i] * 0.5f + pm [3, i] * 0.5f;
                    }
                }
                else
                {
                    for (int i = 0; i < 4; i++)
                    {
                        pm[1, i] = -pm[1, i];
                    }

                    for (int i = 0; i < 4; i++)
                    {
                        pm[2, i] = pm[2, i] * -0.5f + pm[3, i] * 0.5f;
                    }
                }
            }

            projectionTramsform = pm;

            Matrix4x4 gpuProjectionMatrix = GL.GetGPUProjectionMatrix(Camera.main.projectionMatrix, true);
            if (pm == gpuProjectionMatrix)
            {
                Debug.Log("Camera.main.projectionMatrix matches with GL.GetGPUProjectionMatrix");
            }
            else
            {
                Debug.LogWarning("Camera.main.projectionMatrix doesn't match with GL.GetGPUProjectionMatrix");
            }
        }

        if (GUILayout.Button("GL.GetGPUProjectionMatrix"))
        {
            projectionTramsform = GL.GetGPUProjectionMatrix(Camera.main.projectionMatrix, true);
        }

        if (GUILayout.Button("Reset"))
        {
            projectionTramsform = Matrix4x4.identity;
            Camera.main.ResetProjectionMatrix();
        }

        if (GUILayout.Button("Set"))
        {
            Camera.main.projectionMatrix = projectionTramsform;
        }

        EditorGUILayout.EndVertical();

        if (EditorGUI.EndChangeCheck())
        {
            determinant3x3 = getDeterminant3x3(modelTramsform);
            determinant4x4 = getDeterminant4x4(modelTramsform);

            Undo.RecordObject(target, "Chapter5EditorUndo");
            EditorUtility.SetDirty(target);
        }
    }