dosenbiiir Geschrieben 22. Februar 2014 Melden Share Geschrieben 22. Februar 2014 Hey Leute Ich wollte mal fragen ob euch irgendwas an dem script Aufällt was man so nicht machen sollte. Der Hintergrund ist, dass mein Spieler (ein Ball, der sich nach vorne bewegt) manchmal leicht hackt am handy. (Samsung Galaxy S4). using UnityEngine; using System.Collections; public class Controller: MonoBehaviour { public float forwardSpeed = 1; public float rotationSpeed = 1; public Vector2 touchPosition; public float xPixel; public float yPixel; Vector3 moveDirection = Vector3.zero; CharacterController controller; void Awake () { controller = GetComponent<CharacterController>(); xPixel = Screen.width; yPixel = Screen.height; } void Update () { if (Input.touchCount == 1) { touchPosition = Input.GetTouch (0).position; if (touchPosition.x <= xPixel / 2) { transform.Rotate(0,0,rotationSpeed); } else if (touchPosition.x > xPixel / 2) { transform.Rotate(0,0,-rotationSpeed); } } moveDirection = new Vector3(forwardSpeed,0,0); moveDirection = transform.TransformDirection(moveDirection); //rotation += 90; //transform.rotation = Quaternion.Euler(0, rotation, 0); transform.position += moveDirection * Time.deltaTime; } } Sonst habe ich nur noch das Camera Script in der Scene. using UnityEngine; using System.Collections; public class CameraFollow : MonoBehaviour { public GameObject player; Vector3 pos = Vector3.zero; // Update is called once per frame void Update () { pos = player.transform.position; pos.z -= 10; transform.position = pos; } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. Februar 2014 Melden Share Geschrieben 22. Februar 2014 Kannst du bei genauem Hinschauen erkennen, ob es wirklich der Spieler ist der lagt oder das ganze Spiel? Performancemäßig sehe ich zumindest in deinem Script nichts Angst einflößendes. Einzig dieser Teil könnte problematisch sein (aber logisch, nicht wegen der Performance): if (touchPosition.x <= xPixel / 2) { transform.Rotate(0,0,rotationSpeed); } else if (touchPosition.x > xPixel / 2) { transform.Rotate(0,0,-rotationSpeed); } Wenn die Toucherkennung nicht ganz genau ist, könnte es da in einigen Frames rotieren und in anderen nicht, was wie ruckeln wirken könnte. Wenn allerdings das ganze Spiel ruckelt dann liegt's wahrscheinlich an irgendetwas im Rendering. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.