Convert 3D Raycast to Raycast2D

Ich habe den folgenden Code, mit dem ein Spieler unter 3 Spielern gesteuert werden kann. Ich war in der Lage, es durch eine Art "Betrug" zu implementieren, indem ich einen 3D-Würfel hinter einem 2D-Sprite hinzufügte, da mein Spiel in 2D sein sollte und ich es schwer habe, es in 2D zu implementieren. Ich bin wirklich verwirrt darüber, wie man es in 2D macht, weil ich wirklich verwirrt bin in Bezug auf die Parameter.

Obwohl ich es bereits wie oben beschrieben implementiert habe, möchte ich es dennoch in reines 2D implementieren. Und weil ich dieses Problem habe, wenn sich der ausgewählte Spieler bewegt, bewegt sich das Sprite schneller.

public GameObject target = null;

// Use this for initialization
void Start () {
}

// Update is called once per frame
void Update () 
{
   if(Input.touchCount > 0 || Input.GetTouch(0).phase == TouchPhase.Began)
   {
       Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
       Debug.DrawRay(ray.origin,ray.direction * 20,Color.red);
       RaycastHit hit;
       if(Physics.Raycast(ray, out hit,Mathf.Infinity))
       {
            Debug.Log(hit.transform.gameObject.name);
            if(this.target != null){
                SelectMove sm = this.target.GetComponent<SelectMove>();
                if(sm != null){ sm.enabled = false; }
            }
            target = hit.transform.gameObject; 
            //Destroy(hit.transform.gameObject);
            selectedPlayer();
        }
    }
}

void selectedPlayer(){
    SelectMove sm = this.target.GetComponent<SelectMove>();
    if(sm == null){
        target.AddComponent<SelectMove>();
    }
    sm.enabled = true;  
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage