public virtual void Init() { gameScene = GameApp.GetInstance().GetGameScene(); rConf = GameApp.GetInstance().GetResourceConfig(); gameCamera = gameScene.GetCamera(); cameraComponent = gameCamera.GetComponent <Camera>(); cameraTransform = gameCamera.CameraTransform; player = gameScene.GetPlayer(); //! 获取场景中的人物 aimTarget = new Vector3(); hitParticles = rConf.hitparticles; projectile = rConf.projectile; hitForce = 0f; weaponBoneTrans = player.GetTransform().Find(BoneName.WEAPON_PATH); //! 获取人物中挂载武器的节点 //gun = weaponBoneTrans.Find("Rifle").gameObject; CreateGun(); gun.transform.parent = weaponBoneTrans; BindGunAndFire(); shootAudio = gun.GetComponent <AudioSource>(); if (shootAudio == null) { } else { } GunOff(); }
/* * public void UpdateDifficultyLevel(float difficultyFactor) * { * //simple level difficulty formula * * //int theday = GameApp.GetInstance().GetGameState().TheDays; * //difficultyFactor = ((theday - 1) * 2) / 100.0f; * * gameParameters.ZombieAttack *= (1 + difficultyFactor); * gameParameters.ZombieHP *= (1 + difficultyFactor); * gameParameters.ZombieAttackFrenquency /= (1 + difficultyFactor); * * * gameParameters.NurseAttack *= (1 + difficultyFactor); * gameParameters.NurseHP *= (1 + difficultyFactor); * gameParameters.NurseAttackFrenquency /= (1 + difficultyFactor); * * gameParameters.FatZombieAttack *= (1 + difficultyFactor); * gameParameters.FatZombieHP *= (1 + difficultyFactor); * gameParameters.FatZombieRushingFrenquency /= (1 + difficultyFactor); * gameParameters.FatZombieRushingDamage *= (1 + difficultyFactor); * gameParameters.FatZombieRushingAttackDamage *= (1 + difficultyFactor); * * } */ public void ClearAllSceneResources() { player = null; enemyList.Clear(); woodboxList = null; path = null; this.triggerList = null; camera = null; }
public void Init() { //! 随机出生点 GameObject[] pss = GameObject.FindGameObjectsWithTag("Respawn"); int rnd = Random.Range(0, pss.Length); GameObject ps = pss[rnd]; respawnTrans = ps.transform; avatarType = GameApp.GetInstance().GetGameState().Avatar; //! playerObject = AvatarFactory.GetInstance().CreateAvatar(avatarType); //! 创建角色 playerObject = AvatarFactory.GetInstance().CreateAvatar(Zombie3D.AvatarType.EnegyArmor); //! 创建钢铁侠 playerObject.transform.position = ps.transform.position; playerObject.transform.rotation = ps.transform.rotation; playerObject.name = "Player"; playerTransform = playerObject.transform; playerConfig = GameApp.GetInstance().GetGameConfig().playerConf; int armorLevel = GameApp.GetInstance().GetGameState().ArmorLevel; hp = playerConfig.hp * (1 + armorLevel * 0.5f); maxHp = hp; //! 特种兵的血量 × 2 if (avatarType == AvatarType.Swat) { hp = hp * Constant.SWAT_HP; maxHp = hp; } else if (avatarType == AvatarType.EnegyArmor) { hp = hp * Constant.ENEGY_ARMOR_HP_BOOST; maxHp = hp; } gameCamera = GameApp.GetInstance().GetGameScene().GetCamera(); charController = playerObject.GetComponent <CharacterController>(); //! 控制器 animation = playerObject.GetComponent <UnityEngine.Animation>(); //! 动画器 collider = playerObject.GetComponent <Collider>(); //! 碰撞检测 //! 音效 audioPlayer = new AudioPlayer(); Transform folderTrans = playerTransform.Find("Audio"); audioPlayer.AddAudio(folderTrans, AudioName.GETITEM); audioPlayer.AddAudio(folderTrans, AudioName.DEAD); audioPlayer.AddAudio(folderTrans, AudioName.SWITCH); audioPlayer.AddAudio(folderTrans, AudioName.WALK); //! 为什么又初始化一边武器列表 GameApp.GetInstance().GetGameState().InitWeapons(); weaponList = GameApp.GetInstance().GetGameState().GetBattleWeapons(); playerState = Player.IDLE_STATE; foreach (Weapon w in weaponList) { w.Init(); } Weapon powerWeapon = null; float maxDamage = 0; foreach (Weapon w in weaponList) { if (maxDamage < w.Damage) { maxDamage = w.Damage; powerWeapon = w; } //! if (w.IsSelectedForBattle) //! { //! ChangeWeapon(w); //! break; //! } } //! 切换武器 ChangeWeapon(powerWeapon); walkSpeed = GameApp.GetInstance().GetGameConfig().playerConf.walkSpeed - weapon.GetSpeedDrag(); //! 人物速度 - 武器武器负重 ChangeToNormalState(); if (gameCamera.GetCameraType() == CameraType.TPSCamera) { inputController = new TPSInputController(); inputController.Init(); } else if (gameCamera.GetCameraType() == CameraType.TopWatchingCamera) { inputController = new TopWatchingInputController(); inputController.Init(); } UpdateNearestWayPoint(); }
public void Init(int index) { GameApp.GetInstance().DebugInfo = ""; sceneIndex = index; //! sceneName = Application.loadedLevelName.Substring(9); sceneName = SceneManager.GetSceneAt(0).name; //! 保存场景名字 //infectionRate = GameApp.GetInstance().GetGameState().GetInfectionRate(index); //! 读取 ai 路标 箱子列表 CreateSceneData(); //! 打中时流血的例子粒子效果 hitBloodObjectPool.Init("HitBlood", GameApp.GetInstance().GetResourceConfig().hitBlood, 3, 0.4f); for (int i = 0; i < deadBodyObjectPool.Length; i++) { deadBodyObjectPool[i] = new ObjectPool(); enemyObjectPool[i] = new ObjectPool(); } //! 死亡时的mesh网格 deadBodyObjectPool[0].Init("DeadBody_Zombie", GameApp.GetInstance().GetResourceConfig().deadbody[0], 10, 2.0f); //! zombie deadBodyObjectPool[1].Init("DeadBody_Nurse", GameApp.GetInstance().GetResourceConfig().deadbody[1], 5, 2.0f); //! 护 士 deadBodyObjectPool[4].Init("DeadBody_Boomer", GameApp.GetInstance().GetResourceConfig().deadbody[4], 5, 2.0f); //! 炸弹 人 deadBodyObjectPool[5].Init("DeadBody_Swat", GameApp.GetInstance().GetResourceConfig().deadbody[5], 5, 2.0f); //! 特种兵 //! 敌人mesh enemyObjectPool[0].Init("Zombies", GameApp.GetInstance().GetResourceConfig().enemy[0], 10, 0f); enemyObjectPool[1].Init("Nurses", GameApp.GetInstance().GetResourceConfig().enemy[1], 5, 0f); enemyObjectPool[2].Init("Tanks", GameApp.GetInstance().GetResourceConfig().enemy[2], 2, 0f); enemyObjectPool[3].Init("Hunters", GameApp.GetInstance().GetResourceConfig().enemy[3], 2, 0f); enemyObjectPool[4].Init("Boomers", GameApp.GetInstance().GetResourceConfig().enemy[4], 5, 0f); enemyObjectPool[5].Init("Swats", GameApp.GetInstance().GetResourceConfig().enemy[5], 5, 0f); camera = GameObject.Find("Main Camera").GetComponent <TPSSimpleCameraScript>(); if (camera == null) { camera = GameObject.Find("Main Camera").GetComponent <TopWatchingCameraScript>(); } else if (!camera.enabled) { camera = GameObject.Find("Main Camera").GetComponent <TopWatchingCameraScript>(); } //! 创建Player player = new Player(); player.Init(); camera.Init(); enemyList = new Hashtable(); playingState = PlayingState.GamePlaying; GameApp.GetInstance().GetGameState().Achievement.CheckAchievemnet_NeverGiveUp(); enemyNum = 0; killed = 0; triggerCount = 0; enemyID = 0; Color[] colors = { Color.white, Color.red, Color.blue, Color.yellow, Color.magenta, Color.gray, Color.grey, Color.cyan }; int cIndex = Random.Range(0, colors.Length); RenderSettings.ambientLight = colors[cIndex]; }