Merge pull request #16 from jakobwcrowe/megaminerzero

Minimizing Camera.main references (you usually don't want to reference Camera.main too often, plus it cased errors in fullscreen mode)
This commit is contained in:
Braedon 2022-02-03 03:40:18 -05:00 committed by GitHub
commit 9c5c6d13f9
6 changed files with 32 additions and 18 deletions

View file

@ -7,10 +7,17 @@ namespace RhythmHeavenMania.Common
public class FollowMouse : MonoBehaviour
{
public Vector2 offset;
public Camera cam;
private void Awake()
{
if (cam == null)
cam = Camera.main;
}
private void Update()
{
var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
var pos = cam.ScreenToWorldPoint(Input.mousePosition);
transform.position = new Vector3(pos.x - offset.x, pos.y - offset.y, 0);
}
}

View file

@ -14,11 +14,18 @@ namespace RhythmHeavenMania.Common
private Vector3 lastCamPos;
public float textureUnitSizeX;
public Camera cam;
public bool sprite = true;
private void Awake()
{
if (cam == null)
cam = Camera.main;
}
private void Start()
{
camTransform = Camera.main.transform;
camTransform = cam.transform;
lastCamPos = camTransform.position;
/*if (sprite)
{

View file

@ -34,7 +34,7 @@ namespace RhythmHeavenMania.Editor.Track
if (Timeline.instance.timelineState.tempoChange && !Conductor.instance.NotStopped())
{
if (RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.main))
if (RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Editor.instance.EditorCamera))
{
if (Input.GetMouseButtonDown(0))
{
@ -45,7 +45,7 @@ namespace RhythmHeavenMania.Editor.Track
}
}
if (RectTransformUtility.RectangleContainsScreenPoint(StartingBPM, Input.mousePosition, Camera.main))
if (RectTransformUtility.RectangleContainsScreenPoint(StartingBPM, Input.mousePosition, Editor.instance.EditorCamera))
{
float increase = Input.mouseScrollDelta.y;
if (Input.GetKey(KeyCode.LeftControl))
@ -82,7 +82,7 @@ namespace RhythmHeavenMania.Editor.Track
if (create == true)
{
tempoChange.transform.position = new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, tempoChange.transform.position.y);
tempoChange.transform.position = new Vector3(Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, tempoChange.transform.position.y);
tempoChange.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(tempoChange.transform.localPosition.x, 0.25f), tempoChange.transform.localPosition.y);
Beatmap.TempoChange tempoC = new Beatmap.TempoChange();

View file

@ -35,7 +35,7 @@ namespace RhythmHeavenMania.Editor.Track
{
if (Timeline.instance.timelineState.tempoChange && !Conductor.instance.NotStopped())
{
if (RectTransformUtility.RectangleContainsScreenPoint(raycastRect, Input.mousePosition, Camera.main))
if (RectTransformUtility.RectangleContainsScreenPoint(raycastRect, Input.mousePosition, Editor.instance.EditorCamera))
{
float newTempo = Input.mouseScrollDelta.y;
@ -48,7 +48,7 @@ namespace RhythmHeavenMania.Editor.Track
if (Input.GetMouseButtonDown(0))
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
startPosX = mousePos.x - transform.position.x;
moving = true;
lastPosX = transform.localPosition.x;
@ -68,7 +68,7 @@ namespace RhythmHeavenMania.Editor.Track
if (moving)
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
transform.position = new Vector3(mousePos.x - startPosX, transform.position.y, 0);
transform.localPosition = new Vector3(Mathf.Clamp(Starpelly.Mathp.Round2Nearest(transform.localPosition.x, 0.25f), 0, Mathf.Infinity), transform.localPosition.y);

View file

@ -409,12 +409,12 @@ namespace RhythmHeavenMania.Editor.Track
public bool CheckIfMouseInTimeline()
{
return (this.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(TimelineContent.transform.parent.gameObject.GetComponent<RectTransform>(), Input.mousePosition, Camera.main));
return (this.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(TimelineContent.transform.parent.gameObject.GetComponent<RectTransform>(), Input.mousePosition, Editor.instance.EditorCamera));
}
public bool MouseInRectTransform(RectTransform rectTransform)
{
return (rectTransform.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.main));
return (rectTransform.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Editor.instance.EditorCamera));
}
#endregion
@ -461,7 +461,7 @@ namespace RhythmHeavenMania.Editor.Track
if (dragNDrop)
{
var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
var mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
g.transform.position = new Vector3(mousePos.x, mousePos.y, 0);
Selections.instance.ClickSelect(eventObj);

View file

@ -64,7 +64,7 @@ namespace RhythmHeavenMania.Editor.Track
moveTemp = new GameObject();
moveTemp.transform.SetParent(this.transform.parent);
bool visible = rectTransform.IsVisibleFrom(Camera.main);
bool visible = rectTransform.IsVisibleFrom(Editor.instance.EditorCamera);
for (int i = 0; i < this.transform.childCount; i++)
{
if (i != 4)
@ -77,12 +77,12 @@ namespace RhythmHeavenMania.Editor.Track
selected = Selections.instance.eventsSelected.Contains(this);
entity = GameManager.instance.Beatmap.entities.Find(a => a.eventObj == this);
mouseHovering = RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.main) && Timeline.instance.timelineState.selected;
mouseHovering = RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Editor.instance.EditorCamera) && Timeline.instance.timelineState.selected;
#region Optimizations
// problem with long objects but im lazy right now
bool visible = rectTransform.IsVisibleFrom(Camera.main);
bool visible = rectTransform.IsVisibleFrom(Editor.instance.EditorCamera);
if (visible != lastVisible)
{
@ -144,7 +144,7 @@ namespace RhythmHeavenMania.Editor.Track
if (Timeline.instance.eventObjs.FindAll(c => c.moving).Count > 0 && selected)
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
// lastPos_ = transform.localPosition;
@ -168,7 +168,7 @@ namespace RhythmHeavenMania.Editor.Track
Vector2 sizeDelta = rectTransform.sizeDelta;
Vector2 mousePos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos);
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Editor.instance.EditorCamera, out mousePos);
sizeDelta = new Vector2(-mousePos.x + 0.15f, sizeDelta.y);
sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, rectTransform.localPosition.x), sizeDelta.y);
@ -182,7 +182,7 @@ namespace RhythmHeavenMania.Editor.Track
Vector2 sizeDelta = rectTransform.sizeDelta;
Vector2 mousePos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos);
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Editor.instance.EditorCamera, out mousePos);
sizeDelta = new Vector2(mousePos.x + 0.15f, sizeDelta.y);
sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, Mathf.Infinity), sizeDelta.y);
@ -237,7 +237,7 @@ namespace RhythmHeavenMania.Editor.Track
for (int i = 0; i < Timeline.instance.eventObjs.Count; i++)
{
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
Timeline.instance.eventObjs[i].startPosX = mousePos.x - Timeline.instance.eventObjs[i].transform.position.x;
Timeline.instance.eventObjs[i].startPosY = mousePos.y - Timeline.instance.eventObjs[i].transform.position.y;
}