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; }
private static void EnterMap(RoleServer curRole, int mapId) { var sceneId = mapId; EnterMapCmd enterMapCmd = new EnterMapCmd() { mapId = sceneId }; //生成主角 CreateSceneRole roleCmd = new CreateSceneRole(); roleCmd.thisId = curRole.thisID; roleCmd.name = curRole.name; roleCmd.modelId = curRole.modelId; roleCmd.pos = new float3(0, 0, 0); roleCmd.faceTo = Vector3.forward; roleCmd.hp = curRole.hp; roleCmd.maxHp = curRole.hp; roleCmd.attack = curRole.attack; roleCmd.defence = curRole.defence; Server.instance.SendCmd(enterMapCmd); Server.instance.SendCmd(roleCmd); //生成附近的配角(暂时不考虑) //生成附近的Npc //CreateSceneRole进场景 CreateSmoeNpc(); }
public override void Init(CreateSceneCreature serverData, CreatureDatabase tableData) { base.Init(serverData, tableData); _serverData = serverData as CreateSceneRole; _tableData = tableData as RoleDatabase; }