コード例 #1
0
        public void Read(TProtocol iprot)
        {
            TField field;

            iprot.ReadStructBegin();
            while (true)
            {
                field = iprot.ReadFieldBegin();
                if (field.Type == TType.Stop)
                {
                    break;
                }
                switch (field.ID)
                {
                case 1:
                    if (field.Type == TType.List)
                    {
                        {
                            DataList = new List <ActionFileData>();
                            TList _list20 = iprot.ReadListBegin();
                            for (int _i21 = 0; _i21 < _list20.Count; ++_i21)
                            {
                                ActionFileData _elem22 = new ActionFileData();
                                _elem22 = new ActionFileData();
                                _elem22.Read(iprot);
                                DataList.Add(_elem22);
                            }
                            iprot.ReadListEnd();
                        }
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                default:
                    TProtocolUtil.Skip(iprot, field.Type);
                    break;
                }
                iprot.ReadFieldEnd();
            }
            iprot.ReadStructEnd();
        }
コード例 #2
0
    public ActionPlayer(int iActionId, ActionFileData data, ActionParam param, List<GameObject> affectedObjects = null)
    {
        //Check
        if (null == data)
        {
            return;
        }
        m_AffectedObject = affectedObjects;

        //Save Init Info
        SaveInitInfo();
        //Set Data
        m_ActionId = iActionId;
        m_ActionFileData = data;
        m_nInstanceID = AllocInstanceId();
        m_ActionParam = param;
        if (affectedObjects != null && affectedObjects.Count > 0)
        {
            //Add Target
            foreach (GameObject obj in affectedObjects)
            {
                if (obj == null)
                {
                    Debuger.LogWarning("None(GameObject) in TargetObjectList");
                    continue;
                }
                CharTransformContainer objContainer = obj.GetComponent<CharTransformContainer>();
                if (objContainer == null)
                {
                    Debuger.LogWarning("Instance Container Not Found in " + obj.name);
                    continue;
                }
                else
                {
                    AddAffectedObject(obj, objContainer);
                }
                //disable rigidbody
                SetPhysicStatus(obj, false);
            }
        }
        Reset();
    }
コード例 #3
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.List) {
           {
             DataList = new List<ActionFileData>();
             TList _list20 = iprot.ReadListBegin();
             for( int _i21 = 0; _i21 < _list20.Count; ++_i21)
             {
               ActionFileData _elem22 = new ActionFileData();
               _elem22 = new ActionFileData();
               _elem22.Read(iprot);
               DataList.Add(_elem22);
             }
             iprot.ReadListEnd();
           }
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }
コード例 #4
0
 private void ChoiseMap(ActionFileData data)
 {
     m_Instance.Close();
     m_Instance = null;
     ActionEditorWindow.Instance.OpenAction(data);
 }
コード例 #5
0
    public void OpenAction(ActionFileData data)
    {
        ClearData();

        //Action Data
        m_CurrentEditiongMapId = data.ID;
        m_fActionDuration = (float)data.Duration;
        m_CurrentMapName = data.MapResName;
        m_CurrentActionName = data.FileName;
        m_KeyFrameDataDict = ActionHelper.ConvertKeyFrameData(data.FrameDatalist);
        m_FileData = data;

        //Editor Data
        m_bIsCreateNew = true;
        m_DurationInputBuffer = m_fActionDuration.ToString();
        m_MapIDInputBuffer = m_CurrentEditiongMapId.ToString();
        m_ObjMap = ActionHelper.GetSceneMap(data.MapResName);

        Repaint();

    }
コード例 #6
0
    private void OnSave()
    {
        //Action Data
        if (m_FileData == null)
        {
            m_FileData = new ActionFileData();
        }
        m_FileData.ID = m_CurrentEditiongMapId;
        m_FileData.Duration = (double)m_fActionDuration;
        m_FileData.MapResName = m_CurrentMapName;
        m_FileData.FileName = m_CurrentActionName;
        //m_FileData.FrameDatalist = ActionHelper.ConvertActionFrameData(m_KeyFrameData);

        m_FileDataList = ActionHelper.GetActionEditFileList();
        ActionHelper.SaveActionEditFileList(m_FileDataList, m_FileData);
        ActionHelper.CombineActionEditFileList(m_FileDataList);
        EditorUtility.DisplayDialog("保存成功", "保存成功", "确定");
    }
コード例 #7
0
    private void ClearData()
    {
        OnStop();
        // editor state
        m_bPlay = false;
        m_bIsCreateNew = false;
        m_bInitSceneCamera = false;
        m_fAniTimeLastValue = 0f;
        m_ActionId = -1;

        // editor data
        m_ObjMap = null;
        if (null != m_ObjMapInstance)
        {
            UnityEngine.Object.Destroy(m_ObjMapInstance);

            // clear terrain
            CloseTerrain();

        }
        m_ObjMapInstance = null;
        m_DurationInputBuffer = null;
        m_MapIDInputBuffer = null;

        // action data
        m_fAniTimeValue = 0f;
        m_CurrentActionName = null; ;
        m_CurrentMapName = "";
        m_FileData = null;
        m_KeyFrameDataDict = null;


        //Close Windows
        var subTypeQuery = from t in Assembly.GetExecutingAssembly().GetTypes()
                           where IsSubClassOf(t, typeof(AbstractFrameEdit))
                           select t;
        foreach (var type in subTypeQuery)
        {
            MethodInfo method = type.GetMethod("CloseWindow");
            method.Invoke(null, null);
        }
        m_RuntimeParam.ClearData();
        AERuntimeParamEditorWindow.CloseWindow();
        ActionKeyframeWindow.CloseWindow();
        ActionTimeChangeWindow.CloseWindow();
        ActionListWindow.CloseWindow();
        ConflictSolveWindow.CloseWindow();
    }
