Files

66 lines
2.1 KiB
C#

using UnityEngine;
public class HorizontalBar : BarBase
{
public GameObject horizontalBarrierPrefab;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
Initialize();
}
// Update is called once per frame
void FixedUpdate()
{
if (canFire)
{
firingTimer += Time.fixedDeltaTime;
if (firingTimer >= firingSpeed)
{
if (canFireLeft)
{
Vector3 leftSide = new Vector3(
bounds.min.x - (bounds.size.x / 2.0f),
bounds.center.y,
bounds.center.z
);
var left = Instantiate(horizontalBarrierPrefab, leftSide, Quaternion.identity);
var leftBarScript = left.GetComponent<HorizontalBar>();
leftBarScript.firingSpeed = firingSpeed;
leftBarScript.canFireRight = false;
Physics2D.IgnoreCollision(
left.GetComponent<Collider2D>(),
GetComponent<Collider2D>(),
true
);
}
if (canFireRight)
{
Vector3 rightSide = new Vector3(
bounds.max.x + (bounds.size.x / 2.0f),
bounds.center.y,
bounds.center.z
);
var right = Instantiate(horizontalBarrierPrefab, rightSide, Quaternion.identity);
var rightBarScript = right.GetComponent<HorizontalBar>();
rightBarScript.firingSpeed = firingSpeed;
rightBarScript.canFireLeft = false;
Physics2D.IgnoreCollision(
right.GetComponent<Collider2D>(),
GetComponent<Collider2D>(),
true
);
}
canFire = false;
}
}
}
}