Added UI to Furnance, fixed carry and drag obj and added fish
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
using UnityEngine;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[RequireComponent(typeof(Canvas))]
|
||||
public sealed class WorldSpaceCanvasCameraBinder : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Canvas targetCanvas;
|
||||
|
||||
public Canvas TargetCanvas => targetCanvas;
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
targetCanvas = GetComponent<Canvas>();
|
||||
RefreshBinding();
|
||||
}
|
||||
|
||||
private void Awake() => ResolveCanvas();
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
LocalPlayerCameraRegistry.Changed += HandleLocalCameraChanged;
|
||||
RefreshBinding();
|
||||
}
|
||||
|
||||
private void OnDisable() =>
|
||||
LocalPlayerCameraRegistry.Changed -= HandleLocalCameraChanged;
|
||||
|
||||
public void RefreshBinding()
|
||||
{
|
||||
ResolveCanvas();
|
||||
|
||||
if (targetCanvas == null || targetCanvas.renderMode != RenderMode.WorldSpace)
|
||||
return;
|
||||
|
||||
targetCanvas.worldCamera = LocalPlayerCameraRegistry.Current;
|
||||
}
|
||||
|
||||
private void ResolveCanvas()
|
||||
{
|
||||
if (targetCanvas == null)
|
||||
targetCanvas = GetComponent<Canvas>();
|
||||
}
|
||||
|
||||
private void HandleLocalCameraChanged(Camera localCamera)
|
||||
{
|
||||
if (targetCanvas != null && targetCanvas.renderMode == RenderMode.WorldSpace)
|
||||
targetCanvas.worldCamera = localCamera;
|
||||
}
|
||||
|
||||
[ContextMenu("Refresh Local Player Camera")]
|
||||
private void RefreshFromContextMenu() => RefreshBinding();
|
||||
}
|
||||
Reference in New Issue
Block a user