public void SetCameraUiState(int cameraID) { if (m_isNewCreate) { tooltip = ">>>请先保存数据!!<<<"; return; } if (StroyLineConfigManager.Instance.GetCameraConfig.ContainsKey(cameraID)) { var curSelectCamera = StroyLineConfigManager.Instance.GetCameraConfig[cameraID]; EditorDataManager.Instance.CurSelectCameraData = curSelectCamera; tooltip = ""; } else { tooltip = "相机配置表中无" + cameraID + "相关数据!"; } m_winType = WinType.CameraClip; m_isShowWindow = true; m_cameraData = EditorDataManager.Instance.CurSelectCameraData; m_curTitleName = m_cameraData._CameraID.ToString() + "相机参数"; }
void OkEvent(GameObject go) { HidePanel(); switch (m_createType) { case CreateType.STROYLINE: StroyLineConfigData stroyline = new StroyLineConfigData(); CreateStroyLine(stroyline); break; case CreateType.ACTION: StroyActionConfigData actionData = new StroyActionConfigData(); CreateStroyAction(actionData); break; case CreateType.CAMERACLIP: StroyCameraConfigData cameraData = new StroyCameraConfigData(); CreateStroyCameraClip(cameraData); break; default: break; } HidePanel(); }
public void SetCameraUiState(StroyCameraConfigData cameraData) { m_winType = WinType.CameraClip; m_isShowWindow = true; m_isNewCreate = true; m_cameraData = cameraData; m_curTitleName = "新建相机参数"; tooltip = ""; }
private void AddSaveCamera(StroyCameraConfigData cameraData) { if (cameraData == null) { return; } for (int i = 0; i < EditorDataManager.Instance.StroyCameraTempData.Count; i++) { if (EditorDataManager.Instance.StroyCameraTempData[i]._CameraID == cameraData._CameraID) { EditorDataManager.Instance.StroyCameraTempData.RemoveAt(i); } } EditorDataManager.Instance.StroyCameraTempData.Add(cameraData); }
void CreateStroyCameraClip(StroyCameraConfigData cameraData) { cameraData._CameraID = 0; cameraData._ActionTime = 0; cameraData._TargetID = 0; cameraData._TargetPos = Vector2.zero; cameraData._TargetType = 0; cameraData._Params = new CameraParam[3]; for (int i = 0; i < cameraData._Params.Length; i++) { cameraData._Params[i] = new CameraParam(); cameraData._Params[i]._EquA = 0; cameraData._Params[i]._EquB = 0; cameraData._Params[i]._EquC = 0; cameraData._Params[i]._EquD = 0; } StroyEditorUIManager.Instance.SetCameraUiState(cameraData); }
/// <summary> /// 回退函数 /// </summary> /// <param name="camera">要回退的镜头数据</param> /// <param name="action">要回退的动作数据</param> public void RestorePreStep(ref StroyCameraConfigData camera, ref StroyActionConfigData action) { int cameraCount = m_cameraList.Count - 2; if (cameraCount >= 0) { camera._ActionTime = m_cameraList[cameraCount]._ActionTime; camera._TargetID = m_cameraList[cameraCount]._TargetID; camera._TargetPos = m_cameraList[cameraCount]._TargetPos; camera._TargetType = m_cameraList[cameraCount]._TargetType; for (int i = 0; i < m_cameraList[cameraCount]._Params.Length; i++) { camera._Params[i]._EquA = m_cameraList[cameraCount]._Params[i]._EquA; camera._Params[i]._EquB = m_cameraList[cameraCount]._Params[i]._EquB; camera._Params[i]._EquC = m_cameraList[cameraCount]._Params[i]._EquC; camera._Params[i]._EquD = m_cameraList[cameraCount]._Params[i]._EquD; } m_cameraList.RemoveAt(cameraCount); } int actionCount = m_actionList.Count - 2; if (actionCount >= 0) { action._Acceleration = m_actionList[actionCount]._Acceleration; action._ActionName = m_actionList[actionCount]._ActionName; action._ActionType = m_actionList[actionCount]._ActionType; action._Duration = m_actionList[actionCount]._Duration; action._EffectLoopTimes = m_actionList[actionCount]._EffectLoopTimes; action._EffectPosition = m_actionList[actionCount]._EffectPosition; action._EffectStartTime = m_actionList[actionCount]._EffectStartTime; action._SoundName = m_actionList[actionCount]._SoundName; action._SoundTime = m_actionList[actionCount]._SoundTime; action._Speed = m_actionList[actionCount]._Speed; action._StartAngle = m_actionList[actionCount]._StartAngle; action._StartPosition = m_actionList[actionCount]._StartPosition; m_actionList.RemoveAt(actionCount); } }
/// <summary> /// 注册回退操作步骤 /// </summary> /// <param name="camera">要保存的镜头数据</param> /// <param name="action">要保存的动作数据</param> public void RegPreStep(StroyCameraConfigData camera, StroyActionConfigData action) { if (m_cameraList.Count > MAX_RESTORESTEP) { m_cameraList.RemoveAt(0); } if (m_actionList.Count > MAX_RESTORESTEP) { m_actionList.RemoveAt(0); } if (camera != null) { m_cameraList.Add(camera.Clone()); } if (action != null) { m_actionList.Add(action.Clone()); } }
public void SetTarget(StroyCameraConfigData item) { switch (item._TargetType) { case 1: if (!StroyLineDataManager.Instance.GetNpcList.ContainsKey(item._TargetID)) { TraceUtil.Log(SystemModel.Common, TraceLevel.Error, "指定ID为" + item._TargetID + "NPC尚未创建..."); return; } m_targetPosition = StroyLineDataManager.Instance.GetNpcList[item._TargetID].transform.position + item._TargetOffset; break; case 2: m_targetPosition = new Vector3(item._TargetPos.x, 0, item._TargetPos.y); break; default: break; } transform.LookAt(m_targetPosition); }
void Update() { float timeDelta = Time.deltaTime; if (m_isAction) { m_elapseTime += timeDelta; if (index < m_cameraData.Count) { StroyCameraConfigData item = m_cameraData[index]; //当镜头组最后一个镜头// if (isStartCameraMask && index == m_cameraData.Count - 1) { isStartCameraMask = false; StroyLineManager.Instance.EndCameraMask(); } if (item._Params.Length < 3) { TraceUtil.Log("相机运动参数配置错误!"); return; } if (item._ActionTime == 0) { for (int i = 0; i < item._Params.Length; i++) { float a = item._Params[i]._EquA; float b = item._Params[i]._EquB; float c = item._Params[i]._EquC; float d = item._Params[i]._EquD; SnapShotCamera(); m_position[i] = GetPositionValue(a, b, c, d, m_elapseTime); } transform.localPosition = m_transPosition + new Vector3(m_position[0], m_position[1], m_position[2]); SetTarget(item); } if (item._ActionTime / 1000 >= m_elapseTime) { for (int i = 0; i < item._Params.Length; i++) { float a = item._Params[i]._EquA; float b = item._Params[i]._EquB; float c = item._Params[i]._EquC; float d = item._Params[i]._EquD; SnapShotCamera(); if (item._MoveMode == 1) //平移 { m_position[i] = GetPositionValue(a, b, c, d, m_elapseTime); } else if (item._MoveMode == 2) //旋转 { Vector3 offset = transform.position - m_targetPosition; m_position[i] = GetRotateSpeed(a, b, Time.deltaTime, i, offset); } } if (item._MoveMode == 1) //平移 { transform.localPosition = m_transPosition + new Vector3(m_position[0], m_position[1], m_position[2]); } else if (item._MoveMode == 2) //旋转 { transform.position = m_targetPosition + new Vector3(m_position[0], m_position[1], m_position[2]); } SetTarget(item); } else { m_transPosition = transform.localPosition; m_transRotation = transform.localRotation; index += 1; m_elapseTime = 0; //SetTarget(item); } } else { m_isAction = false; m_elapseTime = 0; } } }
private static void StroyCameraConfigPostprocess() { string path = System.IO.Path.Combine(RESOURCE_STROY_CONFIG_FOLDER, "CameraConfig.xml"); TextReader tr = new StreamReader(path); string text = tr.ReadToEnd(); if (text == null) { Debug.LogError("stroyCamera config file not exist"); return; } else { XmlSpreadSheetReader.ReadSheet(text); XmlSpreadSheet sheet = XmlSpreadSheetReader.Output; string[] keys = XmlSpreadSheetReader.Keys; object[] levelIds = sheet[keys[0]]; List <StroyCameraConfigData> tempList = new List <StroyCameraConfigData>(); for (int i = 0; i < levelIds.Length; i++) { if (0 == i || 1 == i) { continue; } StroyCameraConfigData data = new StroyCameraConfigData(); data._CameraID = Convert.ToInt32(sheet["CameraID"][i]); data._TargetType = Convert.ToInt32(sheet["TargetType"][i]); var targetPosString = Convert.ToString(sheet["TargetPos"][i]); string[] splitTarPosString = targetPosString.Split("+".ToCharArray()); float posX = Convert.ToSingle(splitTarPosString[0]); float posZ = Convert.ToSingle(splitTarPosString[1]); data._TargetPos = new Vector2(posX, posZ); string targetOffsetStr = Convert.ToString(sheet["TargetOffset"][i]); string[] splitTargetOffsetStrs = targetOffsetStr.Split('+'); float OffsetX = Convert.ToSingle(splitTargetOffsetStrs[1]); float OffsetY = Convert.ToSingle(splitTargetOffsetStrs[2]); float OffsetZ = Convert.ToSingle(splitTargetOffsetStrs[3]); data._TargetOffset = new Vector3(OffsetX, OffsetY, OffsetZ); data._TargetID = Convert.ToInt32(sheet["TargetID"][i]); data._ActionTime = Convert.ToSingle(sheet["ActionTime"][i]); data._CameraMask = Convert.ToInt32(sheet["CameraChange"][i]); string parmsStr = Convert.ToString(sheet["Params"][i]); string[] splitCameraParmStr = parmsStr.Split("+".ToCharArray()); data._Params = new CameraParam[3]; for (int j = 0; j < 3; j++) { data._Params[j] = new CameraParam(); data._Params[j]._EquA = Convert.ToSingle(splitCameraParmStr[j * 4]); data._Params[j]._EquB = Convert.ToSingle(splitCameraParmStr[j * 4 + 1]); data._Params[j]._EquC = Convert.ToSingle(splitCameraParmStr[j * 4 + 2]); data._Params[j]._EquD = Convert.ToSingle(splitCameraParmStr[j * 4 + 3]); } data._MoveMode = Convert.ToInt32(sheet["ActionType"][i]); tempList.Add(data); } CreateStroyCameraConfigDataBase(tempList); } }