void CalcPanExtents(SubLevelObject SubLevel) { float vertExtent = Camera.main.camera.orthographicSize; float horzExtent = vertExtent * Screen.width / Screen.height; Bounds mapExtents = SubLevel.GetBounds(); print(mapExtents); // Calculations assume map is position at the origin m_MaxPan.xMin = mapExtents.min.x + horzExtent; m_MaxPan.xMax = mapExtents.max.x - horzExtent; m_MaxPan.yMin = mapExtents.min.y + vertExtent; m_MaxPan.yMax = mapExtents.max.y - vertExtent; }
// Update is called once per frame void Update() { Bounds curSubBounds = m_CurrentSubLevel.GetBounds(); if (!curSubBounds.Contains(m_Player.transform.position)) { SubLevelObject newSubLevel = FindSubLevel(m_Player.transform.position); m_CurrentSubLevel = newSubLevel; if (OnSubLevelChange != null) { OnSubLevelChange(m_CurrentSubLevel); } } }
SubLevelObject FindSubLevel(Vector3 Position) { SubLevelObject ret = null; foreach (var obj in GetComponentsInChildren <SubLevelObject>()) { if (obj.GetBounds().Contains(Position)) { ret = obj; break; } } return(ret); }
void SubLevelChange(SubLevelObject newSubLevel) { CalcPanExtents(newSubLevel); }
// Use this for initialization void Start() { m_Player = GameObject.Find("Link").GetComponent <Link>(); m_CurrentSubLevel = DefaultSubLevel; }