Unity 实用教程 之 绘制实体矩形攻击范围线

2025-12-25 19:58:32

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

Unity 实用教程 之 绘制实体矩形攻击范围线

2、在场景中添加 Plane 和 Cube,布局如下图

Unity 实用教程 之 绘制实体矩形攻击范围线

3、在工程中,新建一个脚本,命名为 DrawRectangleSolid,并右键脚本 Open  C# Project 打开,具体如下图

Unity 实用教程 之 绘制实体矩形攻击范围线

4、在打开的脚本上编写代码,具体代码和代码说明如下图

Unity 实用教程 之 绘制实体矩形攻击范围线

Unity 实用教程 之 绘制实体矩形攻击范围线

5、脚本具体内容如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class DrawRectangleSolid : MonoBehaviour {

        public static GameObject go;  

    public static MeshFilter mf;  

    public static MeshRenderer mr;  

    public static Shader shader;  

        // Update is called once per frame

    void Update () {

        if(Input.GetKeyDown (KeyCode.A)) {

            ToDrawRectangleSolid (transform, transform.localPosition, 4, 3);

        }

    }

            private static GameObject CreateMesh(List<Vector3> vertices)  

    {  

        int[] triangles;  

        Mesh mesh = new Mesh();  

        int triangleAmount = vertices.Count - 2;  

        triangles = new int[3 * triangleAmount];  

        //根据三角形的个数,来计算绘制三角形的顶点顺序(索引)   

        //顺序必须为顺时针或者逆时针     

        for (int i = 0; i < triangleAmount; i++)  

        {  

            triangles[3 * i] = 0;//固定第一个点      

            triangles[3 * i + 1] = i + 1;  

            triangles[3 * i + 2] = i + 2;  

        }  

        if (go == null)  

        {  

            go = new GameObject("mesh");  

            go.transform.position = new Vector3(0, 0.1f, 0);//让绘制的图形上升一点,防止被地面遮挡  

            mf = go.AddComponent<MeshFilter>();  

            mr = go.AddComponent<MeshRenderer>();  

            shader = Shader.Find("Unlit/Color");  

        }  

        mesh.vertices = vertices.ToArray();  

        mesh.triangles = triangles;  

        mf.mesh = mesh;  

        mr.material.shader = shader;  

        mr.material.color = Color.red;  

        return go;  

    }  

    //绘制实心长方形  

    //以长方形的底边中点为攻击方位置(从俯视角度来看)  

    public static void ToDrawRectangleSolid(Transform t, Vector3 bottomMiddle, float length, float width)  

    {  

        List<Vector3> vertices = new List<Vector3>();  

        vertices.Add(bottomMiddle - t.right * (width / 2));  

        vertices.Add(bottomMiddle - t.right * (width / 2) + t.forward * length);  

        vertices.Add(bottomMiddle + t.right * (width / 2) + t.forward * length);  

        vertices.Add(bottomMiddle + t.right * (width / 2));  

        CreateMesh(vertices);  

    }  

}

6、脚本编译正确,回到Unity界面,把脚本赋给 Cube,具体如下图

Unity 实用教程 之 绘制实体矩形攻击范围线

7、运行场景,然后按下 A 键,圆形绘制出来,具体如下图

Unity 实用教程 之 绘制实体矩形攻击范围线

8、到此,《Unity 实用教程 之 绘制实体矩形攻击范围线》讲解结束,谢谢

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