///<summary> /// Called when an OnFocusEvent is raised ///</summary> ///<param name="_e">The raised event</param> private void OnFocus(OnFocusEvent _e) { SCameraTrans target = GetRegisteredCameraTrans(_e.obj.name); if (string.IsNullOrEmpty(target.label)) { RegisterTransform(); MoveToObject(_e.obj.transform); } else { transform.position = target.pos; transform.eulerAngles = target.rot; labeledTransforms.RemoveAt(labeledTransforms.Count - 1); } }
///<summary> /// Register camera position with a label in labeledTransforms. ///</summary> private void RegisterTransform() { SCameraTrans newTrans = new SCameraTrans(); if (labeledTransforms.Count == 0) { newTrans.label = "NoFocus"; newTrans.pos = transform.position; newTrans.rot = transform.eulerAngles; } else { newTrans.label = GameManager.gm.focus[GameManager.gm.focus.Count - 2].name; newTrans.pos = transform.position; newTrans.rot = transform.eulerAngles; } labeledTransforms.Add(newTrans); }