在 Unity 中将 Vector3 转换为浮动

Sho*_*lyu 2 c# unity-game-engine

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()
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*isF 6

这很简单:

float Newpos = worldDragTo.x;
Run Code Online (Sandbox Code Playgroud)

因为 Vector3 的组件已经是浮点数。

如果它们是另一种浮点类型,您需要进行转换,因为您在转换时会失去精度,因此没有从双精度或小数转换为浮点数的隐式转换。

尽管您正在创建一个向量而不将其分配给变量,因此您将其丢弃了。

new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z);
Run Code Online (Sandbox Code Playgroud)