void FixedUpdate() { if (level && level.Value >= 3) { return; } WormMechanics worm = gameObject.GetComponent <WormMechanics>(); RaycastHit2D hit = Physics2D.Raycast(transform.position, gameObject.transform.up, maxDistance, LayerMask.GetMask("Apples")); if (hit.collider && worm.parentApple) { if (worm.parentApple.gameObject != hit.collider.gameObject) { _line.enabled = true; Vector3[] positions = new Vector3[2]; positions[0] = transform.position; positions[1] = hit.point; _line.SetPositions(positions); //Debug.DrawRay(transform.position, gameObject.transform.up * maxDistance, Color.green); //Debug.DrawLine(transform.position, hit.point, Color.blue); } else { _line.enabled = false; } } else { _line.enabled = false; } }
void OnTriggerEnter2D(Collider2D coll) { if (coll.gameObject.tag == "Worm") { MonoBehaviour apple = gameObject.GetComponent <AppleMechanics>();// as MonoBehaviour; WormMechanics worm = coll.gameObject.GetComponent <WormMechanics>(); if (apple && worm.parentApple != apple) { OnCollision.Raise(apple); } } }