public void InitCameraGroup(int cameraGroupID, int index) { UILabel.text = cameraGroupID.ToString(); if (!StroyLineConfigManager.Instance.GetCameraGroupConfig.ContainsKey(cameraGroupID)) { return; } m_cameraGroup = StroyLineConfigManager.Instance.GetCameraGroupConfig[cameraGroupID]; int iRow = 0; GameObject titleItemA = (GameObject)Instantiate(TitleItem); titleItemA.transform.parent = this.Tween.transform; titleItemA.transform.localScale = Vector3.one; titleItemA.transform.localPosition = new Vector3(25, -45 + iRow * -40, 0); titleItemA.GetComponent <TitleItem>().text.text = "镜头片段"; for (int i = 0; i < m_cameraGroup._CameraID.Count; i++) { GameObject CameraList = (GameObject)Instantiate(Checkbox); CameraList.transform.parent = titleItemA.transform; CameraList.transform.localScale = Vector3.one; CameraList.transform.localPosition = new Vector3(-20, -45 + i * -40, 0); CameraList.GetComponent <EditorCheckbox>().InitCheckbox(m_cameraGroup._CameraID[i], 0, m_cameraGroup._CameraID[i].ToString(), CheckboxType.CameraID, -1); UICheckbox uiCheckbox = CameraList.GetComponent <UICheckbox>(); uiCheckbox.radioButtonRoot = titleItemA.transform; } iRow = m_cameraGroup._CameraID.Count; GameObject titleItemB = (GameObject)Instantiate(TitleItem); titleItemB.transform.parent = this.Tween.transform; titleItemB.transform.localScale = Vector3.one; titleItemB.transform.localPosition = new Vector3(25, -45 + ++iRow * -40, 0); titleItemB.GetComponent <TitleItem>().text.text = "角色序列"; //克隆动作列表,每个镜头组包含8个动作列表 for (int i = 0; i < m_cameraGroup._ActionList.Length; i++) { GameObject ActionList = (GameObject)Instantiate(Checkbox); ActionList.transform.parent = titleItemA.transform; ActionList.transform.localScale = Vector3.one; ActionList.transform.localPosition = new Vector3(-20, -45 + iRow++ *-40, 0); ActionList.GetComponent <EditorCheckbox>().InitCheckbox(m_cameraGroup._ActionList[i].NpcID, 0, m_cameraGroup._ActionList[i].NpcID.ToString(), CheckboxType.NpcID, -1); UICheckbox uiCheckbox = ActionList.GetComponent <UICheckbox>(); uiCheckbox.radioButtonRoot = titleItemA.transform; } }
public CameraGroupConfigData Clone() { CameraGroupConfigData tempObj = (CameraGroupConfigData)this.MemberwiseClone(); if (_CameraID != null) { tempObj._CameraID = new List <int>(this._CameraID);//(int[])this._CameraGroup.Clone(); } if (_ActionList != null) { tempObj._ActionList = (NpcAction[])_ActionList.Clone(); for (int i = 0; i < _ActionList.Length; i++) { tempObj._ActionList[i] = _ActionList[i].Clone(); } } return(tempObj); }
public void Init(int cameraGroupID) { m_cameraGroupData = StroyLineConfigManager.Instance.GetCameraGroupConfig[cameraGroupID]; StartCameraMask(); if (m_cameraGroupData == null) { Debug.LogWarning("stroyline" + cameraGroupID); return; } if (onCameraEffectPlay != null) { onCameraEffectPlay(m_cameraGroupData._EffectGo); } int actionListCount = m_cameraGroupData._ActionList.Length; int cameraClipCount = m_cameraGroupData._CameraID.Count; int dialogCount = m_cameraGroupData._DialogGroupID.Length; m_stroyActionIDList.Clear(); sfxList.Clear(); for (int i = 0; i < actionListCount; i++) { var npcAction = m_cameraGroupData._ActionList[i]; int stroyActionCount = npcAction.AnimID.Count; m_stroyActionIDList.Add(i, new StroyAction()); m_stroyActionIDList[i].NpcID = npcAction.NpcID; m_stroyActionIDList[i].RoleType = npcAction.RoleType; m_stroyActionIDList[i].RoleResID = npcAction.RoleResID; m_stroyActionIDList[i].ActionList = new StroyActionConfigData[stroyActionCount]; StroyLineEvent evt = new StroyLineEvent(); evt.Type = StroyActionType.DoAction; evt.ParentIndex = i; evt.EventTimeAfterLaunch = 0f; events.Add(evt); for (int k = 0; k < stroyActionCount; k++) { if (!StroyLineConfigManager.Instance.GetStroyActionConfig.ContainsKey(npcAction.AnimID[k])) { m_stroyActionIDList[i].ActionList[k] = null; continue; } m_stroyActionIDList[i].ActionList[k] = StroyLineConfigManager.Instance.GetStroyActionConfig[npcAction.AnimID[k]]; if (m_stroyActionIDList[i].ActionList[k]._SoundName != "0") { sfxList.Add(k, m_stroyActionIDList[i].ActionList[k]._SoundName); StroyLineEvent sfxEvt = new StroyLineEvent(); sfxEvt.Type = StroyActionType.PlaySoundEffect; sfxEvt.ParentIndex = i; sfxEvt.Index = k; sfxEvt.EventTimeAfterLaunch = m_stroyActionIDList[i].ActionList[k]._SoundTime / 1000; events.Add(sfxEvt); } if (m_stroyActionIDList[i].ActionList[k]._EffectGo != null) { StroyLineEvent efEvt = new StroyLineEvent(); efEvt.Type = StroyActionType.PlayViewEffect; efEvt.ParentIndex = i; efEvt.Index = k; efEvt.EventTimeAfterLaunch = m_stroyActionIDList[i].ActionList[k]._EffectStartTime / 1000; events.Add(efEvt); } } } m_stroyCameraList = new List <StroyCameraConfigData>(); for (int i = 0; i < cameraClipCount; i++) { int cameraID = m_cameraGroupData._CameraID[i]; if (StroyLineConfigManager.Instance.GetCameraConfig.ContainsKey(cameraID)) { m_stroyCameraList.Add(StroyLineConfigManager.Instance.GetCameraConfig[cameraID]); } } m_eventList.Clear(); if (m_stroyCameraList.Count > 0) { StroyLineEvent cameraEvt = new StroyLineEvent(); cameraEvt.Type = StroyActionType.MoveCamera; cameraEvt.EventTimeAfterLaunch = 0; m_eventList.Add(cameraEvt.Type, cameraEvt); } m_stroyDialogList.Clear(); for (int i = 0; i < dialogCount; i++) { int dialogTextID = m_cameraGroupData._DialogGroupID[i]; if (StroyLineConfigManager.Instance.GetStroyDialogConfig.ContainsKey(dialogTextID)) { m_stroyDialogList.Add(StroyLineConfigManager.Instance.GetStroyDialogConfig[dialogTextID]); } } //if (m_stroyDialogList.Count > 0) { StroyLineEvent dialogEvt = new StroyLineEvent(); dialogEvt.Type = StroyActionType.Dialog; dialogEvt.EventTimeAfterLaunch = 0; m_eventList.Add(dialogEvt.Type, dialogEvt); } }
private static void CameraGroupConfigPostprocess() { string path = System.IO.Path.Combine(RESOURCE_STROY_CONFIG_FOLDER, "CameraGroupConfig.xml"); TextReader tr = new StreamReader(path); string text = tr.ReadToEnd(); if (text == null) { Debug.LogError("CameraGroup config file not exist"); return; } else { XmlSpreadSheetReader.ReadSheet(text); XmlSpreadSheet sheet = XmlSpreadSheetReader.Output; string[] keys = XmlSpreadSheetReader.Keys; object[] levelIds = sheet[keys[0]]; List <CameraGroupConfigData> tempList = new List <CameraGroupConfigData>(); for (int i = 0; i < levelIds.Length; i++) { if (0 == i || 1 == i) { continue; } CameraGroupConfigData data = new CameraGroupConfigData(); data._CameraGroupID = Convert.ToInt32(sheet["CameraGroupID"][i]); data._ActionList = new NpcAction[8]; for (int k = 0; k < 8; k++) { string ActionStr = Convert.ToString(sheet["Action" + (k + 1)][i]); if (ActionStr.Length <= 1) { data._ActionList[k] = null; continue; } string[] splitActionStr = ActionStr.Split("+".ToCharArray()); data._ActionList[k] = new NpcAction(); data._ActionList[k].NpcID = Convert.ToInt32(splitActionStr[0]); data._ActionList[k].RoleResID = Convert.ToInt32(splitActionStr[1]); data._ActionList[k].RoleType = Convert.ToInt32(splitActionStr[2]); data._ActionList[k].AnimID = new List <int>();//new int[splitActionStr.Length - 3]; for (int h = 3; h < splitActionStr.Length; h++) { data._ActionList[k].AnimID.Add(Convert.ToInt32(splitActionStr[h])); } } string cameraStr = Convert.ToString(sheet["CameraID"][i]); string[] splitCameraStr = cameraStr.Split("+".ToCharArray()); data._CameraID = new List <int>();//new int[splitCameraStr.Length]; for (int k = 0; k < splitCameraStr.Length; k++) { data._CameraID.Add(Convert.ToInt32(splitCameraStr[k])); } string dialogStr = Convert.ToString(sheet["DialogGroupID"][i]); string[] splitDialogStr = dialogStr.Split("+".ToCharArray()); data._DialogGroupID = new int[splitDialogStr.Length]; for (int k = 0; k < splitDialogStr.Length; k++) { data._DialogGroupID[k] = Convert.ToInt32(splitDialogStr[k]); } string effectPath = Convert.ToString(sheet["CameraGroupEff"][i]); string pathEffect = System.IO.Path.Combine(ASSET_EFFECT_RES_FOLDER, effectPath + ".prefab"); data._EffectGo = (GameObject)AssetDatabase.LoadAssetAtPath(pathEffect, typeof(GameObject)); data._IsCameraStartMask = Convert.ToBoolean(sheet["CameraChangeStar"][i]); data._IsCameraEndMask = Convert.ToBoolean(sheet["CameraChangeEnd"][i]); tempList.Add(data); } CreateCameraGroupConfigDataBase(tempList); } }