Jump to content
Unity Insider Forum

Objekt am Mauszeiger versetzen


Gubbl

Recommended Posts

Hey Leute,

 

ich habe ein kleines skript geschrieben, in dem ich ein objekt an den Mauszeiger hänge.

Mein Problem ist jetzt, das wenn ich jetzt in die Szene klicke natürlich das Objekt im weg ist.

Jetzt bräuchte ich eine möglichkeit, das objekt ein bisschen versetzt an die maus zu hängen.

Ich denke mal, es gibt dafür ne einfach lösung, aber ich komme da einfach nicht drauf.

 

var pointobj:Transform;
var hit:RaycastHit;

function Update () {
 if(pointobj!=null){
cursorRay = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(cursorRay,hit)){
  if(pointobj!=null){
  if(hit.collider.gameObject.tag == "ground"){
   pointobj.transform.position = hit.point;

  }
 }
}
  }
 }

 

 

vielen dank

gruß

Gubbl

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich finde die Lösung mit der Verschiebung etwas unelegant, vorallem wenn du Objekte unterschiedlicher Größe instanzieren möchtest.

Falls du nur einen "Ground" hast, könntest du von diesem aus einen collider.Raycast ausführen, da dieser alle anderen Collider ignoriert.

 

private GameObject ground;
ground = GameObject.Find("Ground");

void Update()
{
  RaycastHit myhit = new RaycastHit();
  Ray myray = new Ray();

  myray = Camera.main.ScreenPointToRay(Input.mousePosition);

  if (ground.collider.Raycast(myray,out myhit, 1000.0f))
  {
	 this.transform.position = (myhit.point);
  }
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...