public string GetCombineModel(uint model, uint avaterMotion, uint avaterDirection) { if (avaterMotion == 0 && avaterDirection == 0) { return(model.ToString()); } uint motion = (uint)avaterMotion; uint direction = (uint)avaterDirection; CSDirection d = (CSDirection)direction; if (avaterMotion == (uint)CSMotion.Dead) { d = CSDirection.Up; } if (d == CSDirection.Left) { d = CSDirection.Right; } else if (d == CSDirection.Left_Up) { d = CSDirection.Right_Up; } else if (d == CSDirection.Left_Down) { d = CSDirection.Right_Down; } direction = (uint)d; CSStringBuilder.Clear(); CSStringBuilder.Append(model.ToString(), "_", SFMisc.stringMotionDic.ContainsKey((int)motion) ? SFMisc.stringMotionDic[(int)motion] : "", "_", direction.ToString()); return(CSStringBuilder.ToString()); }
/// <summary> /// 添加一个模型的加载数据 /// 在结束解析的时候,开始加载 /// </summary> /// <param name="model"></param> /// <param name="structure"></param> /// <param name="motion"></param> /// <param name="direction"></param> /// <param name="resourceType"></param> /// <param name="resourceAssistType"></param> protected void Load(uint model, EModelStructure structure, CSMotion motion, CSDirection direction, EResourceType resourceType, EResourceAssistType resourceAssistType) { //加载的模型不存在 if (model == 0) { //如果要加载身体模型不存在,那么要注意清理其他的组件 if (structure == EModelStructure.Body) { } return; } long key = GetKey((int)model, (int)motion, (int)direction, (int)structure); ModelComponentLoadData data = null; if (!ModelComponentLoadedCacheDic.TryGetValue(key, out data)) { data = new T(); ModelComponentLoadedCacheDic[key] = data; } data.Model = model; data.Key = key; data.Structure = structure; data.ResourceType = resourceType; data.ResourceAssistType = resourceAssistType; WaitLoadComponentKey.Add(data); }
public static long GetKey(int modelID, int motion, int direction) { CSDirection d = (CSDirection)direction; if (motion == (uint)CSMotion.Dead) { d = CSDirection.Up; } if (d == CSDirection.Left) { d = CSDirection.Right; } else if (d == CSDirection.Left_Up) { d = CSDirection.Right_Up; } else if (d == CSDirection.Left_Down) { d = CSDirection.Right_Down; } return((long)modelID * 10000 + motion * 100 + (int)d); }
public void Move(CSDirection direction) { }
/// <summary> /// 设置方向 /// 跟进传入的方向值,进行旋转角度的设置 /// </summary> /// <param name="direction"></param> /// <returns></returns> public virtual bool SetDirection(CSDirection direction) { return(true); }