private void OnTriggerStay2D(Collider2D collision) { float damageScaler = 1f; player = GameObject.FindGameObjectWithTag("Player"); PlayerController controller = player.GetComponent <PlayerController>(); if (controller == null) { Debug.LogWarning("Player controller does not exist!"); } else { PlayerController.Upgradable damageUpgrade = controller.FindUpgradable("Damage"); if (damageUpgrade == null) { Debug.LogWarning("The upgrade does not exist!"); } else { damageScaler = damageUpgrade.GetScaler(); } } switch (collision.gameObject.tag) { case "Player": PlayerController player = collision.gameObject.GetComponent <PlayerController>(); player.TakeDamage(damage * damageScaler); break; case "Enemy": EnemyController enemy = collision.gameObject.GetComponent <EnemyController>(); enemy.TakeDamage(damage * damageScaler); break; default: break; } }
private void OnParticleCollision(GameObject collision) { float damageScaler = 1f; player = GameObject.FindGameObjectWithTag("Player"); PlayerController controller = player.GetComponent <PlayerController>(); if (controller == null) { Debug.LogWarning("Player controller does not exist!"); } else { PlayerController.Upgradable damageUpgrade = controller.FindUpgradable("Damage"); if (damageUpgrade == null) { Debug.LogWarning("The upgrade does not exist!"); } else { damageScaler = damageUpgrade.GetScaler(); } } ps = GetComponent <ParticleSystem>(); ParticlePhysicsExtensions.GetCollisionEvents(ps, collision, collisionEvents); foreach (ParticleCollisionEvent collisionEvent in collisionEvents) { Component component = collisionEvent.colliderComponent; if (component == null) { Debug.LogWarning("Component does not exist"); } else { GameObject gameObject = component.gameObject; if (gameObject == null) { Debug.LogWarning("Game object does not exist"); } else { EnemyController enemyController = gameObject.GetComponent <EnemyController>(); if (enemyController == null) { Debug.LogWarning("Enemy controller does not exist!"); } else { enemyController.TakeDamage(damage * damageScaler); } } } //EnemyController enemyController = collisionEvent.colliderComponent.gameObject.GetComponent<EnemyController>(); //if (enemyController == null) Debug.LogWarning("Enemy controller does not exist!"); //else enemyController.TakeDamage(damage * damageScaler); } }