/// <summary> /// Builds a Billboard object /// </summary> public void Show() { if (mBillboard == null) { StyledQuad cardBackground = new StyledQuad ( "Quad", GameFacade.Instance.RetrieveMediator <FashionGameGui>().GetNamedStyle(StyleName) ); FashionCameraMediator cameraMediator = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>(); Billboard billboard = new Billboard(); billboard.BillboardGameObject.layer = FashionMinigame.CLOTHING_LAYER; Material billboardMat = new Material(Shader.Find("GUI/Flat Color")); billboardMat.mainTexture = this.NormalTexture; billboard.SetMaterial(billboardMat); billboard.BillboardToCamera(cameraMediator.Camera); // Hard coded values: a bunch of them cardBackground.Size = new Vector2(4.0f, 4.0f); cardBackground.Transform.parent = billboard.Transform; cardBackground.Transform.localPosition = new Vector3(-1.1f, 1.1f, -0.05f); cardBackground.Transform.localScale = new Vector3(BILLBOARD_ASPECT_RATIO, 1.0f, 1.0f) * 0.55f; cardBackground.Transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f); mBillboard = new Pair <Billboard, StyledQuad>(billboard, cardBackground); SetBillboardSize(BILLBOARD_SIZE); } }
private void SetupCamera(XmlNode cameraXmlNode) { if (cameraXmlNode == null) { throw new ArgumentNullException("cameraXmlNode"); } FashionCameraMediator cam = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>(); Vector3 position = SerializationUtility.ToVector3(cameraXmlNode.SelectSingleNode("Position/@vector3").InnerText); Vector3 rotation = SerializationUtility.ToVector3(cameraXmlNode.SelectSingleNode("Rotation/@vector3").InnerText); float fov = float.Parse(cameraXmlNode.SelectSingleNode("FOV/@float").InnerText); cam.SetupCamera(position, Quaternion.Euler(rotation), fov); }
private void HandleExperienceGain(ExperienceInfo experience) { uint points = 0; string description = ""; switch (experience.Type) { case ExperienceType.PerfectLevel: points = GameFacade.Instance.RetrieveMediator <FashionLevel>().PerfectCompleteBonus; description = FashionGameTranslation.PERFECT_LEVEL; break; default: ExperienceData experienceForType = mExperiencePerType[experience.Type]; if (experience.MultipleEvent != null) { points = ((uint)experience.MultipleEvent) * experienceForType.ExperienceAmount; } else { points = experienceForType.ExperienceAmount; } description = experienceForType.Description; break; } Vector3 windowPosition; if (experience.Position != null) { windowPosition = (Vector3)experience.Position; } else { FashionCameraMediator fashionCamera = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>(); windowPosition = fashionCamera.Camera.ViewportPointToRay(Vector3.one * 0.5f).GetPoint(1.0f); } EarnedXP(points); // TODO: Hard coded value GameFacade.Instance.RetrieveMediator <FashionGameGui>().SpawnFloatingWindow(windowPosition, points, description, new Color(0.69f, 0.79f, 0.36f)); }
private void MousePosition(Vector3 position) { mMousePosition = position; FashionCameraMediator fashionCam = GameFacade.Instance.RetrieveMediator <FashionCameraMediator>(); Ray mouseThruScreenRay = fashionCam.Camera.ScreenPointToRay(position); // Update the clothing icon's world position mSelection.UpdateClothingPosition(mouseThruScreenRay.GetPoint(fashionCam.Camera.nearClipPlane * 1.1f)); // Do Mouseovers RaycastHit rh; if (GameFacade.Instance.HasMediator <FashionLevel>() && Physics.Raycast(mouseThruScreenRay, out rh, Mathf.Infinity, 1 << FashionMinigame.STATION_LAYER)) { FashionGameStation station = GameFacade.Instance.RetrieveMediator <FashionLevel>().GetStationFromGameObject(rh.collider.gameObject); if (station != null) { station.MouseIsOver(); } } }