private void OnTriggerEnter2D(Collider2D collision) { if (collision.GetComponent <PlayerControl_MovementController>() == GameManager.Instance.ActualPlayerController && !roomChanger.m_isSaveRoomChanger) { if (imRight) { roomChanger.MovePlayerFromRight(collision.gameObject); } else { roomChanger.MovePlayerFromLeft(collision.gameObject); } } EnemySetControl enemy = collision.GetComponent <EnemySetControl>(); if (roomChanger.m_isSaveRoomChanger) { if (enemy != null) { enemy.StartCoroutine(enemy.ConsumeEnemy()); } if (imRight) { roomChanger.MovePlayerFromRight(collision.gameObject); } else { roomChanger.MovePlayerFromLeft(collision.gameObject); } } }
protected override void Start() { base.Start(); m_minimaparrowAnimator = UIManager.minimapArrow; thisEnemySetControl = GetComponent <EnemySetControl>(); thisEnemyShootingScript = GetComponent <ShootingScript>(); }
protected virtual void CollisionWithEnemy(Collider2D enemy) { collisionIsEnemy.ReceiveDamage(bulletDamageToEnemy); EnemySetControl myEnemySetControl = enemy.GetComponent <EnemySetControl>(); if (myEnemySetControl != null) { myEnemySetControl.StopConsumingAction(); } CollisionWithEnemyEffects(); }
private void LaunchRaycast() { if (playerControl_MovementController.playerInputDirection.sqrMagnitude > 0) ////Se lanza Raycast si hay input de rotación registrado en el PlayerControl { raycastHit = Physics2D.Raycast(armObject.transform.position, armObject.transform.right, raycastDistance); ////Actualmente el Raycast tiene siempre la misma distancia, sin intervenir el valor del joystick playerLineRenderer.SetPosition(1, playerControl_MovementController.playerInputDirection * raycastDistance); ////Actualmente el punto final de LineRenderer se multiplica por el valor del joystick } else ////Si no hay input de rotación, se elimina la visibilidad de LineRenderer y se resetea el RaycastHit; { if (enemy_InRaycast != null && !isControllingWithMouse) ///Antes de resetear el hit, se mira si había un enemigo en el Raycast y se le posee { PossessAction(); } playerLineRenderer.SetPosition(1, Vector3.zero); raycastHit = new RaycastHit2D(); } if (raycastHit.collider != null) ////Chequeos para vaciar la variable del EnemySetControl del enemigo en el Raycast si no hay ninguno en el Raycast o si se salta de uno a otro sin que no haya nada entre medias. { EnemySetControl enemyCheckScript = raycastHit.collider.gameObject.GetComponent <EnemySetControl>(); if (enemyCheckScript != null) { if (enemy_InRaycast != null) { enemy_InRaycast = null; } enemy_InRaycast = enemyCheckScript; } } else { if (enemy_InRaycast != null) { enemy_InRaycast = null; } } }
// Start is called before the first frame update void Start() { thisEnemySetControl = GetComponent <EnemySetControl>(); }