void OnTriggerEnter(Collider col) { ShmupHitbox3D hitbox = col.GetComponent <ShmupHitbox3D>(); if (hitbox != null && this.isPlayerOwned != hitbox.isPlayerOwned) { ShmupEntity entity = owner.GetComponent <ShmupEntity>(); entity.OnHit(hitbox.damage); if (!hitbox.persistent) { //Call special animations for the hitbox's object if applicable hitbox.DestroyHitbox(); } } BombHitbox3D bombHitbox = col.GetComponent <BombHitbox3D>(); if (bombHitbox != null && this.isPlayerOwned != bombHitbox.isPlayerOwned) { ShmupEntity entity = owner.GetComponent <ShmupEntity>(); entity.OnStun(); } //Visual hit effect stuff? EntityType type1 = EffectManager.instance.LayerToEntityType(this.gameObject.layer); EntityType type2 = EffectManager.instance.LayerToEntityType(col.gameObject.layer); EffectManager.instance.SpawnCollisionEffect(type1, type2, this.transform.position); if (isProjectile) { Destroy(this.gameObject); } }
public void TrackObject(ShmupEntity obj) { if (obj != null) { target = obj; } }
private void OnTriggerEnter(Collider col) { ShmupEntity entity = col.GetComponentInParent <ShmupEntity>(); foreach (FloatingBit myBit in bits) { myBit.TrackObject(entity); } StartCoroutine(GarbageCollect()); }
new void Update() { base.Update(); List <ShmupEntity> aliveEntities = linkedEntities.Where(x => !x.IsCompleted()).ToList(); lineRenderer.SetPosition(0, this.transform.position); for (int i = 0; i < aliveEntities.Count(); i++) { ShmupEntity entity = aliveEntities[i]; lineRenderer.SetPosition(2 * i + 1, this.transform.position); lineRenderer.SetPosition(2 * i + 2, entity.gameObject.transform.position); } for (int i = aliveEntities.Count; i < linkedEntities.Count(); i++) { lineRenderer.SetPosition(2 * i + 1, this.transform.position); lineRenderer.SetPosition(2 * i + 2, this.transform.position); } }