private void OnTriggerEnter2D(Collider2D other) { EnemyContoller akFish = other.GetComponent <EnemyContoller>(); if (akFish != null) { akFish.BeCoiled(); Destroy(this.gameObject); } Debug.Log("触手缠绕"); }
void Awake() { if (check_zombie) { enemy_animation_controller = GetComponent <EnemyAnimationController>(); nav_mesh_agent = GetComponent <NavMeshAgent>(); enemy_controller = GetComponent <EnemyContoller>(); // get enemy audio enemy_sound = GetComponentInChildren <EnemySound>(); } if (check_player) { weapon_controller = GetComponent <WeaponController>(); player_statistics = GetComponent <PlayerStatistics>(); if (PlayerPrefs.GetFloat("playerhealth") > 0) { health_value = PlayerPrefs.GetFloat("playerhealth"); player_statistics.View_Health_Statistics(health_value); } } }
// Update is called once per frame void Update() { if (Input.GetKeyDown("r")) { Time.timeScale = 1; SceneManager.LoadScene(SceneManager.GetActiveScene().name); } enemyTimer -= Time.deltaTime; if (enemyTimer <= 0 && hero != null) { enemyTimer = enemySpawnInterval; float spawnAngle = Random.Range(0, 360); GameObject enemyObject = GameObject.Instantiate <GameObject>(enemyPrefab); enemyObject.transform.position = new Vector3 ( hero.transform.position.x + Mathf.Cos(spawnAngle) * enemySpawnDistance, hero.transform.position.y, hero.transform.position.z + Mathf.Sin(spawnAngle) * enemySpawnDistance ); EnemyContoller enemy = enemyObject.transform.GetComponent <EnemyContoller>(); enemy.chaseDirection = (hero.transform.position - enemy.transform.position).normalized; enemy.onDestroyed = () => { score += 100; infoText.text = "Score: " + score.ToString(); }; enemy.onHitPlayer = () => { infoText.text = "Game Over! Press R to Restart"; Time.timeScale = 0; }; } }