2016-05-16 12 views
-3

Ich versuche, die Kamera zum Player zurück zu bewegen, wenn die Kamera nicht an der Stelle ist, an der sie stoppt, aber ich bekomme den Fehler im Titel. Hier ist mein Code:Kann den Typ "unityengine.vector3" nicht in "float" konvertieren

public float minPos = 0.3234783f; 
public float maxPos = 40f; 

Vector3 tempPos; 
public float playerPos; 

// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 
    playerPos = GameObject.Find ("Player").transform.position; 

    tempPos = transform.position; 

    tempPos.z = -10f; 

    if (transform.position.x < minPos) { 
     tempPos.x = minPos; 
    } else 
     tempPos.x = playerPos; 

    transform.position = tempPos; 
} 

Ich bin ziemlich neu in Codierung so leid, wenn dies ein wirklich dummen Fehler.

+2

es ist, weil Sie nicht Typ „unityengine.vector3“ umwandeln kann zu „schweben“. – Fattie

Antwort

0

Das Problem ist, diese Linie, die die IDE sollten Sie gesagt haben:

playerPos = GameObject.Find ("Player").transform.position; 

ist playerPosfloat geben aber position Eigenschaft ist Vector3 geben und es gibt zwischen ihnen keine Konvertierung. Sie könnten playerPos in eine Vector3 machen, um es zu beheben und Ihren Code entsprechend anzupassen.

+0

Ok, jetzt habe ich den gleichen genauen Fehler in Zeile 23: \ – user6210476

+0

@ user6210476 gleichen Grund dort. 'tempPos.x = playerPos;' funktioniert nicht, da playerPos jetzt ein Vektor ist. Sie müssen Ihren Code neu schreiben. –

2

Ihr Problem ist hier playerPos = GameObject.Find("Player").transform.position;

transform.position; ist Vector3 nicht schwimmen. playerPos ist als float definiert, sodass Sie Vector3 nicht speichern können. Ändern public float playerPos; zu public Vector3 playerPos;

Auch

ändern
tempPos.x = playerPos; 

zu
tempPos.x = playerPos.x;

Verwandte Themen