47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
public class VaultMinimapMarker : MonoBehaviour
|
|
{
|
|
[SerializeField] private float height = 5f;
|
|
[SerializeField] private float size = 3f;
|
|
[SerializeField] private Color markerColor = Color.yellow;
|
|
|
|
private GameObject marker;
|
|
|
|
private void LateUpdate()
|
|
{
|
|
CreateMarker();
|
|
}
|
|
|
|
private void CreateMarker()
|
|
{
|
|
marker = GameObject.CreatePrimitive(PrimitiveType.Quad);
|
|
|
|
marker.name = "VaultMarker";
|
|
marker.transform.SetParent(transform);
|
|
|
|
marker.transform.localPosition = Vector3.up * height;
|
|
marker.transform.localRotation = Quaternion.Euler(90f, 45f, 0f); // diamond
|
|
marker.transform.localScale = Vector3.one * size;
|
|
|
|
int minimapLayer = LayerMask.NameToLayer("Minimap");
|
|
|
|
if (minimapLayer != -1)
|
|
marker.layer = minimapLayer;
|
|
|
|
Destroy(marker.GetComponent<Collider>());
|
|
|
|
MeshRenderer renderer = marker.GetComponent<MeshRenderer>();
|
|
|
|
Material mat = new Material(Shader.Find("Sprites/Default"));
|
|
mat.color = markerColor;
|
|
|
|
renderer.material = mat;
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
if (marker != null)
|
|
Destroy(marker);
|
|
}
|
|
} |