Inheritance: DebuggableBehavior
Example #1
0
    void OnTriggerEnter(Collider other)
    {
        CameraTrigger cameraTrigger = other.GetComponent <CameraTrigger>();

        if (cameraTrigger == null)
        {
            return;
        }
        if (cameraTrigger.Times == 0)
        {
            Offset.transform.position = cameraTrigger.CameraOffset.localPosition;
        }
        List <Vector3> pos = new List <Vector3>();

        if (null == cameraTrigger.CameraOffset)
        {
            pos.Add(DefaultOffset);
        }
        else
        {
            pos.Add(cameraTrigger.CameraOffset.localPosition);
        }

        iTween.moveToBezier(Offset, cameraTrigger.Times, 0, pos);
    }
Example #2
0
    public void SetTriggerActive(string name, bool active)
    {
        CameraTrigger t = GetTriggerByName(name);

        if (t == null)
        {
            Debuger.LogError(string.Format("没有找到触发器,名字:{0}", name));
            return;
        }
        SetTriggerActive(t, active);
    }
Example #3
0
 private void OnTriggerExit(Collider other)
 {
     if (other.GetComponent <CameraTrigger>())
     {
         CameraTrigger trig = other.GetComponent <CameraTrigger>();
         if (trig.ResetOnExit)
         {
             camera.camState = PlayerCamera.CameraState.Auto;
         }
         camera.UpdateCameraOrientation = true;
     }
 }
    public void OnSnakeTriggerExit(Collider col, SnakeCollider snakeCol)
    {
        if (snakeCol.isHead)
        {
            if (col.transform.parent == null || snakeCol.transform != target)
            {
                return;
            }

            CameraTrigger camTrigger = col.transform.parent.GetComponent <CameraTrigger>();
            if (camTrigger != null)
            {
                useCameraTriggerSettings = false;
            }
        }
    }
Example #5
0
    void Awake()
    {
        GameObject goCamChild = new GameObject(string.Format("Camera"));

        goCamChild.transform.SetParent(transform);
        camera             = goCamChild.AddComponent <Camera>();
        camera.enabled     = false;
        camera.fieldOfView = 90;

        GameObject goTriggerChild = new GameObject(string.Format("Cam Trigger"));

        goTriggerChild.transform.SetParent(transform);
        cameraTrigger = goTriggerChild.AddComponent <CameraTrigger>();

        raceCameras = transform.GetComponentInParent <RaceCameras>();
    }
Example #6
0
    private void OnTriggerEnter(Collider other)
    {
        CameraTrigger trigger = other.GetComponent <CameraTrigger>();

        if (trigger == null)
        {
            return;
        }
        if (trigger.cameraOffset == null)
        {
            iTween.MoveTo(offsetObject, defaultOffset, time);
        }
        else
        {
            Vector3 offsetPos = trigger.cameraOffset.localPosition;
            iTween.MoveTo(offsetObject, offsetPos, time);
        }
    }
Example #7
0
    public void AddTrigger()
    {
        GameObject go = new GameObject(GetUnUseTriggerName(), typeof(BoxCollider), typeof(CameraTrigger));

        go.layer = LayerMask.NameToLayer("CameraTrigger");
        Transform     t       = go.transform;
        CameraTrigger trigger = go.GetComponent <CameraTrigger>();
        BoxCollider   box     = go.GetComponent <BoxCollider>();

        t.SetParent(this.transform, false);
        t.localPosition    = Vector3.zero;
        t.localEulerAngles = Vector3.zero;
        t.localScale       = new Vector3(5, 10, 5);
        box.isTrigger      = true;
        box.enabled        = true;
        trigger.m_info     = new CameraInfo(CameraMgr.instance.m_curCameraInfo);

        Reset();
    }
Example #8
0
    private void OnTriggerStay(Collider other)
    {
        //Camera Triggers
        if (other.GetComponent <CameraTrigger>())
        {
            CameraTrigger trig = other.GetComponent <CameraTrigger>();
            camera.UpdateCameraOrientation = false;
            int NextCameraState = (int)trig.camState;
            camera.camState = (PlayerCamera.CameraState)NextCameraState;
            if (NextCameraState == 2)
            {
                camera.TargetPosition = trig.TargetPosition.position;
            }

            if (trig.ChangeDirection)
            {
                camera.SetLookDir(trig.Direction);
            }
        }
    }
