public static void AddetScene()
    {
        if (GameObject.Find("BattleDir"))
        {
            return;
        }
        GameObject directorSample = Resources.Load("Prefab\\Scene\\BattleDir") as GameObject;
        GameObject director       = GameObject.Instantiate <GameObject>(directorSample);
        BattleSceneMainDirectorEntity directorEntity = director.GetComponent <BattleSceneMainDirectorEntity>();

        director.name = "BattleDir";
        Camera mainCamera           = Camera.main;
        CinemachineVirtualCamera vc = CinemachineMenu.InternalCreateVirtualCamera("CM vcam", true, typeof(CinemachineComposer), typeof(CinemachineTransposer));

        directorEntity.camera = vc;

        if (!GameObject.Find("DoorList"))
        {
            GameObject doorList = new GameObject("DoorList");
            directorEntity.SetDoorList(doorList);
            GameObject doorSample = Resources.Load <GameObject>("Prefab\\Scene\\Door");
            GameObject door       = GameObject.Instantiate <GameObject>(doorSample);
            door.transform.SetParent(doorList.transform);
        }
        if (!GameObject.Find("NPCList"))
        {
            GameObject npcList = new GameObject("NPCList");
            directorEntity.SetNPCList(npcList);
        }
    }
        public override void OnInspectorGUI()
        {
            BeginInspector();
            SerializedProperty vcamProperty = FindProperty(x => x.VirtualCamera);

            EditorGUI.indentLevel = 0; // otherwise subeditor layouts get screwed up

            Rect rect;
            CinemachineVirtualCameraBase vcam
                = vcamProperty.exposedReferenceValue as CinemachineVirtualCameraBase;

            if (vcam != null)
            {
                EditorGUILayout.PropertyField(vcamProperty, kVirtualCameraLabel);
            }
            else
            {
                GUIContent createLabel = new GUIContent("Create");
                Vector2    createSize  = GUI.skin.button.CalcSize(createLabel);

                rect        = EditorGUILayout.GetControlRect(true);
                rect.width -= createSize.x;

                EditorGUI.PropertyField(rect, vcamProperty, kVirtualCameraLabel);
                rect.x += rect.width; rect.width = createSize.x;
                if (GUI.Button(rect, createLabel))
                {
                    vcam = CinemachineMenu.CreateDefaultVirtualCamera();
                    vcamProperty.exposedReferenceValue = vcam;
                }
                serializedObject.ApplyModifiedProperties();
            }

            EditorGUI.BeginChangeCheck();
            DrawRemainingPropertiesInInspector();

            if (vcam != null)
            {
                DrawSubeditors(vcam);
            }

            // by default timeline rebuilds the entire graph when something changes,
            // but if a property of the virtual camera changes, we only need to re-evaluate the timeline.
            // this prevents flicker on post processing updates
            if (EditorGUI.EndChangeCheck())
            {
#if UNITY_2018_3_OR_NEWER
                TimelineEditor.Refresh(RefreshReason.SceneNeedsUpdate);
#endif
                GUI.changed = false;
            }
        }
    static public CinemachineVirtualCameraBase CreateStaticVcamFromSceneView()
    {
        CinemachineVirtualCameraBase vcam = CinemachineMenu.CreateStaticVirtualCamera();

        vcam.m_StandbyUpdate = CinemachineVirtualCameraBase.StandbyUpdateMode.Never;
        vcam.gameObject.SetActive(false);
#if UNITY_2018_3_OR_NEWER
        var d = TimelineEditor.inspectedDirector;
        if (d != null)
        {
            Undo.SetTransformParent(vcam.transform, d.transform, "");
        }
#endif
        return(vcam);
    }
