使用Gizmos划线
时间: 2024-12-31 22:35:40 浏览: 14
### 使用 Unity Gizmos 绘制线条
在 Unity 中,`Gizmos` 提供了一种可视化调试工具的方法,在场景视图中可以显示各种图形元素。对于绘制线条的操作,通常会在 `OnDrawGizmos()` 或者 `OnDrawGizmosSelected()` 方法内完成。
当希望仅在玩家点击特定游戏对象时才展示其辅助信息,则应采用 `OnDrawGizmosSelected()` 函数[^2]。此方法允许开发者定义自定义的视觉反馈逻辑,比如连接一系列路径节点并形成一条连续线段的同时,在各个节点位置放置一个小球作为标记。
下面是具体的实现方式:
#### 实现代码示例
```csharp
using UnityEngine;
public class PathDrawer : MonoBehaviour
{
public Transform[] nodes; // 定义存储路径点的对象数组
void OnDrawGizmosSelected()
{
if (nodes.Length < 2) return;
for (int i = 0; i < nodes.Length - 1; ++i)
{
// 设置颜色(可选)
Gizmos.color = Color.red;
// 连接两点间画直线
Gizmos.DrawLine(nodes[i].position, nodes[i + 1].position);
// 在每个节点处绘制小球
Gizmos.DrawWireSphere(nodes[i].position, 0.1f);
}
// 不要忘记最后一个节点的小球
int lastIndex = nodes.Length - 1;
Gizmos.DrawWireSphere(nodes[lastIndex].position, 0.1f);
}
}
```
这段 C# 脚本展示了如何通过遍历 `Transform` 类型的数组 `nodes` 来构建由多个点构成的一条折线,并且为每一个点附加一个可见的指示器——即空心圆圈(`DrawWireSphere`)。这样做的好处在于可以让开发人员更加直观地理解物体间的相对关系以及运动轨迹。
阅读全文