IEnumerator ZapClock(RecieverSpear recieverScript) { //lineR.enabled = true; lineR.SetPosition(0, transform.position); lineR.SetPosition(1, recieverScript.gameObject.transform.position); ZapRayCollision(recieverScript); yield return(new WaitForSeconds(2f)); lineR.enabled = false; Destroy(gameObject); }
void ZapRayCollision(RecieverSpear recieverScript) //only run once per object/character (like trigger entre) { print("Zap"); RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, recieverScript.gameObject.transform.position, Vector3.Distance(transform.position, recieverScript.gameObject.transform.position)); if (hits.Length > 0) { for (int i = 0; i < hits.Length; i++) { GameObject hitObj = hits[i].collider.gameObject; if (hitObj.GetComponent <CharacterCommon>()) { hitObj.GetComponent <CharacterCommon>().TakeDamage(minLightningDamage, maxLightningDamage, myOwner); print("ZAP"); } } } /* * if (hit.collider != null) //error * { * * * GameObject hitObj = hit.collider.gameObject; * print("hit esixtsts " + hitObj); * if (hitObj.GetComponent<CharacterCommon>()) * { * print("Is player"); * hitObj.GetComponent<CharacterCommon>().TakeDamage(minLightningDamage, maxLightningDamage, myOwner); * * foreach (GameObject obj in alreadyHitObjs) * { * if (hitObj == obj) * { * return; * } * } * print("post return"); * * if (hitObj != myOwner.gameObject) * { * for (int i = 0; i < alreadyHitObjs.Length; i++) * { * if (alreadyHitObjs[i] == null) * { * alreadyHitObjs[i] = hitObj; * hitObj.GetComponent<CharacterCommon>().TakeDamage(minLightningDamage, maxLightningDamage, myOwner); * print("Lightning damage"); * * //damage * //knockback * * return; * } * } * * } * } * } */ }