2016-05-24 10 views
1

Ich habe ein Zeichen (Roboter Kyle) und ich kann das Zeichen von Seite zu Seite und nach vorne bewegen. Wenn der Charakter sich rückwärts bewegt, verschwindet er ohne Grund.Debug Zeichen Bewegung rückwärts in Unity 5

Auch, wie würde ich den Charakter in Richtung der Maus bewegen? Ich habe es so in die Richtung der Maus gerichtet, aber der Kamerawinkel verzerrt das ein wenig.

using UnityEngine; 
using System.Collections; 

public class PlayerScript : MonoBehaviour { 

    public GameControlScript control; 

    float strafeSpeed = 2; 
    Animator anim; 

    bool jumping = false; 

    void Start() { 
     anim = GetComponent<Animator>(); 
    } 

    void Update() { 
     if (Input.GetKey(KeyCode.RightArrow)){ 

      Vector3 newPosition = this.transform.position; 
      newPosition.x++; 
      this.transform.position = newPosition; 

     } 
     if (Input.GetKey(KeyCode.LeftArrow)){ 

      Vector3 newPosition = this.transform.position; 
      newPosition.x--; 
      this.transform.position = newPosition; 

     } 
     if (Input.GetKey(KeyCode.UpArrow)){ 

      Vector3 newPosition = this.transform.position; 
      newPosition.z++; 
      this.transform.position = newPosition; 


     } 
     if (Input.GetKey(KeyCode.DownArrow)){ 

      Vector3 newPosition = this.transform.position; 
      newPosition.z--; 
      this.transform.position -= newPosition; 

     } 
     Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1000); 
     Vector3 lookPos = Camera.main.ScreenToWorldPoint(mousePos); 
     lookPos = lookPos - this.transform.position; 
     float angle = Mathf.Atan2(lookPos.z, lookPos.x) * Mathf.Rad2Deg; 
     this.transform.rotation = Quaternion.AngleAxis(angle, Vector3.down); 

    } 

    void OnTriggerEnter(Collider other) 
    { 
     if(other.gameObject.name == "Powerup(Clone)") 
     { 
      control.PowerupCollected(); 
     } 
     else if(other.gameObject.name == "Obstacle(Clone)" && 
      jumping == false) 
     { 
      control.SlowWorldDown(); 
     } 

     Destroy(other.gameObject); 
    } 
} 
+3

Komm schon, du hast 'this.transform.position - = newPosition; '... geschrieben. –

+0

Eigentlich habe ich den Quellcode von Sam's Teach your unity in 24 Stunden genommen. Aber danke. –

+0

Wie ändere ich die Maus in der ersten Person, um genau zu arbeiten? Es geht weiter nach links. –

Antwort

0

ScreenToWorldPoint kann Ihr Problem sein, weil Sie 1000 als der Abstand zwischen der Kamera und dem Objekt zu befestigen.

Auschecken Sie diese link und versuchen Sie, Ihre lookPos Variable zu protokollieren.