前言
遇到一个需要绘制自定义形状的需求。那只能利用Sprite来绘制一条具有自定义图片的线,通过代码动态设置起点、终点以及线宽,实现灵活的线条效果。
项目
场景布置
在Unity中创建一个空场景,随后创建一个空物体用于挂载脚本,并设置上Sprite Renderer
组件。确保在项目中导入一张用于线条的Sprite图片,并将其分配给Sprite Renderer
中的Sprite
属性。
再分别设置起点、终点、线宽。
代码编写
下面是核心的SpriteLine脚本的代码,该脚本使用ExecuteInEditMode属性,使其在编辑模式下也能生效。
using UnityEngine;
[ExecuteInEditMode]
public class SpriteLine : MonoBehaviour
{
public SpriteRenderer lineSprite; // 需要在Inspector窗口中分配的Sprite
public Vector3 startPoint;
public Vector3 endPoint;
public float lineWidth = 0.1f;
private SpriteRenderer spriteRenderer;
public Transform caster;
public Transform target;
/// <summary>
/// 初始化
<