public override void OnValidateEditor() { base.OnValidateEditor(); if (Application.isPlaying == true) return; if (this.canvasUpdater == null || this.GetComponents<CanvasUpdater>().Length > 1) { if (this.GetComponent<CanvasUpdater>() != null) Component.DestroyImmediate(this.GetComponent<CanvasUpdater>()); this.canvasUpdater = this.GetComponent<CanvasUpdater>(); if (this.canvasUpdater == null) this.canvasUpdater = this.gameObject.AddComponent<CanvasUpdater>(); if (this.canvasUpdater != null) this.canvasUpdater.OnValidate(); } if (this.canvasScaler == null || this.GetComponents<CanvasScaler>().Length > 1) { if (this.GetComponent<CanvasScaler>() != null) Component.DestroyImmediate(this.GetComponent<CanvasScaler>()); this.canvasScaler = this.GetComponent<CanvasScaler>(); if (this.canvasScaler == null) this.canvasScaler = this.gameObject.AddComponent<CanvasScaler>(); } var rectTransform = (this.transform as RectTransform); rectTransform.anchorMin = Vector2.zero; rectTransform.anchorMax = Vector2.one; rectTransform.pivot = Vector2.one * 0.5f; rectTransform.localScale = Vector3.one; rectTransform.localRotation = Quaternion.identity; rectTransform.anchoredPosition3D = Vector3.zero; }
public void OnValidate() { if (Application.isPlaying == true) return; this.canvas = this.GetComponent<Canvas>(); this.canvasScaler = this.GetComponent<CanvasScaler>(); }
public virtual void OnValidate() { //this.elements = this.GetComponentsInChildren<WindowLayoutElement>(true).ToList(); if (this.canvasScaler == null || this.GetComponents<CanvasScaler>().Length > 1) { if (this.GetComponent<CanvasScaler>() != null) Component.DestroyImmediate(this.GetComponent<CanvasScaler>()); this.canvasScaler = this.GetComponent<CanvasScaler>(); if (this.canvasScaler == null) this.canvasScaler = this.gameObject.AddComponent<CanvasScaler>(); } }
public static void ForceUpdate(Canvas canvas, CanvasScaler canvasScaler) { if (canvas == null) return; var _factor = canvas.scaleFactor; canvas.scaleFactor = _factor - 0.01f; canvas.scaleFactor = _factor; if (canvasScaler != null) { _factor = canvasScaler.scaleFactor; canvasScaler.scaleFactor = _factor - 0.01f; canvasScaler.scaleFactor = _factor; } }
public static void ForceUpdate(Canvas canvas, CanvasScaler canvasScaler) { if (canvas == null) return; if (Application.isPlaying == false) return; var _factor = canvas.scaleFactor; canvas.scaleFactor = _factor - 0.01f; canvas.scaleFactor = _factor; if (canvasScaler != null) { _factor = canvasScaler.scaleFactor; canvasScaler.scaleFactor = _factor - 0.01f; canvasScaler.scaleFactor = _factor; } }
public static void ForceUpdate(Canvas canvas, CanvasScaler canvasScaler = null) { if (canvas == null) return; if (Application.isPlaying == false) return; const float delta = 0.05f; var _factor = canvas.scaleFactor; canvas.scaleFactor = _factor - delta; canvas.scaleFactor = _factor; if (canvasScaler != null) { _factor = canvasScaler.scaleFactor; canvasScaler.scaleFactor = _factor - delta; canvasScaler.scaleFactor = _factor; } }
public static void AlignSceneSprites() { GameObject canvas = GameObject.Find("Canvas"); Transform canvasTransform = canvas.transform; CanvasScaler scaler = canvas.GetComponent <CanvasScaler>(); Vector2 referenceResolution = scaler.referenceResolution; Image[] images = canvasTransform.GetComponentsInChildren <Image>(); foreach (Image img in images) { Sprite sprite = img.sprite; if (sprite != null) { Rect spriteRect = sprite.rect; Vector2 position = spriteRect.center; Vector2 offset = referenceResolution / 2; img.transform.localPosition = position - offset; } } }
protected void UpdateContent() { //Logger.LogInfo("---on UpdateContent"); m_tipObj.SetActive(!string.IsNullOrEmpty(m_currentItem.content)); m_tipText.text = m_currentItem.content; //convert 1476 * 720f => 1280 * 720 Vector2 tar_pos = m_currentItem.contentPos; tar_pos.x *= scaler_x; Vector2 realRes = UIManager.realViewResolution; CanvasScaler scaler = UIManager.canvasScaler; float scale = 1f; float diff = 0; if (UIManager.aspect != UIManager.refAspect && scaler != null) { if (UIManager.aspect < UIManager.refAspect) { //scale y scale = realRes.x / scaler.referenceResolution.x; diff = realRes.y - scaler.referenceResolution.x * scale; tar_pos.y *= diff / scaler.referenceResolution.y + 1; } else { scale = realRes.y / scaler.referenceResolution.y; diff = realRes.x - scaler.referenceResolution.x * scale; tar_pos.x *= diff / scaler.referenceResolution.x + 1; } } if (m_tipObj.activeSelf) { m_tipObj.rectTransform().anchoredPosition = tar_pos; } }
void Start() { scaler = transform.root.GetComponent <CanvasScaler>(); scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; float developmentRatio = (float)scaler.referenceResolution.x / (float)scaler.referenceResolution.y; float screenRatio = (float)Screen.width / (float)Screen.height; float def = screenRatio / developmentRatio; if (def > 1) { scaler.matchWidthOrHeight = 1; RectTransform bg = GetComponent <RectTransform>(); Vector2 size = bg.sizeDelta; bg.sizeDelta = new Vector2(size.x * def, size.y * def); } else { scaler.matchWidthOrHeight = 0; RectTransform bg = GetComponent <RectTransform>(); Vector2 size = bg.sizeDelta; bg.sizeDelta = new Vector2(size.x / def, size.y / def); } }
private void CreateUnityUI(Texture2D map, int minimapResolution) { GameObject obj2 = new GameObject("Canvas"); obj2.AddComponent <RectTransform>(); this.canvas = obj2.AddComponent <Canvas>(); this.canvas.renderMode = RenderMode.ScreenSpaceOverlay; this.scaler = obj2.AddComponent <CanvasScaler>(); this.scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; this.scaler.referenceResolution = new Vector2(900f, 600f); this.scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; GameObject obj3 = new GameObject("CircleMask"); obj3.transform.SetParent(obj2.transform, false); this.minimapMaskT = obj3.AddComponent <RectTransform>(); obj3.AddComponent <CanvasRenderer>(); this.minimapMaskT.anchorMin = this.minimapMaskT.anchorMax = Vector2.one; float num = this.MINIMAP_CORNER_SIZE * 0.5f; this.cornerPosition = new Vector2(-(num + 5f), -(num + 70f)); this.minimapMaskT.anchoredPosition = this.cornerPosition; this.minimapMaskT.sizeDelta = new Vector2(this.MINIMAP_CORNER_SIZE, this.MINIMAP_CORNER_SIZE); GameObject obj4 = new GameObject("Minimap"); obj4.transform.SetParent(this.minimapMaskT, false); this.minimap = obj4.AddComponent <RectTransform>(); obj4.AddComponent <CanvasRenderer>(); this.minimap.anchorMin = this.minimap.anchorMax = new Vector2(0.5f, 0.5f); this.minimap.anchoredPosition = Vector2.zero; this.minimap.sizeDelta = this.minimapMaskT.sizeDelta; Image image = obj4.AddComponent <Image>(); Rect rect = new Rect(0f, 0f, (float)map.width, (float)map.height); image.sprite = UnityEngine.Sprite.Create(map, rect, new Vector3(0.5f, 0.5f)); image.type = Image.Type.Simple; }
void Start() { device_width = Screen.width; device_height = Screen.height; float standard_aspect = standard_width / standard_height; float device_aspect = device_width / device_height; if (device_width < standard_aspect) { adjustor = standard_aspect / device_aspect; } CanvasScaler canvasScalerTemp = transform.GetComponent <CanvasScaler>(); if (adjustor == 0) { canvasScalerTemp.matchWidthOrHeight = 1; } else { canvasScalerTemp.matchWidthOrHeight = 0; } }
private static GameObject createCanvas() { GameObject g = new GameObject("Canvas"); Canvas canvas = g.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; CanvasScaler cs = g.AddComponent <CanvasScaler>(); cs.scaleFactor = 1f; cs.dynamicPixelsPerUnit = 100f; Undo.AddComponent <GraphicRaycaster>(g); g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 3.0f); g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 3.0f); g.layer = 5; if (!GameObject.Find("EventSystem")) { GameObject eventSystem = new GameObject("EventSystem"); Undo.AddComponent <EventSystem>(eventSystem); Undo.AddComponent <StandaloneInputModule>(eventSystem); } return(g); }
// テクスチャをCanvasに表示 public void DisplayTex(Texture2D tex) { float shorter; CanvasScaler cs = this.canvas.GetComponent <CanvasScaler>(); if (tex.width <= tex.height) { shorter = tex.width; cs.matchWidthOrHeight = 1.0f; } else { shorter = tex.height; cs.matchWidthOrHeight = 1.0f; } //cs.referenceResolution = new Vector2(tex.width,tex.height); this.rawImg.GetComponent <RawImage>().texture = tex; RectTransform rect = this.rawImg.GetComponent <RectTransform>(); rect.sizeDelta = new Vector2(tex.width, tex.height); DisplayControll(shorter); }
private void InitBgCanvas() { // 地图的屏幕适配规则与ui不同,地图需要全屏拉伸不留黑边,ui需要保证所有元素都在屏幕内部不会被裁减 _rootBg = GameObject.Find("CanvasBg"); if (_rootBg != null) { return; } _rootBg = new GameObject("CanvasBg"); Canvas canvas = _rootBg.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = 0; CanvasScaler scaler = _rootBg.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = new Vector2(GameConfig.SCREEN_WIDTH, GameConfig.SCREEN_HEIGHT); scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.Shrink; scaler.referencePixelsPerUnit = 100; _rootBg.AddComponent <GraphicRaycaster>(); }
private static void CreateCanvas() { #region CreateCanvas GameObject go; go = new GameObject("Canvas"); go.AddComponent <RectTransform>(); Canvas canvas = go.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = Camera.main; CanvasScaler canvasScaler = go.AddComponent <CanvasScaler>(); canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; canvasScaler.referenceResolution = new Vector2(1920f, 1080f); go.AddComponent <GraphicRaycaster>(); #endregion #region Create EventSystem go = new GameObject("EventSystem"); go.AddComponent <EventSystem>(); go.AddComponent <StandaloneInputModule>(); #endregion }
void ChgReferenceResolution() { float fFlag = 16 / (float)9; float fCurr = Screen.width / (float)Screen.height; float fy = 0; if (fCurr >= fFlag) { fy = 720; } else { fy = 960; } CanvasScaler canvasScalerTemp = transform.GetComponent <CanvasScaler>(); Vector2 vDest = Vector2.zero; vDest.x = canvasScalerTemp.referenceResolution.x; vDest.y = fy; canvasScalerTemp.referenceResolution = vDest; FrameworkMain.RealScreenSize = vDest; }
protected override void OnAwake() { base.OnAwake(); _Canvas = gameObject.AddComponent <Canvas>(); _Canvas.sortingOrder = 100; _Canvas.renderMode = RenderMode.ScreenSpaceOverlay; _Scaler = gameObject.AddComponent <CanvasScaler>(); _Scaler.dynamicPixelsPerUnit = 100; _TextureClear = new Texture2D(1, 1, TextureFormat.ARGB32, false); _TextureClear.SetPixel(0, 0, Color.black); // I haven't found this black dot yet lol _Image = new GameObject().AddComponent <RawImage>(); _Image.transform.SetParent(_Canvas.transform, false); _Image.GetComponent <RectTransform>().anchoredPosition = new Vector2(0f, Screen.height); _Image.texture = _TextureClear; var rectTransform = _Image.GetComponent <RectTransform>(); rectTransform.anchorMin = Vector2.zero; rectTransform.anchorMax = Vector2.zero; rectTransform.pivot = new Vector2(0, 1); rectTransform.sizeDelta = new Vector2(1, 1); gameObject.layer = LayerMask.NameToLayer(VR.Context.UILayer); }
// Use this for initialization void Start() { GameObject gameObject = GameObject.Find("UI Root"); if (gameObject == null) { Debug.LogError("DymicPixelManager --- UI Root is null !"); return; } CanvasScaler canvasScaler = gameObject.GetComponent <CanvasScaler> (); if (canvasScaler == null) { Debug.LogError("DymicPixelManager --- CanvasScaler is null !"); return; } if (Application.platform == RuntimePlatform.Android) { AndroidJavaClass androidClass = new AndroidJavaClass("android.os.Build"); string productName = androidClass.GetStatic <string> ("PRODUCT"); Debug.Log("DymicPixelManager --- Product name is " + productName); if (string.IsNullOrEmpty(productName)) { return; } if (productName.Equals("A7910")) { //4K canvasScaler.dynamicPixelsPerUnit = 0.72f; } else { canvasScaler.dynamicPixelsPerUnit = 1.0f; } } }
private static void AddCText() { UnityEngine.GameObject select = new GameObject("CText"); select.AddComponent <CText>(); UnityEngine.GameObject parent = Selection.activeGameObject; if (!parent) { parent = new GameObject("Canvas"); } select.transform.SetParent(parent.transform); Canvas canvas = parent.transform.root.GetComponentInParent <Canvas>(); if (!canvas) { canvas = parent.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceCamera; CanvasScaler canvasScaler = parent.AddComponent <CanvasScaler>(); canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; canvasScaler.referenceResolution = new Vector2(1280, 720); canvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand; parent.AddComponent <GraphicRaycaster>(); } }
/// <summary> /// Record the time has passed. /// </summary> public void LateUpdate(float dt) { if (mTimer != null) { if (mNumFrameNeedResize > 0) { if (mGameObject != null && mText.transform.parent != null) { CanvasScaler canvasScaler = MyUGUIManager.Instance.CanvasOnTop.GetComponent <CanvasScaler>(); RectTransform rectTransform = mText.transform.parent.GetComponent <RectTransform>(); if (canvasScaler != null && rectTransform != null) { if (rectTransform.sizeDelta.x > 0) { float limitWidth = canvasScaler.referenceResolution.x * 0.95f; if (rectTransform.sizeDelta.x > limitWidth) { LayoutElement layoutElement = mText.transform.parent.GetComponent <LayoutElement>(); if (layoutElement != null) { layoutElement.preferredWidth = limitWidth; } } } } } mNumFrameNeedResize--; } mTimer.Update(dt); if (mTimer.IsJustDone()) { Hide(); } } }
private void Awake() { m_camera = GetComponent <Camera>(); if (!m_fullscreen) { m_camera.rect = new Rect(0, 0, 1, 1); } GameObject outputGo = new GameObject(m_camera.name + " Output"); outputGo.SetActive(false); m_output = outputGo.AddComponent <RawImage>(); m_output.raycastTarget = false; if (m_overlayMaterial != null) { m_output.material = m_overlayMaterial; } RectTransform rt = outputGo.GetComponent <RectTransform>(); rt.SetParent(m_outputRoot, false); rt.anchorMin = new Vector2(0, 0); rt.anchorMax = new Vector2(1, 1); rt.offsetMin = Vector2.zero; rt.offsetMax = Vector2.zero; rt.pivot = Vector2.zero; m_canvas = m_outputRoot.GetComponentInParent <Canvas>(); m_canvasScaler = m_outputRoot.GetComponentInParent <CanvasScaler>(); ResizeRenderTexture(); ResizeOutput(); outputGo.SetActive(true); }
/// <summary> /// Creates an Canvas and a EventLister configured as the default canvas. /// </summary> private static void CreateCanvas() { // Creates a GameObject called "Canvas" GameObject canvasGO = new GameObject("Canvas"); // Sets Canvas GameObject layer to UI (index 5) canvasGO.layer = 5; // Adds RectTransform component to Canvas GameObject canvasGO.AddComponent <RectTransform>(); // Adds Canvas component to Canvas GameObject and save a reference of the component Canvas canvas = canvasGO.AddComponent <Canvas>(); // Sets the Canvas component render mode property to ScreenSpaceOverlay canvas.renderMode = RenderMode.ScreenSpaceOverlay; // Adds CanvasScaler component to Canvas GameObject and save a reference of the component CanvasScaler canvasScaler = canvasGO.AddComponent <CanvasScaler>(); // Sets uiScaleMode property of CanvasScaler component to ScaleWithScreenSize canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; // Adds GraphicRaycaster component to Canvas GameObject canvasGO.AddComponent <GraphicRaycaster>(); // Creates a GameObject called "EventSystem" GameObject eventSystemGO = new GameObject("EventSystem"); // Adds EventSystem component to EventSystem GameObject eventSystemGO.AddComponent <EventSystem>(); // Adds StandaloneInputModule component to EventSystem GameObject eventSystemGO.AddComponent <StandaloneInputModule>(); // Registers in the Undo system the creation of Canvas and EventSystem GameObjects // NOTE1: Registered Undo operations are grouped by click events. Undo.RegisterCreatedObjectUndo(canvasGO, "Create Hologram Visualizer"); Undo.RegisterCreatedObjectUndo(eventSystemGO, "Create Hologram Visualizer"); }
private void Update_EDITOR() { #region COMPONENTS var canvases = this.GetComponentsInChildren <Canvas>(true); if (canvases != null && canvases.Length > 0) { this.canvas = canvases[0]; } var scalers = this.GetComponentsInChildren <CanvasScaler>(true); if (scalers != null && scalers.Length > 0) { this.canvasScaler = scalers[0]; } var raycasters = this.GetComponentsInChildren <UnityEngine.EventSystems.BaseRaycaster>(true); if (raycasters != null && raycasters.Length > 0) { this.raycaster = raycasters[0]; } #endregion this.initializedChild = (this.canvas != null); #region SETUP if (this.initializedChild == true) { // Canvas WindowSystem.ApplyToSettings(this.canvas); // Raycaster if ((this.raycaster as GraphicRaycaster) != null) { (this.raycaster as GraphicRaycaster).GetType().GetField("m_BlockingMask", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue((this.raycaster as GraphicRaycaster), (LayerMask)(1 << this.gameObject.layer)); } } #endregion }
// Use this for initialization void Start() { //Canvas Initialization gObj = new GameObject(); gObj.name = "SelectionCanvas"; Canvas canvas = gObj.AddComponent <Canvas> (); canvas.renderMode = RenderMode.ScreenSpaceOverlay; CanvasScaler cs = gObj.AddComponent <CanvasScaler> (); cs.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; GraphicRaycaster gRay = gObj.AddComponent <GraphicRaycaster> (); //Button stored by position spot1 = 0; spot2 = 1; //Initialize Buttons initButtons(); mainObject = GameObject.Find("MainObject"); cManager = RRConnectionManager.getInstance(); // NetworkRequestTable.init(); // NetworkResponseTable.init(); RRMessageQueue.getInstance().AddCallback(Constants.SMSG_RRSTARTGAME, ResponseRRStartGame); RRMessageQueue.getInstance().AddCallback(Constants.SMSG_RRGETMAP, ResponseRRGetMap); RequestRRGetMap reqmap = new RequestRRGetMap(); reqmap.Send(); cManager.Send(reqmap); }
// Use this for initialization void Start() { Screen.orientation = ScreenOrientation.Landscape; //user guide guide = GameObject.Find("Guide"); //zoom and pan isTouching = false; imageTransform = GameObject.Find("DenahModel").GetComponent <RectTransform> (); //initialize for object creation only currentScale = new Vector2(imageTransform.localScale.x, imageTransform.localScale.y); currentPosition = new Vector2(0, 0); //default position limit //RectTransform ImagePanel = imageTransform.parent.GetComponent<RectTransform> (); defaultlimitX = imageTransform.offsetMax.x; defaultlimitY = imageTransform.offsetMax.y; canvasScaler = this.GetComponent <CanvasScaler> (); ScreenScale = new Vector2(canvasScaler.referenceResolution.x / Screen.width, canvasScaler.referenceResolution.y / Screen.height); }
// Create Canvas public static Canvas AddCanvas(GameObject gameObject) { GameObject go = new GameObject("Canvas"); var canvas = go.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = Camera.main; CanvasScaler scaler = go.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = new Vector2(1280, 720); go.AddComponent <GraphicRaycaster>(); if (gameObject) { go.transform.SetParent(gameObject.transform); } UGUITools.ResetGameObject(go); CreateEventSystem(); return(canvas); }
private void CreateUnityUI(Texture2D map, int minimapResolution) { GameObject gameObject = new GameObject("Canvas"); gameObject.AddComponent <RectTransform>(); canvas = gameObject.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; scaler = gameObject.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = new Vector2(900f, 600f); scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; GameObject gameObject2 = new GameObject("CircleMask"); gameObject2.transform.SetParent(gameObject.transform, worldPositionStays: false); minimapMaskT = gameObject2.AddComponent <RectTransform>(); gameObject2.AddComponent <CanvasRenderer>(); Vector2 vector2 = minimapMaskT.anchorMin = (minimapMaskT.anchorMax = Vector2.one); float num = MINIMAP_CORNER_SIZE * 0.5f; cornerPosition = new Vector2(0f - (num + 5f), 0f - (num + 70f)); minimapMaskT.anchoredPosition = cornerPosition; minimapMaskT.sizeDelta = new Vector2(MINIMAP_CORNER_SIZE, MINIMAP_CORNER_SIZE); GameObject gameObject3 = new GameObject("Minimap"); gameObject3.transform.SetParent(minimapMaskT, worldPositionStays: false); minimap = gameObject3.AddComponent <RectTransform>(); gameObject3.AddComponent <CanvasRenderer>(); vector2 = (minimap.anchorMin = (minimap.anchorMax = new Vector2(0.5f, 0.5f))); minimap.anchoredPosition = Vector2.zero; minimap.sizeDelta = minimapMaskT.sizeDelta; Image image = gameObject3.AddComponent <Image>(); Rect rect = new Rect(0f, 0f, map.width, map.height); image.sprite = UnityEngine.Sprite.Create(map, rect, new Vector3(0.5f, 0.5f)); image.type = Image.Type.Simple; }
// Use this for initialization public void Init(LiveController b, float _frameAspect) { liveController = b; InfoDialogText.text = ""; InfoDialog.SetActive(false); EventTriggerListener.Get(infoDialogClose.gameObject).onClick = OnCloseInfoDialog; mainPanel.Init(liveController, this); CanvasScaler canvasScaler = GetComponent <CanvasScaler>(); float screenWidth = canvasScaler.referenceResolution.x; livePreview.Init(liveController, screenWidth, _frameAspect); spectatorViewSelectPanel.Init(b, this); spectatorViewHololensPanel.Init(b, this); hololensStatusPanel.Init(b); spectatorViewHololensPanel.gameObject.SetActive(false); spectatorViewSelectPanel.gameObject.SetActive(true); hololensStatusPanel.gameObject.SetActive(false); }
// Use this for initialization void Start() { canvScaler = GetComponent <CanvasScaler> (); if (canvScaler.screenMatchMode == CanvasScaler.ScreenMatchMode.MatchWidthOrHeight) { if (SceneManager.GetActiveScene().name == "ShopScene") { #if UNITY_STANDALONE canvScaler.referenceResolution = new Vector2(1920, 1080); #else canvScaler.referenceResolution = new Vector2(1920, 1080); #endif } if (SceneManager.GetActiveScene().name == "GameScene") { #if UNITY_STANDALONE canvScaler.referenceResolution = new Vector2(1920, 1080) * 0.5f; #else canvScaler.referenceResolution = new Vector2(1920, 1080) * 0.5f; #endif } } }
static void StartCreate() { //PrefabUtility.CreateEmptyPrefab("Assets/MinistryPlugin/MinistryObject.prefab"); var createSplashScreen = new GameObject(); createSplashScreen.name = "MinistrySplashScreen"; createSplashScreen.AddComponent <MinistrySplashScreen>(); //name = createCanvas #region Create Splash Canvas var createCanvas = new GameObject(); createCanvas.name = "SplashScreenCanvas"; createCanvas.transform.SetParent(createSplashScreen.transform); createCanvas.layer = 5; //adding canvas related components Canvas canvas = createCanvas.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; CanvasScaler cs = createCanvas.AddComponent <CanvasScaler>(); cs.scaleFactor = 10.0f; cs.dynamicPixelsPerUnit = 10f; //GraphicRaycaster gr = createCanvas.AddComponent<GraphicRaycaster>(); createCanvas.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 3.0f); createCanvas.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 3.0f); //change to scale with screen size cs.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; cs.referenceResolution = new Vector2(1080, 1920); #endregion #region Create Event System //create EventSystem if (GameObject.FindObjectOfType <EventSystem>() == null) { var createEventSystem = new GameObject(); createEventSystem.AddComponent <EventSystem>(); createEventSystem.AddComponent <StandaloneInputModule>(); createEventSystem.name = "Event System"; } else { Debug.LogWarning("Event System already exist!"); } #endregion #region Create Image Child to Splash Canvas for (int i = 0; i < 2; i++) { var createImage = new GameObject(); int num = i + 1; createImage.name = "SplashScreen" + num; createImage.AddComponent <Image>(); createImage.transform.SetParent(createCanvas.transform); createImage.GetComponent <RectTransform>().anchoredPosition = Vector2.zero; createImage.GetComponent <RectTransform>().sizeDelta = new Vector2(1080, 1920); } #endregion }
private void Setup() { // Canvas & Camera Canvas canvas = FindObjectOfType <Canvas>(); if (canvas.renderMode == RenderMode.ScreenSpaceCamera) { canvas.planeDistance = (canvas.GetComponent <RectTransform>().rect.height / 2f) / Mathf.Tan((canvas.worldCamera.fieldOfView / 2f) * Mathf.Deg2Rad); if (canvas.worldCamera.farClipPlane < canvas.planeDistance) { canvas.worldCamera.farClipPlane = Mathf.Ceil(canvas.planeDistance); } } // ScrollRect if (movementType == MovementType.Fixed) { ScrollRect.horizontal = (movementAxis == MovementAxis.Horizontal); ScrollRect.vertical = (movementAxis == MovementAxis.Vertical); } else { ScrollRect.horizontal = ScrollRect.vertical = true; } // Panels size = (sizeControl == SizeControl.Manual) ? size : new Vector2(GetComponent <RectTransform>().rect.width, GetComponent <RectTransform>().rect.height); panels = new GameObject[numberOfPanels]; for (int i = 0; i < numberOfPanels; i++) { panels[i] = ((RectTransform)Content.GetChild(i)).gameObject; if (movementType == MovementType.Fixed && automaticallyLayout) { panels[i].GetComponent <RectTransform>().anchorMin = new Vector2(movementAxis == MovementAxis.Horizontal ? 0f : 0.5f, movementAxis == MovementAxis.Vertical ? 0f : 0.5f);; panels[i].GetComponent <RectTransform>().anchorMax = new Vector2(movementAxis == MovementAxis.Horizontal ? 0f : 0.5f, movementAxis == MovementAxis.Vertical ? 0f : 0.5f);; float x = (rightMargin + leftMargin) / 2f - leftMargin; float y = (topMargin + bottomMargin) / 2f - bottomMargin; Vector2 marginOffset = new Vector2(x / size.x, y / size.y); panels[i].GetComponent <RectTransform>().pivot = new Vector2(0.5f, 0.5f) + marginOffset; panels[i].GetComponent <RectTransform>().sizeDelta = size - new Vector2(leftMargin + rightMargin, topMargin + bottomMargin); float panelPosX = (movementAxis == MovementAxis.Horizontal) ? i * (automaticLayoutSpacing + 1f) * size.x + (size.x / 2f) : 0f; float panelPosY = (movementAxis == MovementAxis.Vertical) ? i * (automaticLayoutSpacing + 1f) * size.y + (size.y / 2f) : 0f; panels[i].GetComponent <RectTransform>().anchoredPosition = new Vector3(panelPosX, panelPosY, 0f); } } // Content if (movementType == MovementType.Fixed) { // Automatic Layout if (automaticallyLayout) { Content.anchorMin = new Vector2(movementAxis == MovementAxis.Horizontal ? 0f : 0.5f, movementAxis == MovementAxis.Vertical ? 0f : 0.5f); Content.anchorMax = new Vector2(movementAxis == MovementAxis.Horizontal ? 0f : 0.5f, movementAxis == MovementAxis.Vertical ? 0f : 0.5f); Content.pivot = new Vector2(movementAxis == MovementAxis.Horizontal ? 0f : 0.5f, movementAxis == MovementAxis.Vertical ? 0f : 0.5f); Vector2 min = panels[0].transform.position; Vector2 max = panels[numberOfPanels - 1].transform.position; float contentWidth = (movementAxis == MovementAxis.Horizontal) ? (numberOfPanels * (automaticLayoutSpacing + 1f) * size.x) - (size.x * automaticLayoutSpacing) : size.x; float contentHeight = (movementAxis == MovementAxis.Vertical) ? (numberOfPanels * (automaticLayoutSpacing + 1f) * size.y) - (size.y * automaticLayoutSpacing) : size.y; Content.sizeDelta = new Vector2(contentWidth, contentHeight); } // Infinite Scrolling if (infinitelyScroll) { ScrollRect.movementType = ScrollRect.MovementType.Unrestricted; contentSize = ((Vector2)panels[numberOfPanels - 1].transform.localPosition - (Vector2)panels[0].transform.localPosition) + (panels[numberOfPanels - 1].GetComponent <RectTransform>().sizeDelta / 2f + panels[0].GetComponent <RectTransform>().sizeDelta / 2f) + (new Vector2(movementAxis == MovementAxis.Horizontal ? infiniteScrollingEndSpacing * size.x : 0f, movementAxis == MovementAxis.Vertical ? infiniteScrollingEndSpacing * size.y : 0f)); if (movementAxis == MovementAxis.Horizontal) { contentSize += new Vector2(leftMargin + rightMargin, 0); } else { contentSize += new Vector2(0, topMargin + bottomMargin); } CanvasScaler canvasScaler = canvas.GetComponent <CanvasScaler>(); if (canvasScaler != null) { contentSize *= new Vector2(Screen.width / canvasScaler.referenceResolution.x, Screen.height / canvasScaler.referenceResolution.y); } } } // Starting Panel float xOffset = (ScrollRect.horizontal) ? Viewport.GetComponent <RectTransform>().rect.width / 2f : 0f; float yOffset = (ScrollRect.vertical) ? Viewport.GetComponent <RectTransform>().rect.height / 2f : 0f; Vector2 offset = new Vector2(xOffset, yOffset); Content.anchoredPosition = -(Vector2)panels[startingPanel].transform.localPosition + offset; currentPanel = targetPanel = nearestPanel = startingPanel; // Previous Button if (previousButton != null) { previousButton.onClick.AddListener(delegate { GoToPreviousPanel(); }); } // Next Button if (nextButton != null) { nextButton.onClick.AddListener(delegate { GoToNextPanel(); }); } // Pagination if (pagination != null) { toggles = new Toggle[numberOfToggles]; for (int i = 0; i < numberOfToggles; i++) { toggles[i] = pagination.transform.GetChild(i).GetComponent <Toggle>(); toggles[i].isOn = (i == startingPanel); toggles[i].interactable = (i != targetPanel); int panelNum = i; toggles[i].onValueChanged.AddListener(delegate { if (toggles[panelNum].isOn && toggleNavigation) { GoToPanel(panelNum); } }); } } }
public static void CreateUICamera(QFramework.UIManager UIManager, float cameraDepth, Vector2 referenceResolution, CanvasScaler.ScreenMatchMode MatchMode, bool isOnlyUICamera, bool isVertical) { GameObject UIManagerGo = UIManager.gameObject; UIManagerGo.AddComponent <RectTransform>(); var sObj = new SerializedObject(UIManager); //挂载点 GameObject goTmp = null; RectTransform rtTmp = null; goTmp = new GameObject("Bg"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mBgTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("AnimationUnder"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mAnimationUnderTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("Common"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mCommonTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("AnimationOn"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mAnimationOnTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("PopUI"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mPopUITrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("Const"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mConstTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("Toast"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mToastTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("Forward"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; sObj.FindProperty("mForwardTrans").objectReferenceValue = rtTmp.gameObject; goTmp = new GameObject("Design"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; // goTmp.AddComponent<QFramework.Hide>(); goTmp = new GameObject("EventSystem"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(UIManagerGo.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; goTmp.AddComponent <UnityEngine.EventSystems.EventSystem>(); goTmp.AddComponent <UnityEngine.EventSystems.StandaloneInputModule>(); //UIcamera GameObject cameraGo = new GameObject("UICamera"); cameraGo.transform.SetParent(UIManagerGo.transform); cameraGo.transform.localPosition = new Vector3(0, 0, -1000); Camera camera = cameraGo.AddComponent <Camera>(); camera.cullingMask = LayerMask.GetMask("UI"); camera.orthographic = true; camera.depth = cameraDepth; sObj.FindProperty("mUICamera").objectReferenceValue = camera.gameObject; //Canvas Canvas canvasComp = UIManagerGo.AddComponent <Canvas>(); canvasComp.renderMode = RenderMode.ScreenSpaceCamera; canvasComp.worldCamera = camera; canvasComp.sortingOrder = 100; sObj.FindProperty("mCanvas").objectReferenceValue = canvasComp.gameObject; //UI Raycaster sObj.FindProperty("mGraphicRaycaster").objectReferenceValue = UIManagerGo.AddComponent <GraphicRaycaster>(); //CanvasScaler CanvasScaler scaler = UIManagerGo.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = referenceResolution; scaler.screenMatchMode = MatchMode; sObj.FindProperty("mCanvasScaler").objectReferenceValue = scaler; if (!isOnlyUICamera) { camera.clearFlags = CameraClearFlags.Depth; camera.depth = cameraDepth; } else { camera.clearFlags = CameraClearFlags.SolidColor; camera.backgroundColor = Color.black; } scaler.matchWidthOrHeight = isVertical ? 1 : 0; //重新保存 ReSaveUIManager(UIManagerGo); sObj.ApplyModifiedPropertiesWithoutUndo(); }
private static void InitUGUIRoot() { GameObject go = new GameObject("UIRoot"); go.layer = LayerMask.NameToLayer("UI"); m_Instance = go.AddComponent <CustomUIRoot>(); go.AddComponent <RectTransform>(); m_Instance.mUIRoot = go.transform; Canvas can = go.AddComponent <Canvas>(); can.renderMode = RenderMode.ScreenSpaceCamera; can.pixelPerfect = true; GameObject camObj = new GameObject("UICamera"); camObj.layer = LayerMask.NameToLayer("UI"); camObj.transform.parent = go.transform; camObj.transform.localPosition = new Vector3(0, 0, -100f); Camera cam = camObj.AddComponent <Camera>(); cam.clearFlags = CameraClearFlags.Depth; cam.orthographic = true; cam.farClipPlane = 200f; can.worldCamera = cam; m_Instance.mUICamera = cam; cam.cullingMask = 1 << 5; cam.nearClipPlane = -50f; cam.farClipPlane = 50f; //add audio listener camObj.AddComponent <AudioListener>(); camObj.AddComponent <GUILayer>(); CanvasScaler cs = go.AddComponent <CanvasScaler>(); cs.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; cs.referenceResolution = new Vector2(1136f, 640f); cs.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand; GameObject subRoot = CreateSubCanvasForRoot(go.transform, 250); subRoot.name = "FixedRoot"; m_Instance.mFixedRoot = subRoot.transform; subRoot = CreateSubCanvasForRoot(go.transform, 0); subRoot.name = "NormalRoot"; m_Instance.mNormalRoot = subRoot.transform; subRoot = CreateSubCanvasForRoot(go.transform, 500); subRoot.name = "PopupRoot"; m_Instance.mPopupRoot = subRoot.transform; //add Event System GameObject esObj = GameObject.Find("EventSystem"); if (esObj != null) { GameObject.DestroyImmediate(esObj); } GameObject eventObj = new GameObject("EventSystem"); eventObj.layer = LayerMask.NameToLayer("UI"); eventObj.transform.SetParent(go.transform); eventObj.AddComponent <EventSystem>(); eventObj.AddComponent <UnityEngine.EventSystems.StandaloneInputModule>(); }
void Init() { if (settings.Mode == ICounterMode.Original) { _timeMesh = this.gameObject.AddComponent <TextMeshPro>(); _timeMesh.text = "0:00"; _timeMesh.fontSize = 4; _timeMesh.color = Color.white; _timeMesh.font = Resources.Load <TMP_FontAsset>("Teko-Medium SDF No Glow"); _timeMesh.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 1f); _timeMesh.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1f); var image = ReflectionUtil.GetPrivateField <Image>( Resources.FindObjectsOfTypeAll <ScoreMultiplierUIController>().First(), "_multiplierProgressImage"); GameObject g = new GameObject(); Canvas canvas = g.AddComponent <Canvas>(); canvas.renderMode = RenderMode.WorldSpace; CanvasScaler cs = g.AddComponent <CanvasScaler>(); cs.scaleFactor = 10.0f; cs.dynamicPixelsPerUnit = 10f; GraphicRaycaster gr = g.AddComponent <GraphicRaycaster>(); g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 1f); g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1f); GameObject g2 = new GameObject(); _image = g2.AddComponent <Image>(); g2.transform.parent = g.transform; g2.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0.5f); g2.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.5f); g2.transform.localScale = new Vector3(2.3f, 2.3f, 2.3f); _image.sprite = image.sprite; _image.type = Image.Type.Filled; _image.fillMethod = Image.FillMethod.Radial360; _image.fillOrigin = (int)Image.Origin360.Top; _image.fillClockwise = true; GameObject g3 = new GameObject(); var bg = g3.AddComponent <Image>(); g3.transform.parent = g.transform; g3.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0.5f); g3.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.5f); g3.transform.localScale = new Vector3(2.3f, 2.3f, 2.3f); bg.sprite = image.sprite; bg.CrossFadeAlpha(0.05f, 1f, false); g.GetComponent <RectTransform>().SetParent(this.transform, false); g.transform.localPosition = new Vector3(-0.25f, .25f, 0f); transform.position += new Vector3(0.5f, 0, 0); } else if (settings.Mode == ICounterMode.Percent) { _timeMesh = this.gameObject.AddComponent <TextMeshPro>(); _timeMesh.text = "0.00%"; _timeMesh.fontSize = 4; _timeMesh.color = Color.white; _timeMesh.font = Resources.Load <TMP_FontAsset>("Teko-Medium SDF No Glow"); _timeMesh.alignment = TextAlignmentOptions.Center; } }
void SpawnWindow() { if (gameMan.GetArbeauOff()) { return; } RectTransform canvasRect = GameObject.Find("Canvas").GetComponent <RectTransform>(); //then you calculate the position of the UI element //0,0 for the canvas is at the center of the screen, whereas WorldToViewPortPoint treats the lower left corner as 0,0. Because of this, you need to subtract the height / width of the canvas * 0.5 to get the correct position. //now you can set the position of the ui element //Vector2 mousePos = Input.mousePosition; //Vector2 viewportPos = camera.WorldToScreenPoint(mousePos); CanvasScaler scaler = GameObject.Find("Canvas").GetComponent <CanvasScaler>(); //TESTING //int index = (int) UnityEngine.Random.Range(0, arbeauWin.Length - 1); int index = 0; GameObject win; // Real version // win = (GameObject) Instantiate (arbeauWin[UnityEngine.Random.Range(0, (arbeauWin.Length))], new Vector2(0f, 0f), transform.rotation); // Demo version win = (GameObject)Instantiate(arbeauWin[UnityEngine.Random.Range(0, 5)], new Vector2(0f, 0f), transform.rotation); //win.SetActive(false); win.name = "Arbeau Pop-up Window"; win.transform.SetParent(GameObject.Find("Canvas").transform, false); //yield return new WaitForEndOfFrame(); currWin = win; if (XCI.GetNumPluggedCtrlrs() > 0) { print(XCI.GetNumPluggedCtrlrs()); win.transform.position = GameObject.Find("Joystick Cursor").transform.position; return; } Rect winRect = win.transform.GetChild(0).gameObject.GetComponent <RectTransform>().rect; RectTransform winRectTrans = win.transform.GetChild(0).gameObject.GetComponent <RectTransform>(); //print("Screen width: " + Screen.width); // print("Screen height: " + Screen.height); float winX = Input.mousePosition.x * scaler.referenceResolution.x / Screen.width - (scaler.referenceResolution.x / 2f); float winY = Input.mousePosition.y * scaler.referenceResolution.y / Screen.height - (scaler.referenceResolution.y / 2f); float winHeight, winWidth, left, right, top, bottom; winWidth = winRect.width; winHeight = winRect.height; //if (winHeight == 0f) winHeight = win.transform.GetChild(0).GetChild(0).gameObject.GetComponent<Text>().preferredHeight; if (winHeight == 0f) { winHeight = win.transform.GetChild(0).GetChild(0).gameObject.GetComponent <Text>().preferredHeight; } if (winHeight > 1000f) { winHeight /= 10f; } //if (winHeight == 0f) win.transform.GetChild(0).GetChild(0).gameObject.GetComponent<Text>().preferredHeight = 100f; //print("Width: " + winWidth + ", Height: " + winHeight); //print("Size Delta Height: " + winRectTrans.sizeDelta.y); if (Screen.width >= 754f) { left = (-1) * (Screen.width - (winWidth / DeriveLeftDivisor())); //* scaler.referenceResolution.x; } else { left = (-1) * (Screen.width - (winWidth / 10f)); } //used for really small screen sizes //left = (-1) * (Screen.width / 0.5f); if (Screen.width >= 754f) { right = (Screen.width - (winWidth / DeriveRightDivisor())); //* scaler.referenceResolution.x; } else { right = (Screen.width - (winWidth / 10f)); } if (Screen.height >= 337f && Screen.height <= 650f) { top = Screen.height - (winHeight / DeriveTopDivisor()); // * scaler.referenceResolution.y; } else if (Screen.height > 650f) { //print("AM I GETTING THIS?"); top = (Screen.height - (winHeight / 0.7f)); // * scaler.referenceResolution.y; } else { top = (Screen.height - (winHeight / 10f)); } if (Screen.height >= 337f && Screen.height <= 650f) { bottom = (-1) * (Screen.height - (winHeight / DeriveBottomDivisor())); // * scaler.referenceResolution.y; } else if (Screen.height > 650f) { //print("AM I GETTING THIS?"); bottom = (-1) * (Screen.height - (winHeight / 0.5f)); // * scaler.referenceResolution.y; } else { bottom = (-1) * (Screen.height - (winHeight / 10f)); } //right = Screen.width - (winWidth / 2.5f); //* scaler.referenceResolution.x; //bottom = (-1) * (Screen.height - (winHeight / 0.5f)); //top = Screen.height - (winHeight / 0.5f); //Left side if (winX < left) { print("winX (" + winX + ") < left (" + left + ")"); winX = left; //* scaler.referenceResolution.x; } //right side else if (winX > right) { winX = right; // * scaler.referenceResolution.x; } //bottom if (winY < bottom) { winY = bottom; // * scaler.referenceResolution.y; } //top else if (winY > top) { winY = top; // * scaler.referenceResolution.y; } print("winX: " + winX + ", winY: " + winY); Vector2 newPos = new Vector2(winX, winY); win.GetComponent <RectTransform>().anchoredPosition = newPos; }
public static void CreateUICamera(UIManager UIManager, string key, float cameraDepth, Vector2 referenceResolution, CanvasScaler.ScreenMatchMode MatchMode, bool isOnlyUICamera, bool isVertical) { UILayerManager.UICameraData uICameraData = new UILayerManager.UICameraData(); uICameraData.m_key = key; GameObject UIManagerGo = UIManager.gameObject; GameObject canvas = new GameObject(key); RectTransform canvasRt = canvas.AddComponent <RectTransform>(); canvasRt.SetParent(UIManagerGo.transform); uICameraData.m_root = canvas; //UIcamera GameObject cameraGo = new GameObject("UICamera"); cameraGo.transform.SetParent(canvas.transform); cameraGo.transform.localPosition = new Vector3(0, 0, -1000); Camera camera = cameraGo.AddComponent <Camera>(); camera.cullingMask = LayerMask.GetMask("UI"); camera.orthographic = true; camera.depth = cameraDepth; uICameraData.m_camera = camera; //Canvas Canvas canvasComp = canvas.AddComponent <Canvas>(); canvasComp.renderMode = RenderMode.ScreenSpaceCamera; canvasComp.worldCamera = camera; //UI Raycaster canvas.AddComponent <GraphicRaycaster>(); //CanvasScaler CanvasScaler scaler = canvas.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = referenceResolution; scaler.screenMatchMode = MatchMode; if (!isOnlyUICamera) { camera.clearFlags = CameraClearFlags.Depth; camera.depth = 1; } else { camera.clearFlags = CameraClearFlags.SolidColor; camera.backgroundColor = Color.black; } if (isVertical) { scaler.matchWidthOrHeight = 1; } else { scaler.matchWidthOrHeight = 0; } //挂载点 GameObject goTmp = null; RectTransform rtTmp = null; UILayerManager UILayerManager = UIManagerGo.GetComponent <UILayerManager>(); goTmp = new GameObject("GameUI"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_GameUILayerParent = goTmp.transform; goTmp = new GameObject("Fixed"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_FixedLayerParent = goTmp.transform; goTmp = new GameObject("Normal"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_NormalLayerParent = goTmp.transform; goTmp = new GameObject("TopBar"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_TopbarLayerParent = goTmp.transform; goTmp = new GameObject("PopUp"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_PopUpLayerParent = goTmp.transform; UILayerManager.UICameraList.Add(uICameraData); //重新保存 ReSaveUIManager(UIManagerGo); }
public void OnValidate() { this.canvas = this.GetComponent<Canvas>(); this.canvasScaler = this.GetComponent<CanvasScaler>(); }
public bool ValidateCanvasScaler() { var changed = false; if (this.canvasScaler == null) { this.canvasScaler = this.GetComponent<CanvasScaler>(); changed = true; } if (this.canvasScaler == null) { this.canvasScaler = this.gameObject.AddComponent<CanvasScaler>(); changed = true; } return changed; }
private void Update_EDITOR() { #region COMPONENTS var canvases = this.GetComponentsInChildren<Canvas>(true); if (canvases != null && canvases.Length > 0) this.canvas = canvases[0]; var scalers = this.GetComponentsInChildren<CanvasScaler>(true); if (scalers != null && scalers.Length > 0) this.canvasScaler = scalers[0]; var raycasters = this.GetComponentsInChildren<UnityEngine.EventSystems.BaseRaycaster>(true); if (raycasters != null && raycasters.Length > 0) this.raycaster = raycasters[0]; #endregion this.initializedChild = (this.canvas != null); #region SETUP if (this.initializedChild == true) { // Canvas WindowSystem.ApplyToSettings(this.canvas); // Raycaster if ((this.raycaster as GraphicRaycaster) != null) { (this.raycaster as GraphicRaycaster).GetType().GetField("m_BlockingMask", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue((this.raycaster as GraphicRaycaster), (LayerMask)(1 << this.gameObject.layer)); } } #endregion }