Beispiel #4
0
        public override void OnInspectorGUI()
        {
            if (!mShot)
            {
                base.OnInspectorGUI();
            }
            if (mShot.VirtualCamera == null)
            {
                //serializedObject.Update();
                EditorGUILayout.BeginHorizontal();
                mShot.VirtualCamera = EditorGUILayout.ObjectField("Virtual Camera", mShot.VirtualCamera, typeof(CinemachineVirtualCameraBase), true, GUILayout.ExpandWidth(true)) as CinemachineVirtualCameraBase;
                if ((mShot.VirtualCamera == null) && GUILayout.Button(new GUIContent("Create"), GUILayout.ExpandWidth(false)))
                {
                    CinemachineVirtualCameraBase vcam = CinemachineMenu.CreateDefaultVirtualCamera();
                    mShot.VirtualCamera = vcam;
                }
                if (mShot.VirtualCamera != null)
                {
                    mShot.VmPath = mShot.VirtualCamera.name;
                }
                EditorGUILayout.EndHorizontal();
                //serializedObject.ApplyModifiedProperties();
            }
            else
            {
                serializedObject.Update();
                DrawPropertiesExcluding(serializedObject, m_excludeFields);

                // Create an editor for each of the cinemachine virtual cam and its components
                UpdateComponentEditors(mShot.VirtualCamera);
                if (m_editors != null)
                {
                    foreach (UnityEditor.Editor e in m_editors)
                    {
                        EditorGUILayout.Separator();
                        if (e.target.GetType() != typeof(Transform))
                        {
                            GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) });
                            EditorGUILayout.LabelField(e.target.GetType().Name, EditorStyles.boldLabel);
                        }
                        e.OnInspectorGUI();
                    }
                }
                serializedObject.ApplyModifiedProperties();
            }
        }
Beispiel #5
0
    static public CinemachineVirtualCameraBase CreatePassiveVcamFromSceneView()
    {
        var vcam = CinemachineMenu.CreatePassiveVirtualCamera("Virtual Camera", null, false);

        vcam.m_StandbyUpdate = CinemachineVirtualCameraBase.StandbyUpdateMode.Never;

#if false
        // GML this is too bold.  What if timeline is a child of something moving?
        // also, SetActive(false) prevents the animator from being able to animate the object
        vcam.gameObject.SetActive(false);
        var d = TimelineEditor.inspectedDirector;
        if (d != null)
        {
            Undo.SetTransformParent(vcam.transform, d.transform, "");
        }
#endif
        return(vcam);
    }
Beispiel #6
0
        public override void OnInspectorGUI()
        {
            CinemachineVirtualCameraBase obj
                = mVirtualCameraProperty.exposedReferenceValue as CinemachineVirtualCameraBase;

            if (obj == null)
            {
                serializedObject.Update();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.PropertyField(mVirtualCameraProperty, kVirtualCameraLabel, GUILayout.ExpandWidth(true));
                obj = mVirtualCameraProperty.exposedReferenceValue as CinemachineVirtualCameraBase;
                if ((obj == null) && GUILayout.Button(new GUIContent("Create"), GUILayout.ExpandWidth(false)))
                {
                    CinemachineVirtualCameraBase vcam = CinemachineMenu.CreateDefaultVirtualCamera();
                    mVirtualCameraProperty.exposedReferenceValue = vcam;
                }
                EditorGUILayout.EndHorizontal();
                serializedObject.ApplyModifiedProperties();
            }
            else
            {
                serializedObject.Update();
                DrawPropertiesExcluding(serializedObject, m_excludeFields);

                // Create an editor for each of the cinemachine virtual cam and its components
                UpdateComponentEditors(obj);
                if (m_editors != null)
                {
                    foreach (UnityEditor.Editor e in m_editors)
                    {
                        EditorGUILayout.Separator();
                        if (e.target.GetType() != typeof(Transform))
                        {
                            GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) });
                            EditorGUILayout.LabelField(e.target.GetType().Name, EditorStyles.boldLabel);
                        }
                        e.OnInspectorGUI();
                    }
                }
                serializedObject.ApplyModifiedProperties();
            }
        }
        public override void OnInspectorGUI()
        {
            BeginInspector();
            SerializedProperty vcamProperty = FindProperty(x => x.VirtualCamera);

            EditorGUI.indentLevel = 0; // otherwise subeditor layouts get screwed up

            Rect rect;
            CinemachineVirtualCameraBase vcam
                = vcamProperty.exposedReferenceValue as CinemachineVirtualCameraBase;

            if (vcam != null)
            {
                EditorGUILayout.PropertyField(vcamProperty, kVirtualCameraLabel);
            }
            else
            {
                GUIContent createLabel = new GUIContent("Create");
                Vector2    createSize  = GUI.skin.button.CalcSize(createLabel);

                rect        = EditorGUILayout.GetControlRect(true);
                rect.width -= createSize.x;

                EditorGUI.PropertyField(rect, vcamProperty, kVirtualCameraLabel);
                rect.x += rect.width; rect.width = createSize.x;
                if (GUI.Button(rect, createLabel))
                {
                    vcam = CinemachineMenu.CreateDefaultVirtualCamera();
                    vcamProperty.exposedReferenceValue = vcam;
                }
                serializedObject.ApplyModifiedProperties();
            }

            DrawRemainingPropertiesInInspector();

            if (vcam != null)
            {
                DrawSubeditors(vcam);
            }
        }