Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

theroth

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Neutral

About theroth

  • Rank
    Newbie
  1. Das hat schon mal sehr gut funktioniert Dankeschön mein Spiel läuft jetzt flüssig.
  2. Hallo, Ich habe angefangen mit Unity ein Pong für Android zu entwickeln. Das hat auch gut funktioniert, bis es zur Eingabe mit dem Touch Input kam. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player1Script : MonoBehaviour { public int speed = 800; void Start () { } void FixedUpdate() { int touchCount = Input.touchCount; for (int i = 0; i < touchCount; i++) { Touch touch = Input.GetTouch(i); if (touch.phase == TouchPhase.Began) { if (touch.position.y > Screen.height / 2.0f) { GetComponent<Rigidbody2D>().velocity = new Vector2(0, 1.5f) * speed * Time.deltaTime; } else if (touch.position.y < Screen.height / 2.0f) { GetComponent<Rigidbody2D>().velocity = new Vector2(0, -1.5f) * speed * Time.deltaTime; } } else if (touch.phase == TouchPhase.Ended) { GetComponent<Rigidbody2D>().velocity = new Vector2(0, 0); } } } } Dieses Script ist dafür zuständig den Spieler 1 zu bewegen und wurde dem GameObject auch zugewiesen. Spieler 2 wird dabei von einer "KI" bewegt. Nun ist mein Problem aber, das die Steuerung sehr sehr ungenau ist. Ich meine damit mal bewegt es sich gar nicht und mal schon, mal läuft es direkt bis unten durch und mal funktioniert es so wie es auch sein soll. Ich habe es auch schon mit Update statt FixedUpdate versucht leider ohne Erfolg. Die Steuerung bleibt so. Getestet wurde es auf einem Samsung S7 und einem Samsung Tab A von 2016 weswegen ich jetzt nicht denke es hat etwas mit der Hardware zu tun. 2. Mein zweites Problem ist, als ich das Projekt als Gradle bauen wollte um eventuell den Fehler oben zu beheben (war ein versuch) kann ich es nicht bauen. Er sagt mir immer das irgendwelche Abhängigkeiten fehlen usw. Als normales Projekt geht es aber, weswegen ich nicht davon ausgehe, das es an den Abhängigkeiten liegt. Ich habe etwas recherchiert und habe herausgefunden, das es ein Bug von AdMob sein kann, was ich auch zu Testzwecken drin habe. Wurde das Problem schon gelöst und wenn ja wie kann ich es auch lösen? Mit freundlichen Grüßen Dominik Robert
  3. Virtueller Joystick Ansprechen

    Also ich hab ein GameObject das Script zugewiesen, mehr habe ich nicht getan. Im Tutorial wurd auch nicht mehr gemacht. Was müsste ich denn noch tun?
  4. Hallo, Ich habe mithilfe eines Tutorials einen virtuellen Joystick erstellt. Die Bewegung usw. funktioniert auch alles wunderbar, nur kann ich ihn nicht in der eigentlichen PlayerController Klasse nicht ansprechen. VirtualJoystick using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using System; public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler { private Image bgImg; private Image joystickImg; private Vector3 inputVector; private void Start() { bgImg = GetComponent<Image>(); joystickImg = transform.GetChild(0).GetComponent<Image>(); } public virtual void OnPointerDown(PointerEventData ped) { OnDrag(ped); } public virtual void OnPointerUp(PointerEventData ped) { inputVector = Vector3.zero; joystickImg.rectTransform.anchoredPosition = Vector3.zero; } public virtual void OnDrag(PointerEventData ped) { Vector2 pos; if (RectTransformUtility.ScreenPointToLocalPointInRectangle(bgImg.rectTransform, ped.position, ped.pressEventCamera, out pos)) { pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x); pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y); inputVector = new Vector3(pos.x * 2 + 1, 0, pos.y * 2 - 1); inputVector = (inputVector.magnitude > 1.0f) ? inputVector.normalized : inputVector; //MOVE JoyStick Image joystickImg.rectTransform.anchoredPosition = new Vector3(inputVector.x * (bgImg.rectTransform.sizeDelta.x / 3), inputVector.z * (bgImg.rectTransform.sizeDelta.y / 3)); } } public float Horizontal() { if (inputVector.x != 0) return inputVector.x; else return Input.GetAxis("Horizontal"); } public float Vertical() { if (inputVector.y != 0) return inputVector.y; else return Input.GetAxis("Vertical"); } } Meine MovePlayerController Klasse using System.Collections; using System.Collections.Generic; using UnityEngine; public class MovePlayerController : MonoBehaviour { public float speed = 5; public VirtualJoystick virtualJoystick; public void FixedUpdate() { Rigidbody2D rigidbody = GetComponent<Rigidbody2D>(); Vector2 dir = Vector2.zero; dir.x = virtualJoystick.Vertical(); dir.y = virtualJoystick.Horizontal(); rigidbody.velocity = new Vector2(dir.x , dir.y) * speed; } } Fehler ist jetzt er erkennt den VirtualJoystick nicht und löst eine NullPointerException aus.
×