void Start() { //origin = origin + new Vector2(attack.offset.x * direction, attack.offset.y); attackPath = attack.attackPath; if (attack.targetType == Attack.TargetType.TargetStraight) { RaycastHit2D hitInfo; hitInfo = Physics2D.Raycast(transform.position, Vector2.right, attack.offset.x); if (hitInfo.collider.gameObject.tag == "Enemy") { //transform.position = hitInfo.collider.gameObject.transform.position; } else { //transform.position = origin; } } else { print(origin); //transform.position = origin; } gameObject.tag = "Attack"; rb = gameObject.AddComponent <Rigidbody2D>(); rb.constraints = RigidbodyConstraints2D.FreezeRotation; rb.gravityScale = 0; sr = attack.spriteAnimation.GetComponent <SpriteRenderer>(); velocityDiv = attack.velocityDiv; lifetime = attack.lifetime; xSpeed = attack.speed; if (attack.attackType == Attack.AttackType.Melee) { //mht = sprite } if (attack.bounces) { lifetime *= attack.bounceCount + 1; } if (boxCol = GetComponentInChildren <BoxCollider2D>()) { print("Box Collider Present"); } if (attack.spriteAnimation != null) { GameObject sprite = Instantiate(attack.spriteAnimation, transform.position, Quaternion.identity, this.gameObject.transform); if (direction < 0) { // facing left sprite.transform.localScale = MathC.MultiplyVector(sprite.transform.localScale, MathC.NegaVectorX); } if (attack.attackBase != null) { // Checks for a 2D Collider in the attack base prefab if (sprite.GetComponent <Collider2D>()) { // Adds the attack collision script and links the attack script to it AttackCollision _ac = sprite.AddComponent <AttackCollision>(); _ac._as = this; } } if (attack.attackPath == Attack.AttackPath.Meteor) { sprite.transform.Rotate(new Vector3(0, 0, -45)); ySpeed = xSpeed; } else if (attack.attackPath == Attack.AttackPath.CrashDown) { sprite.transform.Rotate(new Vector3(0, 0, -90)); ySpeed = xSpeed; } } if (col != null) { col.isTrigger = true; } if (attack.attackType == Attack.AttackType.Beam) { if (boxCol == null) { boxCol = attack.spriteAnimation.GetComponent <BoxCollider2D>(); } if (boxCol != null) { boxCol.isTrigger = true; sr.tileMode = SpriteTileMode.Continuous; } else { Debug.LogError("No Box Collider Present on Beam"); } } }