private void LoadPlayer(MapConfig mapData) { GameObject player = resSvc.LoadPrefab(PathDefine.ArcherBattle); player.transform.position = mapData.playerBornPos; player.transform.eulerAngles = mapData.playerBornRote; player.transform.localScale = Vector3.one; PlayerData pd = GameRoot.instance.Playerdata; BattleProps props = new BattleProps { hp = pd.hp, attackValue = pd.attackValue, defend = pd.defend, critical = pd.critical, }; /*载入角色以后,把状态管理器、角色控制器注入到逻辑实体里面,通过逻辑实体的状态管理管理状态,然后在状态管理器里面 * 又通过逻辑实体里面持有的角色控制器来控制表现*/ entitySelfPlayer = new EntityPlayer { battleMg = this, stateMg = this.stateMg, skillMg = skillMg, }; entitySelfPlayer.SetBattleProps(props); entitySelfPlayer.Name = player.name; PlayerController playerController = player.GetComponent <PlayerController>(); playerController.Init(); entitySelfPlayer.SetController(playerController); playerAudioSource = entitySelfPlayer.GetAudio(); if (GameRoot.instance.isNewBow) { playerController.GetComponent <ChangeSkinSys>().ChangeWeaponSkinToNew(); } else { playerController.GetComponent <ChangeSkinSys>().ChangeWeaponSkinToOld(); } }