public void OnCollisionEnter(Collision other) { if (other.collider != ownerCollider) { GameObject go = other.collider.gameObject; Debug.Log("trigger enter" + go.name); if (!masterScript.HitEnemies.Contains(go) && !masterScript.HitAllies.Contains(go)) { ShieldCollider sc = go.GetComponent <ShieldCollider>(); if (sc != null) { Debug.Log("hit shield"); // add the shield's characterstatus gameobject to hitenemies } CharacterStatus cs = go.GetComponent <CharacterStatus>(); if (cs != null) { masterScript.HitEnemies.Add(go); masterScript.HitEnemy(cs); Debug.Log("I JUST HIT SOMETHING"); } } } }
public override void Action(GameObject user, Ability ability) { if (user.transform.FindChild("Shield")) { GameObject s = user.transform.FindChild("Shield").gameObject; s.GetComponent <ShieldCollider>().DestroyGO(s); } Animator anim = user.GetComponent <Animator>(); anim.SetTrigger("isAttacking"); Vector3 userPos = new Vector3(user.transform.position.x, user.transform.position.y, 0); GameObject shield = GameObject.Instantiate(prefab, userPos, Quaternion.identity) as GameObject; shield.transform.parent = user.transform; shield.transform.name = prefab.name; shielded = true; // pass parameters ShieldCollider col = shield.GetComponent <ShieldCollider>(); col.User = user; col.Action(ability); }