コード例 #1
0
		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;

		}
コード例 #2
0
		public void OnValidate() {

			if (Application.isPlaying == true) return;

			this.canvas = this.GetComponent<Canvas>();
			this.canvasScaler = this.GetComponent<CanvasScaler>();
			
		}
コード例 #3
0
		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>();

			}

		}
コード例 #4
0
		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;

			}

		}
コード例 #5
0
		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;

			}

		}
コード例 #6
0
		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;

			}

		}
コード例 #7
0
    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;
            }
        }
    }
コード例 #8
0
    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;
        }
    }
コード例 #9
0
    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);
        }
    }
コード例 #10
0
    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;
    }
コード例 #11
0
    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;
        }
    }
コード例 #12
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);
    }
コード例 #13
0
ファイル: ImageClipper.cs プロジェクト: kz-rv04/SlidePuzzlle
    // テクスチャを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);
    }
コード例 #14
0
    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>();
    }
コード例 #15
0
ファイル: CreateObject.cs プロジェクト: egod1537/YLibrary
        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
        }
コード例 #16
0
        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;
        }
コード例 #17
0
ファイル: HSceneUI.cs プロジェクト: Dryne11/SexyVR
        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);
        }
コード例 #18
0
    // 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;
            }
        }
    }
コード例 #19
0
ファイル: CTextEditor.cs プロジェクト: woshiduanli/DLLResouce
    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>();
        }
    }
コード例 #20
0
        /// <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();
                }
            }
        }
コード例 #21
0
        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);
        }
コード例 #22
0
    /// <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");
    }
コード例 #23
0
        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
        }
コード例 #24
0
        // 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);
        }
コード例 #25
0
    // 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);
    }
コード例 #26
0
    // 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);
    }
コード例 #27
0
ファイル: Minimap.cs プロジェクト: xRainCloud/guardian
    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;
    }
コード例 #28
0
ファイル: LiveControllerUI.cs プロジェクト: comblox/METoolkit
        // 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);
        }
コード例 #29
0
    // 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
            }
        }
    }
コード例 #30
0
    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
    }
コード例 #31
0
        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);
                        }
                    });
                }
            }
        }
コード例 #32
0
        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();
        }
コード例 #33
0
ファイル: CustomUIRoot.cs プロジェクト: liamzhu/LePing
    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>();
    }
コード例 #34
0
        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;
            }
        }
コード例 #35
0
    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;
    }
コード例 #36
0
    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);
    }
コード例 #37
0
		public void OnValidate() {
			
			this.canvas = this.GetComponent<Canvas>();
			this.canvasScaler = this.GetComponent<CanvasScaler>();
			
		}
コード例 #38
0
		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;

		}
コード例 #39
0
		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

		}