Example #9
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.R))
        {
            /* Go to camera mode */
            Player script = player.GetComponent <Player>();


            if (_viewMode == ViewMode.WANDER)
            {
                _viewMode = ViewMode.CAMERA;
                script.GoToCameraView();
                UIManager.instance.showCameraOverlay();
            }
            else if (_viewMode == ViewMode.CAMERA)
            {
                _viewMode = ViewMode.WANDER;
                script.GoToWanderingView();
                UIManager.instance.HideCameraOverlay();
            }
        }

        if (_viewMode == ViewMode.CAMERA && Input.GetMouseButton(0))
        {
            CameraTrigger bugView = player.GetComponentInChildren <CameraTrigger>();
            foreach (BugType bug in bugView.bugsInView)
            {
                if (Bug.bugsCaught.IndexOf(bug) == -1)
                {
                    print(bug.ToString() + " Caught!");
                    Bug.bugsCaught.Add(bug);
                }
            }
            foreach (BugType bug in Bug.bugsCaught)
            {
                print(bug);
            }
        }
    }
 public void TriggerCamera(CameraTrigger trigger)
 {
     animator.SetTrigger(trigger.ToString());
 }
Example #11
0
 public void RemoveTrigger(CameraTrigger t)
 {
     t.Clear();
     m_triggers.Remove(t);
     GameObject.Destroy(t.gameObject);
 }
Example #12
0
 public void TriggerCamera(CameraTrigger trigger)
 {
     ANIMATOR.SetTrigger(HashManager.Instance.ArrCameraParams[(int)trigger]);
 }
