コード例 #1
0
        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() + "相机参数";
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 public void SetCameraUiState(StroyCameraConfigData cameraData)
 {
     m_winType      = WinType.CameraClip;
     m_isShowWindow = true;
     m_isNewCreate  = true;
     m_cameraData   = cameraData;
     m_curTitleName = "新建相机参数";
     tooltip        = "";
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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);
            }
        }
コード例 #7
0
        /// <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());
            }
        }
コード例 #8
0
    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);
    }
コード例 #9
0
    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;
            }
        }
    }
コード例 #10
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);
        }
    }