63 lines
1.5 KiB
C#
63 lines
1.5 KiB
C#
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|