/// <summary> /// 设置Role初始数据 创建gameObject /// </summary> /// <param name="baseInfo"></param> /// <param name="initInfo"></param> public bool InitBaseRole(string handleName, BaseRoleInfo baseInfo, MapRoleInfo initInfo) { if (baseInfo == null || initInfo == null) { m_bStarted = false; return(false); } // 初始化数据 m_sHandleName = handleName; m_eRoleType = (eRoleType)initInfo.RoleType; m_baseInfo = baseInfo; m_initInfo = initInfo; m_fWidth = baseInfo.Width; m_fHeight = baseInfo.Height; m_fPosX = initInfo.InitPosX; m_fPosY = initInfo.InitPosY; int curHp = initInfo.InitHP; if (curHp == -1) { m_iCurHp = m_baseInfo.MaxHp; } else { m_iCurHp = curHp; } m_ulAction = (ulong)initInfo.InitStatus; m_curStatus = (ePhtatus)m_ulAction; m_bIsStatic = initInfo.IsStatic; m_bCanMove = initInfo.CanMove; // 初始化ShowObject GameObject prefabObj = Resource.LoadObj(m_baseInfo.PrefabName) as GameObject; if (null == prefabObj) { m_bStarted = false; return(false); } GameObject showObj = GameObject.Instantiate(prefabObj); showObj.name = "actor"; GlobalVarFun.AttachChild(gameObject, showObj); m_showObj = showObj; // 初始化m_mapRole if (m_mapRole == null) { m_mapRole = new MapRole(this); } m_mapRole.OnChangeMap(MapManager.Instance.curMapWorld, m_fPosX, m_fPosY, m_fWidth, m_fHeight); m_mapRole.SetInitData(m_baseInfo, m_initInfo); Clear(); m_bStarted = true; return(true); }
public void SetInitData(BaseRoleInfo baseInfo, MapRoleInfo node) { // 添加Map的速度参数 MaxVelocity = new Vector2(baseInfo.VelocityX + 0.1f, baseInfo.VelocityY + 0.1f); if (m_body != null) { //MapFunctions.SetCollisionGroup(m_body, 0, node.InitCategories, node.InitCollideCats); } }
/// <summary> /// 加载新地图的Role /// </summary> /// <param name="mapId"></param> /// <returns></returns> public bool LoadNewMapRole(int mapId) { if (RoleDataManager.Instance == null || m_rootObj == null) { Debug.LogError("RoleManager.cs --- RoleDataManager.Instance == null || m_rootObj == null"); Clear(); return(false); } if (MapManager.Instance == null || MapManager.Instance.HasCurMap == false) { Debug.LogError("RoleManager.cs --- MapManager.Instance == null || MapManager.Instance.hasCurMap == false"); Clear(); return(false); } List <MapRoleInfo> nodeList = RoleDataManager.Instance.GetMapRoleData(mapId); if (nodeList == null) { Debug.LogError("RoleManager.cs --- MapRoleData == null"); Clear(); return(false); } // 创建Role for (int i = 0; i < nodeList.Count; i++) { MapRoleInfo node = nodeList[i]; string handleName = node.ID + "_" + GetHandleIndex(); GameObject roleObj = new GameObject(); roleObj.name = handleName; bool addRole = AddRoleObj(handleName, roleObj, node); } if (m_rootObj == null || m_roleDic.Count <= 0) { m_bLoaded = false; } else { m_bLoaded = true; } return(m_bLoaded); }
public bool AddRoleObj(string handleName, GameObject roleObj, MapRoleInfo initInfo) { BaseRole baseRole = null; if (true == initInfo.CanControl) { baseRole = CreatePlayer(roleObj); } else { baseRole = CreateBaseRole(roleObj); } if (baseRole == null) { return(false); } BaseRoleInfo baseInfo = RoleDataManager.Instance.GetRoleBaseInfo(initInfo.RoleID); if (baseInfo == null) { GameObject.Destroy(roleObj); return(false); } bool setSuc = baseRole.InitBaseRole(handleName, baseInfo, initInfo); if (setSuc) { GameObject sideObj = GetSideObj(initInfo.RoleType); if (sideObj == null) { sideObj = m_rootObj; } GlobalVarFun.AttachChild(sideObj, roleObj); m_roleDic.Add(handleName, baseRole); } else { GameObject.Destroy(roleObj); return(false); } return(true); }
/// <summary> /// 加载当前Map的所有Role数据 /// </summary> /// <param name="mapId"></param> public List <MapRoleInfo> GetMapRoleData(int mapId) { // 读取数据 InfoNodeList viList = InfoNodeHelper.ReadFromCSV(GlobalVarFun.m_streamAssets + "Role/" + mapId + ".csv"); if (null == viList) { return(null); } List <MapRoleInfo> mapRoleInfo = new List <MapRoleInfo>(); string[] arrKeys = viList.m_nodeList.Keys.ToArray(); for (int i = 0; i < viList.Count; i++) { InfoNode vi = viList.m_nodeList[arrKeys[i]]; if (vi != null) { MapRoleInfo roleData = new MapRoleInfo(vi); mapRoleInfo.Add(roleData); } } return(mapRoleInfo); }