Unity 实用教程 之 绘制2D游戏矩形攻击范围线
1、打开Unity,新建一个空工程,具体如下图
2、在场景中添加 Cube,并把视图改为2D,布局如下图
3、在工程中,新建一个脚本,命名为 DrawRectangle2D,并右键脚本 Open C# Project 打开,具体如下图
4、在打开的脚本上编写代码,具体代码和代码说明如下图
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,具体如下图
7、运行场景,然后按下 A 键,2D游戏的矩形范围攻击线绘制出来,具体如下图
8、到此,《Unity 实用教程 之 绘制2D游戏矩形攻击范围线》讲解结束,谢谢