コード例 #1
0
    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;
        }
    }
コード例 #2
0
    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);
            }
        }
    }