Example #1
0
        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;
            }
        }
Example #2
0
    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);
    }
Example #3
0
    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);
        }
    }
Example #4
0
    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);
        }
    }