public virtual void Start() { cameraController = GetComponent<CameraController>(); commandQueue = GetComponent<CommandQueue>(); if (activeRoom == null) { // Pick first room found if none is specified activeRoom = GameObject.FindObjectOfType(typeof(Room)) as Room; } if (activeRoom != null) { MoveToRoom(activeRoom); } }
public void MoveToRoom(Room room) { if (room == null) { Debug.LogError("Failed to move to room. Room must not be null."); return; } // Fade out screen cameraController.Fade(0f, fadeDuration / 2f, delegate { if (activeRoom != null) { activeRoom.Leave(); } activeRoom = room; activeRoom.Enter(); // Fade in screen cameraController.Fade(1f, fadeDuration / 2f, null); }); }
// Changes the active room to a different room public void MoveToRoom(Room room) { commandQueue.AddCommand(new MoveToRoomCommand(room)); }
void DrawLinkToRoom(Room room) { if (!room) { Gizmos.color = Color.red; Gizmos.DrawWireCube(transform.position, renderer.bounds.size * 1.1f); return; } if (!Game.GetInstance().showLinks) { return; } Gizmos.color = Color.green; Vector3 posA = transform.position; Vector3 posB = room.transform.position; Ray toA = new Ray(posB, posA - posB); Ray toB = new Ray(posA, posB - posA); float tA = 0; if (renderer) { if (renderer.bounds.IntersectRay(toA, out tA)) { posA = toA.GetPoint(tA * 0.95f); } } float tB = 0; if (room.gameObject.renderer) { if (room.gameObject.renderer.bounds.IntersectRay(toB, out tB)) { posB = toB.GetPoint(tB * 0.95f); } } Gizmos.DrawLine(posA, posB); float arrowHeadSize = 0.25f; Vector3 arrowPosA = posB; Vector3 arrowPosB = arrowPosA; Vector3 arrowPosC = arrowPosA; arrowPosB.x += toB.direction.y * arrowHeadSize; arrowPosB.y -= toB.direction.x * arrowHeadSize; arrowPosB -= toB.direction * arrowHeadSize; Gizmos.DrawLine(arrowPosA, arrowPosB); arrowPosC.x -= toB.direction.y * arrowHeadSize; arrowPosC.y += toB.direction.x * arrowHeadSize; arrowPosC -= toB.direction * arrowHeadSize; Gizmos.DrawLine(arrowPosA, arrowPosC); }
public MoveToRoomCommand(Room _room) { if (_room == null) { Debug.LogError("Room must not be null."); return; } room = _room; }