Angepasste Garage, verbessertes Icon Asset system, range der türme vorschau beim ziehen
This commit is contained in:
1 parent
5486444dde
commit
5af8655c97
59 files changed
+12079
-457
No files matched your search
@@ -0,0 +1,35 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace DepthsOfGreed.HandbookUI
|
||||
{
|
||||
// Only rendering and input change; all GameObjects and gameplay keep running.
|
||||
public sealed class BasementRoomView : MonoBehaviour
|
||||
{
|
||||
public Canvas roomCanvas;
|
||||
public GraphicRaycaster roomRaycaster;
|
||||
public Camera roomCamera;
|
||||
public RectTransform[] horizontalSurfaces;
|
||||
public RectTransform leftBoundary,rightBoundary;
|
||||
public Vector2 referenceSize=new Vector2(1920,1080);
|
||||
public bool IsVisible {get;private set;}
|
||||
public void SetVisible(bool visible)
|
||||
{
|
||||
IsVisible=visible;
|
||||
roomCanvas.enabled=visible;roomRaycaster.enabled=visible;roomCamera.enabled=visible;
|
||||
Fit();
|
||||
}
|
||||
void Awake()=>SetVisible(false);
|
||||
void LateUpdate(){if(IsVisible)Fit();}
|
||||
void Fit()
|
||||
{
|
||||
float scale=Mathf.Abs(roomCanvas.transform.lossyScale.y);
|
||||
roomCamera.orthographicSize=Mathf.Max(referenceSize.y*.5f,referenceSize.x*.5f/Mathf.Max(.1f,roomCamera.aspect))*scale;
|
||||
float width=Mathf.Max(referenceSize.x,roomCamera.orthographicSize*2*roomCamera.aspect/Mathf.Max(.00001f,scale));
|
||||
((RectTransform)roomCanvas.transform).sizeDelta=new Vector2(width,referenceSize.y);
|
||||
if(horizontalSurfaces!=null)foreach(var surface in horizontalSurfaces)if(surface)surface.sizeDelta=new Vector2(width,surface.sizeDelta.y);
|
||||
if(leftBoundary)leftBoundary.anchoredPosition=new Vector2(-width*.5f+10,leftBoundary.anchoredPosition.y);
|
||||
if(rightBoundary)rightBoundary.anchoredPosition=new Vector2(width*.5f-10,rightBoundary.anchoredPosition.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user