Example #13
0
        //GameObject o = null;
        void OnGUI()
        {
            if (_labelstyle == null)
            {
                _labelstyle          = new GUIStyle(EditorStyles.boldLabel);
                _labelstyle.fontSize = 11;
            }

            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
            EditorGUILayout.Space();
            GUILayout.Label("CutScene Editor:", _labelstyle);
            EditorGUILayout.Space();
            _name = EditorGUILayout.TextField("Name", _name);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Scene", _scene);
            if (GUILayout.Button("Browser", GUILayout.MaxWidth(80)))
            {
                string file = EditorUtility.OpenFilePanel("Select unity scene file", XEditorLibrary.Sce, "unity");

                if (file.Length != 0)
                {
                    file   = file.Remove(file.LastIndexOf("."));
                    _scene = file.Remove(0, file.IndexOf(XEditorLibrary.Sce));

                    Scene scene = EditorSceneManager.GetActiveScene();
                    if (scene.name.Length == 0 || !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
                    {
                        EditorSceneManager.OpenScene(_scene + ".unity");
                    }
                }
            }
            EditorGUILayout.EndHorizontal();
            _auto_end = EditorGUILayout.Toggle("Auto End", _auto_end);
            EditorGUILayout.Space();
            _general_show = EditorGUILayout.Toggle("General Clip", _general_show);
            if (_general_show)
            {
                _general_bigguy = EditorGUILayout.Toggle("General Big Guy", _general_bigguy);

                if (_general_bigguy)
                {
                    _camera = Resources.Load("Animation/Main_Camera/Cut_Scene/cutscene_generalshow_bigguy", typeof(AnimationClip)) as AnimationClip;
                }
                else
                {
                    _camera = Resources.Load("Animation/Main_Camera/Cut_Scene/cutscene_generalshow", typeof(AnimationClip)) as AnimationClip;
                }

                EditorGUILayout.ObjectField("Camera Clip", _camera, typeof(AnimationClip), true);
            }
            else
            {
                _camera = EditorGUILayout.ObjectField("Camera Clip", _camera, typeof(AnimationClip), true) as AnimationClip;
            }
            if (_camera != null)
            {
                _length = _camera.length;
                EditorGUILayout.LabelField("CutScene Length", _length.ToString("F3") + "s" + "\t" + (_length * XEditorLibrary.FPS).ToString("F1") + "(frame)");
            }

            EditorGUILayout.Space();
            _type_mask      = (int)(EntitySpecies)EditorGUILayout.EnumMaskField("Type Mask", (EntitySpecies)_type_mask);
            _mourningborder = EditorGUILayout.Toggle("Mourningborder", _mourningborder);

            EditorGUILayout.Space();
            _fov     = EditorGUILayout.FloatField("FieldOfVeiw", _fov);
            _trigger = (CameraTrigger)EditorGUILayout.EnumPopup("Trigger", _trigger);
            EditorGUILayout.Space();
            _override_bgm = EditorGUILayout.Toggle("Override BGM", _override_bgm);
            EditorGUILayout.Space();

            UpdateScript();

            GUILayout.Label("TimeLine:", _labelstyle);
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            _type = (XClipType)EditorGUILayout.EnumPopup("Add Clip", _type);
            if (GUILayout.Button(_content_add, GUILayout.MaxWidth(25), GUILayout.MaxHeight(15)))
            {
                if (_camera != null && _name != null && _name.Length > 0)
                {
                    XCutSceneTimelineWindow window = EditorWindow.GetWindow <XCutSceneTimelineWindow>(@"Timeline At:");
                    window._total_frame = _camera.length * XEditorLibrary.FPS;
                    window._clip        = null;
                }
                else
                {
                    EditorUtility.DisplayDialog("Confirm your selection.",
                                                "Please select camera clip or name the cutscene",
                                                "Ok");
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();
            ActorList.Clear();
            ActorList.Add("None");

            foreach (XClip clip in _clips.Values)
            {
                if (clip.Valid)
                {
                    if (_camera != null)
                    {
                        clip.TimeLineTotal = _camera.length * XEditorLibrary.FPS;
                        clip.OnGUI(GetCurrentData());

                        if (clip.ClipType == XClipType.Actor || clip.ClipType == XClipType.Player)
                        {
                            int all = ActorList.FindAll(s => s == clip.Name).Count;
                            if (all > 0)
                            {
                                ActorList.Add(clip.Name + " " + (all + 1));
                            }
                            else
                            {
                                ActorList.Add(clip.Name);
                            }
                        }
                    }
                }
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Run"))
            {
                if (_name != null && _name.Length > 0 && _camera != null && !EditorApplication.isPlaying)
                {
                    EditorApplication.ExecuteMenuItem("Edit/Play");
                    GameObject   _cameraObject = GameObject.Find(@"Main Camera");
                    GameEntrance entrance      = _cameraObject.GetComponent <GameEntrance>();
                    entrance.enabled = false;
                    XCutSceneRunner runner = _cameraObject.AddComponent <XCutSceneRunner>();
                    _run_data = GetCurrentData();
                    runner.is_start_by_editor = true;
                    runner.cut_scene_data     = _run_data;
                }
            }
            if (GUILayout.Button("Pause"))
            {
                if (EditorApplication.isPlaying)
                {
                    EditorApplication.isPaused = !EditorApplication.isPaused;
                }
            }

            if (GUILayout.Button("Quit"))
            {
                if (EditorApplication.isPlaying)
                {
                    EditorApplication.isPlaying = false;
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Save"))
            {
                Save();
            }

            if (GUILayout.Button("Open"))
            {
                _file = EditorUtility.OpenFilePanel("Select cutscene file", XEditorLibrary.Cts, "txt");
                if (_file.Length != 0)
                {
                    _open_scene = true;
                    Load(XDataIO <XCutSceneData> .singleton.DeserializeData(_file.Substring(_file.IndexOf("Assets/"))));
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.EndScrollView();
        }
Example #14
0
        void InnerLoad(XCutSceneData data)
        {
            _run_data = data;

            _name           = data.Name;
            _script         = data.Script;
            _scene          = data.Scene;
            _camera         = Resources.Load(data.CameraClip, typeof(AnimationClip)) as AnimationClip;
            _type_mask      = data.TypeMask;
            _auto_end       = data.AutoEnd;
            _general_show   = data.GeneralShow;
            _general_bigguy = data.GeneralBigGuy;
            _override_bgm   = data.OverrideBGM;
            _mourningborder = data.Mourningborder;
            _fov            = data.FieldOfView;
            _length         = data.Length;
            _trigger        = (CameraTrigger)Enum.Parse(typeof(CameraTrigger), data.Trigger);

            _clips.Clear();
            ActorList.Clear();
            ActorList.Add("None");
            foreach (XActorDataClip clip in data.Actors)
            {
                TimeChecker(clip, data);
                XClip xclip = AddClip(clip);
                ActorList.Add(xclip.Name);
            }
            foreach (XPlayerDataClip clip in data.Player)
            {
                TimeChecker(clip, data);
                XClip xclip = AddClip(clip);
                ActorList.Add(xclip.Name);
            }
            foreach (XFxDataClip clip in data.Fxs)
            {
                TimeChecker(clip, data);
                AddClip(clip);
            }
            foreach (XAudioDataClip clip in data.Audios)
            {
                TimeChecker(clip, data);
                AddClip(clip);
            }
            foreach (XSubTitleDataClip clip in data.SubTitle)
            {
                TimeChecker(clip, data);
                AddClip(clip);
            }
            foreach (XSlashDataClip clip in data.Slash)
            {
                TimeChecker(clip, data);
                AddClip(clip);
            }

            if (_open_scene && _scene != null && _scene.Length != 0)
            {
                Scene scene = EditorSceneManager.GetActiveScene();
                if (scene.name.Length > 0 && !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
                {
                    return;
                }
                else
                {
                    EditorSceneManager.OpenScene(_scene + ".unity");
                }
                _open_scene = false;
            }
        }
 public void TriggerCamera(CameraTrigger trigger)
 {
     ANIMATOR.SetTrigger(trigger.ToString());
 }
Example #16
0
 public void SetTriggerActive(CameraTrigger t, bool active)
 {
     t.gameObject.SetActive(active);
 }
    //返回值表示是不是删除了这个触发器
    bool DrawTrigger(CameraTrigger t)
    {
        Color tmp1 = GUI.color;

        EditorGUILayoutEx.FadeArea area = EditorGUILayoutEx.instance.BeginFadeArea(t.isExpand, "", t.name + "_cameraTrigger", EditorStyleEx.BoxStyle); //
        Color tmp2 = GUI.color;                                                                                                                        //BeginFadeArea 需要

        GUI.color = tmp1;                                                                                                                              //BeginFadeArea 需要
        using (new AutoBeginHorizontal())
        {
            t.gameObject.name = EditorGUILayout.TextField(t.gameObject.name, EditorGUILayoutEx.defaultLabelStyle, GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(false));
            if (GUILayout.Button("", EditorGUILayoutEx.defaultLabelStyle))
            {
                t.isExpand = !t.isExpand;
            }

            if (GUILayout.Button(EditorGUIUtility.IconContent(CameraMgr.instance.m_curCameraInfo == t.m_info ? "preAudioLoopOn" : "preAudioLoopOff"), EditorStyles.toolbarButton, GUILayout.Width(25)))
            {
                CameraMgr.instance.Add(t.m_info, false, CameraInfo.Camera_Editor_Priority);//优先级要提高点
                return(false);
            }

            if (GUILayout.Button(EditorGUIUtility.IconContent("TreeEditor.Trash"), EditorStyles.toolbarButton, GUILayout.Width(25)))
            {
                return(true);
            }
        }


        if (area.Show())
        {
            GUI.color = tmp2;//BeginFadeArea 需要

            Transform tran = t.transform;
            EditorGUILayout.ObjectField("触发体", t.GetComponent <BoxCollider>(), typeof(BoxCollider), false);

            using (new AutoBeginHorizontal())
            {
                EditorGUILayout.PrefixLabel("触发体位置");
                tran.position = EditorGUILayout.Vector3Field(GUIContent.none, tran.position, GUILayout.Height(18));
                if (GUILayout.Button("同步到跟随者", GUILayout.Width(100)))
                {
                    tran.position = CameraMgr.instance.GetFollowPos();
                }
            }

            using (new AutoBeginHorizontal())
            {
                EditorGUILayout.PrefixLabel("触发体大小");
                tran.localScale = EditorGUILayout.Vector3Field(GUIContent.none, tran.localScale, GUILayout.Height(18));
            }

            float y = EditorGUILayout.FloatField("触发体旋转", tran.eulerAngles.y);
            tran.eulerAngles = new Vector3(tran.eulerAngles.x, y, tran.eulerAngles.z);

            //镜头信息
            DrawCameraInfo(t.m_info, t.gameObject.name, false, true);
        }
        EditorGUILayoutEx.instance.EndFadeArea();
        return(false);
    }
 public void TriggerCamera(CameraTrigger trigger)
 {
     ANIMATOR.SetTrigger(HashManager.Instance.DicCameraTriggers[trigger]);
 }