2016-08-22 166 views
0

请帮忙,我目前正在做一个砖破碎机游戏,并在桨脚 上工作,但它显示第17行的错误,我不知道如何改变浮子的Vector3统一5.3.0f4错误CS0029;不能隐式地将类型'UnityEngine.Vector3'转换为'浮动'

using UnityEngine; 
using System.Collections; 

public class Paddle : MonoBehaviour { 


    // Use this for initialization 
    void Start() { 

    } 

    // Update is called once per frame 
    void Update() { 

     Vector3 paddlePos = new Vector3 (0.5f, this.transform.position.y, 0f); 

     float mousePosInBlocks = Input.mousePosition/Screen.width * 16; 

     paddlePos.x = Mathf.Clamp(mousePosInBlocks, 0.5f, 15.5f); 

     this.transform.position = paddlePos; 
    } 
} 

这里是脚本结合两个答案

公共类桨:MonoBehaviour {

Vector3 mousePosInBlocks; 
    Vector3 paddlePos; 

// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 

    paddlePos = new Vector3 (0.5f, this.transform.position.y, 0f); 

    mousePosInBlocks = Input.mousePosition/Screen.width * 16; 

    paddlePos.x = Mathf.Clamp(mousePosInBlocks.x, 0.5f, 15.5f); 

    this.transform.position = paddlePos; 
} 

float mousePosInBlocks = Input.mousePosition/Screen.width * 16; 

的问题究竟是什么错误消息告诉您:Input.mousePositionVector3}

+0

取代Input.mousePosition谢谢你两个答案,最后作品 –

回答

3

这行(我猜)发生您的错误。如果您将Vector3除以某个浮点数,则结果也为Vector3,因为这是一个按元素划分的分区。由于它仍然是Vector3,因此无法将其分配给float变量。

要解决这个问题,您应该使mousePosInBlocks a Vector3或选择要分配的向量的一个组件。

参考:Input.mousePosition

1

Mathf.Clamp需要一个浮动,而不是一个的Vector3。

更改此:

paddlePos.x = Mathf.Clamp(mousePosInBlocks, 0.5f, 15.5f); 

要:如有需要,y的

paddlePos.x = Mathf.Clamp(mousePosInBlocks.x, 0.5f, 15.5f); 

同样的事情。

您还需要将mousePosInBlocks设置为Vector3。

如果你只想处理X,保持mousePosInBlocks为float但Input.mousePosition.x

相关问题