版本:Unity 6 (6000.0)
语言英语
  • C#

HandleUtility.DistanceToCube

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static float DistanceToCube(Vector3 position, Quaternion rotation, float size);

参数

position 立方体的坐标。
rotation 立方体的旋转。
size 立方体的大小。

返回值

float 从鼠标到立方体的距离(以像素为单位)。

描述

返回鼠标指针到立方体的距离(以像素为单位)。

计算从鼠标指针到给定世界空间position、给定rotationsize的立方体的屏幕空间距离。

当鼠标指针直接位于立方体上方时,返回零。

使用当前摄像机来确定距离。

using UnityEngine;
using UnityEditor;

public class ExampleScript : MonoBehaviour { }

// Displays cube in scene view, and distance from mouse // to the cube. [CustomEditor(typeof(ExampleScript))] public class ExampleEditor : Editor { public void OnSceneGUI() { var t = target as ExampleScript; var tr = t.transform; var position = tr.position; var rotation = tr.rotation; var size = 1.0f; // draw a cube in scene Handles.color = Color.yellow; Handles.CubeHandleCap(0, position, rotation, size, Event.current.type); // calculate distance from mouse to cube, and display it var distance = HandleUtility.DistanceToCube(position, rotation, size); GUI.color = Color.black; Handles.Label(position, distance.ToString("F0")); // make scene view repaint on mouse move if (Event.current.type == EventType.MouseMove) Event.current.Use(); } }