Unity 实用教程之 三角形攻击范围的绘制
来源:网络收集 点击: 时间:2024-08-07打开Unity,新建一个空工程,具体如下图

在场景中,添加几个物体,并且合理布局,具体如下图

在工程中,添加一个脚本,双击脚本或右键 Open C# Project 打开脚本,具体如下图

编辑脚本,其中脚本大概内容如下:首先获得 LineRenderer 组件,若没有该组件则添加该组件,然后通过计算点的位置,绘制出三角形区域,具体代码和代码内容如下图


脚本具体内容如下:
using UnityEngine;
public class DrawSector : MonoBehaviour {
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A)) {
ToDrawSector(transform, transform.localPosition, 60, 3);
}
}
private static LineRenderer GetLineRenderer(Transform t)
{
LineRenderer lr = t.GetComponentLineRenderer();
if (lr == null)
{
lr = t.gameObject.AddComponentLineRenderer();
}
lr.startWidth = 0.1f;
lr.endWidth = 0.1f;
return lr;
}
public static void DrawLine(Transform t, Vector3 start, Vector3 end)
{
LineRenderer lr = GetLineRenderer(t);
lr.positionCount = 2;
lr.SetPosition(0, start);
lr.SetPosition(1, end);
}
//绘制空心三角形
public static void ToDrawSector(Transform t, Vector3 center, float angle, float radius)
{
LineRenderer lr = GetLineRenderer(t);
int pointAmount = 100;//点的数目,值越大曲线越平滑
float eachAngle = angle / pointAmount;
Vector3 forward = t.forward;
lr.positionCount = pointAmount;
lr.SetPosition(0, center);
lr.SetPosition(pointAmount - 1, center);
for (int i = 1; i pointAmount - 1; i++)
{
Vector3 pos = Quaternion.Euler(0f, -angle / 2 + eachAngle * (i - 1), 0f) * forward * radius + center;
lr.SetPosition(i, pos);
}
}
}
6/8脚本编译正确后,回到Unity界面,把脚本挂载到物体 Cube 上,具体如下图

运行场景,按下 A 键,即可看到绘制出的三角形区域,具体如下图

到此,《Unity 实用教程之 三角形形范围的绘制》讲解结束,谢谢
注意事项您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言
三角形范围UNITY版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1081260.html