Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 06/03/2018 in all areas

  1. 1 point
    Ja. Aber erstmal musst du aber dein Charakter Objekt, oder Script an dein Kugel Script einbinden. Als Erstes erstellst du public Variable z.b als GameObject: public GameObject spieler; Dann erscheint auf dem Script eine neue Variable Spieler, da kannst du dein Spieler Objekt einbinden. Jetzt kannst du im Script auf deine Spieler Variablen wie Geschwindigkeit zugreifen: public GameObject spieler; void Start() { spieler.GetComponent<Scriptname>().speed = neuerWert; } Warum du die Fehlermeldung bekommst, hat schon Sascha erklärt. Allerdings wenn du das gefixt hast, wirst du noch eine Fehlermeldung bekommen und zwar wegen Lerp. Dieser erwartet neben zwei Vector3, noch einen dritten float Parameter. hier kannst du genauer über die Funktion nachlesen : https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html Und noch eine Kleinigkeit nebenbei, statt: if (distance <5 || distance > 5) {} kann man auch: if (distance != 5) {} schreiben
  2. 1 point
    Ich schreib mal alles, was mir so einfällt und hoffe, damit das richtige abzudecken Fangen wir mal hierbei an. Du weist ja einen neuen Vektor zu, und zwar dieser Eigenschaft: followobject.transform.position = ... Hierbei kannst du das "transform" weglassen, denn "followobject" referenziert bereits die Transform-Komponente. Nun ist es aber so, dass alle Komponenten alle Komponenten auf ihrem GameObject kennen - und damit meine ich nicht "alle anderen"! Du kannst z.B. die Licht-Komponente nach der Transform-Komponente fragen oder umgekehrt. Du kannst aber auch die Transform-Komponente nach der Transform-Komponente fragen, und genau das tust du hier. Man kann also auch schreiben: followobject.transform.transform.transform.position = ... ist aber nicht sinnvoll Weiter rechts jedenfalls machst du das auch und schreibst direkt "followobject.postition". Weiter zur Exception. Noch weiter rechts schreibst du targetobject.position und das geht nicht. Der Grund: Während deine Variable "followobject" eine Transform-Komponente referenziert, ist "targetobject" vom Typ GameObject. Hier musst du also schreiben targetobject.transform.position oder, was ich eher empfehlen würde, du änderst die Definition von "targetobject" und schreibst auch private var targetobject : Transform; und entsprechend in Awake targetobject = GameObject.Find("RollerBall").transform; Du verlagerst also einfach das ".transform" von Update nach Awake. Das ist gut, weil es dann nur einmal aufgerufen werden muss. Als nächstes: Jau: Debug.Log(Vector3.Distance(targetobject.transform.position, followobject.transform.position)); // Distanz ausgeben Debug.Log(followobject.position); // Position ausgeben Beachte die Punkte, die ich aus der ersten Zeile entfernt habe.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...