VirtualFramework/Assets/Scripts/Item/DrawController.cs

63 lines
1.5 KiB
C#
Raw Normal View History

2025-02-21 11:49:10 +08:00
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class DrawController : MonoBehaviour
{
public static DrawController instance;
[HideInInspector]
public Camera self;
public LineRenderer lineRenderer;
Stack<LineRenderer> lines = new Stack<LineRenderer>();
private void Awake()
{
instance = this;
self = GetComponent<Camera>();
DontDestroyOnLoad(this);
gameObject.SetActive(false);
if (lineRenderer.material == null)
{
// ʹ<><CAB9><EFBFBD>ʺ<EFBFBD> LineRenderer <20><><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
}
}
public LineRenderer LineRendererFactory()
{
var line = GameObject.Instantiate(lineRenderer, transform);
lines.Push(line);
return line;
}
public void Remove()
{
if (lines.Count > 0)
{
var line = lines.Pop();
line.positionCount = 0;
GameObject.Destroy(line.gameObject);
}
}
public void Clear()
{
while (lines.Count > 0)
{
Remove();
}
}
public static void SetupCameraStack(Camera subCamera, Camera baseCamera)
{
UniversalAdditionalCameraData additionalCameraData = baseCamera.GetUniversalAdditionalCameraData();
if (!additionalCameraData.cameraStack.Contains(subCamera))
{
additionalCameraData.cameraStack.Add(subCamera);
}
}
}