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() } } }
public override void Init(CreateSceneCreature serverData, CreatureDatabase tableData) { base.Init(serverData, tableData); _serverData = serverData as CreateSceneRole; _tableData = tableData as RoleDatabase; }