void OnControllerColliderHit(ControllerColliderHit hit) { if (hit.gameObject.layer == LayerMask.NameToLayer("Item")) { ItemInterface item = (ItemInterface)hit.gameObject.GetComponent(typeof(ItemInterface)); item.get(); return; } Rigidbody body = hit.collider.attachedRigidbody; if (hit.gameObject.layer == LayerMask.NameToLayer("Enemy")) { Debug.Log("Enemy"); EnemyInterface enemy = (EnemyInterface)hit.gameObject.GetComponent(typeof(EnemyInterface)); int dmg = enemy.getEnemyDamage(); gameManager.plusPower(-dmg); } if (body == null || body.isKinematic) { return; } if (hit.gameObject.layer == LayerMask.NameToLayer("Pushable")) { body.AddForceAtPosition(Vector3.down * pushPower, hit.point); } }
//stunning void HandleStunning() { if (possessing == false) { if (Input.GetMouseButtonDown(0)) { usingAbility = true; mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); relativeMouse = mousePosition - transform.position; stunEffect.SetActive(true); stunEffectDuration = 0.25f; stunEffect.transform.rotation = Quaternion.LookRotation(relativeMouse.normalized, Vector3.forward); stunHit = Physics2D.Raycast(transform.position, new Vector2(relativeMouse.x, relativeMouse.y).normalized, stunRange, possessMask); if (stunHit.collider != null) { source.clip = clips[2]; source.Play(); EnemyInterface enemy = stunHit.transform.gameObject.GetComponent <EnemyInterface>(); enemy.stunned = true; stunHit.transform.gameObject.GetComponent <Rigidbody2D>().mass *= 10; enemy.StartCoroutine(enemy.Unstun()); stunHit.transform.gameObject.GetComponent <Animator>().SetBool("stunned", true); } } } }
public override void Start() { base.Start(); rg = GetComponent <Rigidbody2D>(); enemBehaviour = GetComponent <EnemyInterface>(); }
// Use this for initialization void Start() { player = GameObject.FindGameObjectWithTag("Player").transform; enemy = transform.parent.gameObject; script = enemy.GetComponent(typeof(EnemyInterface)) as EnemyInterface; }