将Vector3转换为在Unity中浮动

时间:2016-05-30 12:47:05

标签: c# unity3d

using UnityEngine;
using System.Collections;
public class GetPosition : MonoBehaviour
{
    Vector3 dragStartPosition;
    float dragStartDistance;
    float[] Xfloat;

    void OnMouseDown()
    {
        dragStartPosition = transform.position;
        dragStartDistance = (Camera.main.transform.position - transform.position).magnitude;
    }

    void Update()
    {
    }

    void OnMouseDrag()
    {
            Vector3 worldDragTo = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, dragStartDistance));
            transform.position = new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z);
            new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z);
            float Newpos = ;
    }

    void OnMouseUp()
    {
    }

}

我有这个代码统一,我想将我的新Vector3(只有位置x)转换为浮点数,我该怎么做?

1 个答案:

答案 0 :(得分:3)

这很简单:

float Newpos = worldDragTo.x;

因为Vector3的组件已经浮动。

如果它们是另一个浮点类型,你需要进行转换,因为你的转换失去了精度,因此没有隐式转换从double或decimal to float。

虽然你正在创建一个矢量而没有将它分配给一个变量,所以你就把它扔掉了。

new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z);