Raycasting dans l'Unité 2D en c#

Je suis nouveau en c# et à essayer de comprendre comment obtenir raycasting de travailler ici dans Unity3d nouveau 2d soutien.

J'obtiens le message d'erreur "impossible de convertir de 'UnityEngine.Ray2D' à 'UnityEngine.Vector2'"

for (int i = 0; i<3; i ++) {
        float dir = Mathf.Sign(deltaY);
        float x = (p.x + c.x - s.x/2) + s.x/2 * i;
        float y = p.y + c.y + s.y/2 * dir;

        ray = new Ray2D(new Vector3(x, y), new Vector3(0, dir));
        Debug.DrawRay(ray.origin, ray.direction);
        hit = Physics2D.Raycast(ray.origin, ray.direction, Mathf.Abs(deltaY), collisionMask);

        if (hit != null && hit.collider != null)
        {
        }
        if (Physics2D.Raycast(ray,out hit,Mathf.Abs(deltaY),collisionMask)) {
            float dst = Vector2.Distance (ray.origin, hit.point);

            if (dst > skin) {
                deltaY = dst * dir + skin;
            }
            else {
                deltaY = 0;
            }

            grounded = true;

            break;

        }
    }

Quelqu'un peut-il m'aider?

  • Quelle est l'erreur?
  • si (Physics2D.Raycast(ray,touché,Mathf.Abs(deltaY),collisionMask))
InformationsquelleAutor Kem | 2014-05-26