Example #1
0
    internal static void OnCreateSceneRole(Cmd cmd)
    {
        if (!Net.CheckCmd(cmd, typeof(CreateSceneRole)))
        {
            return;
        }
        CreateSceneRole createSceneRole = cmd as CreateSceneRole;

        //
        RoleDatabase roleDatabase = RoleTable.instance[createSceneRole.modelId];

        if (roleDatabase == null)
        {
            Debug.LogError("未找到角色模型: " + createSceneRole.modelId);
        }
        //创建角色模型
        var  roleObj = ResourcesManager.instance.GetInstance(roleDatabase.modelPath);
        Role role;

        //判断是否时主角
        if (RoleMgr.instance._mainRoleThisId == createSceneRole.thisId)
        {
            //主角
            instance._mainRole = roleObj.AddComponent <MainRole>();
            role = instance._mainRole;
            SceneMgr.instance.mainCameraControl.target = role.transform;
        }
        else
        {
            role = roleObj.AddComponent <Role>();
        }
        role.Init(createSceneRole, roleDatabase);

        RoleMgr.instance.allRole[createSceneRole.thisId] = role;
    }
    public RoleTable()
    {
        //读表(二进制)
        var table = Resources.Load<TextAsset>("Config/RoleTable.csv.bytes");
        //创建一个内存流,利用刚刚读到的表做内存流的数据源
        //用二进制方法读表
        var tableStream = new MemoryStream(table.bytes);
        //根据内存流创建一个内存流的读取器
        using(var reader = new StreamReader(tableStream, Encoding.GetEncoding
        ("gb2312")))
        {
            //会自动关闭内存流
            reader.ReadLine();//跳过第一行
            
            //下面是正式数据-循环读
            var lineStr = reader.ReadLine();
            while(lineStr != null)
            {
                //读到内存里,因为csv文件用逗号隔开,所以我们用逗号分隔数据
                var itemStrArray = lineStr.Split(',');
                var roleDB = new RoleDatabase(); //目的是把itemStrArray的东西塞进roleDB
                roleDB.ID = int.Parse(itemStrArray[0]);//把Array中的第一个元素压进roleDB
                roleDB.Name = itemStrArray[1];
                roleDB.ModelPath = itemStrArray[2];
//?
                _cache[roleDB.ID] = roleDB //key = roleDB
              
                //循环
                lineStr = reader.ReadLine()
            }

        }

    }
Example #3
0
 public override void Init(CreateSceneCreature serverData, CreatureDatabase tableData)
 {
     base.Init(serverData, tableData);
     _serverData = serverData as CreateSceneRole;
     _tableData  = tableData as RoleDatabase;
 }