コード例 #8
0
 public static bool AddFrame(ActionFileData fileData, ActionFrameData frameData)
 {
     if (frameData == null || fileData == null)
     {
         Debug.LogError("frameData or fileData is null");
         return false;
     }
     if (fileData.FrameDatalist == null)
     {
         fileData.FrameDatalist = new List<ActionFrameData>();
     }
     if (fileData.FrameDatalist.Contains(frameData))
     {
         fileData.FrameDatalist.Sort(SortFrameByTime);
         return false;
     }
     fileData.FrameDatalist.Add(frameData);
     fileData.FrameDatalist.Sort(SortFrameByTime);
     return true;
 }
コード例 #9
0
    public static int SortFileByID(ActionFileData item1, ActionFileData item2)
    {
        if (item1.ID < item2.ID)
        {
            return -1;
        }
        else if (item1.ID > item2.ID)
        {
            return 1;
        }

        return 0;
    }
コード例 #10
0
    public static void DeleteActionEditFile(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List<ActionFileData>();
        }

        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                filedatalist.DataList.RemoveAt(i);
                break;
            }
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }
コード例 #11
0
    public static void SaveActionEditFileList(ActionFileDataArray filedatalist, ActionFileData fileData)
    {
        if (null == filedatalist)
        {
            filedatalist = new ActionFileDataArray();
        }

        if (null == filedatalist.DataList)
        {
            filedatalist.DataList = new List<ActionFileData>();
        }

        fileData.TimeStamp = GetTimeStamp();
        bool bIsNeedAddNew = true;
        for (int i = 0; i < filedatalist.DataList.Count; ++i)
        {
            if (filedatalist.DataList[i].ID == fileData.ID)
            {
                filedatalist.DataList[i] = fileData;
                bIsNeedAddNew = false;
                break;
            }
        }
        if (bIsNeedAddNew)
        {
            filedatalist.DataList.Add(fileData);
        }

        byte[] data = ThriftSerialize.Serialize(filedatalist);
        FileUtils.WriteByteFile(GetActionFileDataPath(), data);
    }
コード例 #12
0
 public static void DelFrame(ActionFileData fileData, int nIndex)
 {
     if (fileData == null)
     {
         Debug.LogError("fileData is null");
         return;
     }
     if (fileData.FrameDatalist == null)
     {
         Debug.LogError("frameDatalist is null");
         return;
     }
     if (nIndex < 0 || nIndex >= fileData.FrameDatalist.Count)
     {
         return;
     }
     fileData.FrameDatalist.RemoveAt(nIndex);
 }
コード例 #13
0
 public static void DelFrame(ActionFileData fileData, ActionFrameData frameData)
 {
     if (frameData == null || fileData == null)
     {
         Debug.LogError("frameData or fileData is null");
         return;
     }
     if (fileData.FrameDatalist == null)
     {
         Debug.LogError("frameDatalist is null");
         return;
     }
     if (fileData.FrameDatalist.Contains(frameData))
     {
         fileData.FrameDatalist.Remove(frameData);
     }
 }
コード例 #14
0
 public static bool AddFrameList(ActionFileData fileData, List<ActionFrameData> frameDataList)
 {
     if (frameDataList == null || fileData == null)
     {
         Debug.LogError("frameData or fileData is null");
         return false;
     }
     if (fileData.FrameDatalist == null)
     {
         fileData.FrameDatalist = new List<ActionFrameData>();
     }
     if (frameDataList.Count <= 0)
     {
         return false;
     }
     int count = 0;
     foreach (ActionFrameData frameData in frameDataList)
     {
         if (!fileData.FrameDatalist.Contains(frameData))
         {
             fileData.FrameDatalist.Add(frameData);
             count++;
         }
     }
     fileData.FrameDatalist.Sort(SortFrameByTime);
     if (count == 0)
     {
         return false;
     }
     return true;
 }
コード例 #15
0
 private void Copy(ActionFileData data)
 {
     int max = 0;
     for (int i = 0; i < m_DataList.DataList.Count; ++i)
     {
         if (m_DataList.DataList[i].ID > max)
         {
             max = m_DataList.DataList[i].ID;
         }
     }
     ++max;
     ActionFileData elem = new ActionFileData();
     elem.ID = max;
     elem.FileName = data.FileName;
     elem.MapResName = data.MapResName;
     elem.Duration = data.Duration;
     elem.FrameDatalist = data.FrameDatalist;
     m_DataList = ActionHelper.GetActionEditFileList();
     ActionHelper.SaveActionEditFileList(m_DataList, elem);
     ActionHelper.CombineActionEditFileList(m_DataList);
     Repaint();
 }
コード例 #16
0
 private void Delete(ActionFileData data)
 {
     ActionHelper.DeleteActionEditFile(m_DataList, data);
     Repaint();
 }
コード例 #17
0
 public static bool CheckConflcit(ActionFileData item1, ActionFileData item2)
 {
     if (item1.TimeStamp == item2.TimeStamp)
     {
         return false;
     }
     return true;
 }