Minimizing Camera.main references

This commit is contained in:
Jenny Crowe 2022-02-03 01:25:27 -07:00
parent ef3b287beb
commit 6ade4c7dcf
6 changed files with 32 additions and 18 deletions

View file

@ -7,10 +7,17 @@ namespace RhythmHeavenMania.Common
public class FollowMouse : MonoBehaviour public class FollowMouse : MonoBehaviour
{ {
public Vector2 offset; public Vector2 offset;
public Camera cam;
private void Awake()
{
if (cam == null)
cam = Camera.main;
}
private void Update() 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); 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; private Vector3 lastCamPos;
public float textureUnitSizeX; public float textureUnitSizeX;
public Camera cam;
public bool sprite = true; public bool sprite = true;
private void Awake()
{
if (cam == null)
cam = Camera.main;
}
private void Start() private void Start()
{ {
camTransform = Camera.main.transform; camTransform = cam.transform;
lastCamPos = camTransform.position; lastCamPos = camTransform.position;
/*if (sprite) /*if (sprite)
{ {

View file

@ -34,7 +34,7 @@ namespace RhythmHeavenMania.Editor.Track
if (Timeline.instance.timelineState.tempoChange && !Conductor.instance.NotStopped()) 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)) 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; float increase = Input.mouseScrollDelta.y;
if (Input.GetKey(KeyCode.LeftControl)) if (Input.GetKey(KeyCode.LeftControl))
@ -82,7 +82,7 @@ namespace RhythmHeavenMania.Editor.Track
if (create == true) 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); tempoChange.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(tempoChange.transform.localPosition.x, 0.25f), tempoChange.transform.localPosition.y);
Beatmap.TempoChange tempoC = new Beatmap.TempoChange(); 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 (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; float newTempo = Input.mouseScrollDelta.y;
@ -48,7 +48,7 @@ namespace RhythmHeavenMania.Editor.Track
if (Input.GetMouseButtonDown(0)) 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; startPosX = mousePos.x - transform.position.x;
moving = true; moving = true;
lastPosX = transform.localPosition.x; lastPosX = transform.localPosition.x;
@ -68,7 +68,7 @@ namespace RhythmHeavenMania.Editor.Track
if (moving) 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.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); 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() 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) 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 #endregion
@ -461,7 +461,7 @@ namespace RhythmHeavenMania.Editor.Track
if (dragNDrop) 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); g.transform.position = new Vector3(mousePos.x, mousePos.y, 0);
Selections.instance.ClickSelect(eventObj); Selections.instance.ClickSelect(eventObj);

View file

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