多语言展示
当前在线:817今日阅读:23今日分享:31

Unity 实用教程之 三角形攻击范围的绘制

Unity 实用教程之 三角形攻击范围的绘制。本节介绍,在Unity开发中,绘制三角形攻击范围的方法(绘制实体扇形范围攻击线可参考如下经验),具体如下4Unity 实用教程之 绘制实体扇形范围攻击线
工具/原料

Unity + LineRenderer

方法/步骤
1

打开Unity,新建一个空工程,具体如下图

2

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

3

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

5

脚本具体内容如下: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.GetComponent();        if (lr == null)        {            lr = t.gameObject.AddComponent();        }        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

脚本编译正确后,回到Unity界面,把脚本挂载到物体 Cube 上,具体如下图

7

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

8

到此,《Unity 实用教程之 三角形形范围的绘制》讲解结束,谢谢

注意事项

您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言

推荐信息