Ejemplo n.º 1
0
    /// <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);
    }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
    /// <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);
    }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
    /// <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);
    }