private void OnTriggerEnter(Collider other) { if (other.CompareTag("Rock")) { GM.SetLife(-1); GM.SetDeath(+1); AUDIO.PlaySoundOnce(0); //Оповещение что игрок умер EventManager.OnAction("PlayerDie"); Destroy(destroyObject); } if (other.CompareTag("UFO")) { GM.SetLife(-1); GM.SetDeath(+1); AUDIO.PlaySoundOnce(0); //Оповещение что игрок умер EventManager.OnAction("PlayerDie"); Destroy(destroyObject); } }
/// <summary> /// Разрушение лазером /// </summary> public void OnLaserDestroy() { AUDIO.PlaySoundOnce(0); GM.SetScore(1); SpawnerController spawner = this.GetComponentInParent <SpawnerController>(); spawner.OnSpawnSmallRock(TR.position); Destroy(this.gameObject); }
private void Update() { //Управление float playerMoveH = Input.GetAxis("Horizontal"); float playerMoveV = Input.GetAxis("Vertical"); speed = playerMoveV * SpeedMove * Time.deltaTime; if (playerMoveV > 0) { direction = -model.up; } Vector3 velocity = direction * speed; //Движение в направлении if (playerMoveV > 0) { rb3D.AddForce(velocity, ForceMode.Impulse); } //Поворот персонажа model.Rotate(new Vector3(0, 0, -playerMoveH * SpeedRotate)); //Ограничитель скорости if (rb3D.velocity.magnitude > SpeedMax) { rb3D.velocity = rb3D.velocity.normalized * SpeedMax; } //Синхронизация положения тела и модели т.к. модель может вертеться как голова model.position = rb3D.position; //Расшариваем позицию игрока GM.PlayerPos = model.position; //Стрельба пулями if (Input.GetKeyDown(KeyCode.Space)) { AUDIO.PlaySoundOnce(2); spawner.OnSpawnPrefab(0, model.position, model.rotation); } //Стрельба лазером if (Input.GetKeyDown(KeyCode.F) && GM.GameData.Laser > 0) { AUDIO.PlaySoundOnce(1); GM.SetLaser(-1); spawner.OnSpawnPrefab(1, model.position, model.rotation); } }
/// <summary> /// Разрушение пулей /// </summary> public void OnBulletDestroy() { //Уничтожение и разброс мелких if (TypeRock == 0) { AUDIO.PlaySoundOnce(0); GM.SetScore(1); SpawnerController spawner = this.GetComponentInParent <SpawnerController>(); spawner.OnSpawnMediumRock(TR.position); Destroy(this.gameObject); } else if (TypeRock == 1) { AUDIO.PlaySoundOnce(0); GM.SetScore(1); SpawnerController spawner = this.GetComponentInParent <SpawnerController>(); spawner.OnSpawnSmallRock(TR.position); Destroy(this.gameObject); } }
/// <summary> /// Спавн летающей тарелки /// </summary> public void OnSpawnUFO() { AUDIO.PlaySoundOnce(3); spawner.OnSpawnPrefab(4, new Vector3(GetFreePosX(), GM.PlayerPos.y, 0f)); }