Unity 实用教程 之 绘制2D游戏矩形攻击范围线

2025-10-22 12:43:35

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

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

2、在场景中添加  Cube,并把视图改为2D,布局如下图

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

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

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

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

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

5、脚本具体内容如下:

using UnityEngine;

public class DrawRectangle2D : MonoBehaviour {

// Update is called once per frame

void Update () {

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

            ToDrawRectangle2D(transform, 1, 4, 3);

        }

}

    private static LineRenderer GetLineRenderer(Transform t)

    {

        LineRenderer lr = t.GetComponent<LineRenderer>();

        if (lr == null)

        {

            lr = t.gameObject.AddComponent<LineRenderer>();

        }

        lr.startWidth = 0.1f;

        lr.endWidth = 0.1f;

        return lr;

    }

    //绘制空心长粒信块方形2D  

    //distance指的是这个长方形与Transform t的中心点的距离  

    public static void ToDrawRectangle2D(Transform t, float distance, float length, float width){

        LineRenderer lr = GetLineRenderer(t);

        lr.positionCount = 5;

        if (IsFacingRight(t))

   悦特     {

            Vector2 forwardMiddle = new Vector2(t.position.x + distance, t.position.y);

            lr.SetPosition(0, forwardMiddle + new Vector2(0, width / 2));

            lr.SetPosition(1, forwardMiddle + new Vector2(length, width / 2));

            lr.SetPosition(2, forwardMiddle + new Vector2(length, -width / 2));

           盆选 lr.SetPosition(3, forwardMiddle + new Vector2(0, -width / 2));

            lr.SetPosition(4, forwardMiddle + new Vector2(0, width / 2));

        }

        else

        {

            Vector2 forwardMiddle = new Vector2(t.position.x - distance, t.position.y);

            lr.SetPosition(0, forwardMiddle + new Vector2(0, width / 2));

            lr.SetPosition(1, forwardMiddle + new Vector2(-length, width / 2));

            lr.SetPosition(2, forwardMiddle + new Vector2(-length, -width / 2));

            lr.SetPosition(3, forwardMiddle + new Vector2(0, -width / 2));

            lr.SetPosition(4, forwardMiddle + new Vector2(0, width / 2));

        }

    }

    public static bool IsFacingRight(Transform t){

        if (t.localEulerAngles.y > 0) return false;

        else return true;

    }

}

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

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

7、运行场景,然后按下 A 键,2D游戏的矩形范围攻击线绘制出来,具体如下图

Unity 实用教程 之 绘制2D游戏矩形攻击范围线

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

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