static void _Collision(SpriteColliderBase a, SpriteColliderBase b) { if (a != null && b != null && a.gameObject && b.gameObject && a.AllowCollision() && b.AllowCollision()) { a.OnCollision(b); } //if (a != null && b != null && a.gameObject && b.gameObject && a.AllowCollision() && b.AllowCollision()) b.OnCollision(a); }
void Update() { SpriteColliderBase.ResetList(); SpriteColliderBase.Check(group1, group2); SpriteColliderBase.ClearList(); }
public static void Remove(string id, SpriteColliderBase data) { for (int i = 0; i < _group.Count; i++) { if (_group[i].id == id) { _group[i].collider.Remove(data); } } }
public static void Add(string id, SpriteColliderBase data) { for (int i = 0; i < _group.Count; i++) { if (_group[i].id == id) { _group[i].collider.Add(data); return; } } var collisionList = new Group(); collisionList.id = id; _group.Add(collisionList); Add(id, data); }
void Awake() { if (spriteRenderer == null) { spriteRenderer = GetComponent <SpriteRenderer>(); } if (spriteColliderBase == null) { spriteColliderBase = GetComponent <SpriteColliderBase>(); } if (spriteRenderer == null) { enabled = false; return; } if (spriteColliderBase) { spriteColliderBase.enabled = false; } }
public override void OnCollision(SpriteColliderBase collider) { var collisionData = collider as CollisionData; if (collisionData == null) { return; } var a = structuralIntegrity; var b = collisionData.structuralIntegrity; if (indestructible && collisionData.indestructible) { print("oops"); } if (indestructible) { b = 0; collisionData.structuralIntegrity = 0; } if (collisionData.indestructible) { a = 0; structuralIntegrity = 0; } structuralIntegrity -= b; collisionData.structuralIntegrity -= a; if (structuralIntegrity < 0) { structuralIntegrity = 0; } if (collisionData.structuralIntegrity < 0) { collisionData.structuralIntegrity = 0; } if (structuralIntegrity == 0) { OnStructuralFailure(collisionData); } if (collisionData.structuralIntegrity == 0) { collisionData.OnStructuralFailure(this); } _Ghost(); collisionData._Ghost(); if ((structuralIntegrity > 0 || collisionData.structuralIntegrity > 0) && material != "" && collisionData.material != "") { CollisionAudio.Play(material, collisionData.material); } }
public virtual void OnCollision(SpriteColliderBase collider) { }