facebook twitter hatena line email

「Unity/UIImage」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(枠を追加)
 
(同じ利用者による、間の24版が非表示)
行1: 行1:
==幅修正==
+
[[Unity/UIImage/基本]]
GameObject graph = GameObject.Find("/Canvas/Graph");
+
RectTransform textRect = graph.GetComponent<RectTransform>();
+
textRect.sizeDelta = new Vector2(1000.0f, 1000.0f);
+
  
==幅と高さ==
+
[[Unity/UIImage/Mask]]
float width = gameObject.GetComponent<RectTransform>().sizeDelta.x; //
+
float height = gameObject.GetComponent<RectTransform>().sizeDelta.y; // 高さ
+
  
==UiImage複製して配置==
+
[[Unity/UIImage/Collider2d]]
*Canvas/CopySourceImageにコピー元Image設置
+
*NewImageが新しくできるImage
+
<pre>
+
GameObject canvas = GameObject.Find("Canvas");
+
GameObject copySourceImage = GameObject.Find("Canvas/CopySourceImage");
+
GameObject newImage = new GameObject("NewImage");
+
newImage.transform.SetParent(canvas.transform, false);
+
newImage.transform.SetSiblingIndex(copySourceImage.transform.GetSiblingIndex());
+
RectTransform baseTransform = copySourceImage.transform as RectTransform;
+
RectTransform rectTransform = newImage.AddComponent<RectTransform>();
+
rectTransform.anchorMax = baseTransform.anchorMax;
+
rectTransform.anchorMin = baseTransform.anchorMin;
+
rectTransform.anchoredPosition = baseTransform.anchoredPosition;
+
rectTransform.sizeDelta = baseTransform.sizeDelta;
+
rectTransform.localScale = baseTransform.localScale;
+
rectTransform.localPosition = baseTransform.localPosition;
+
rectTransform.localRotation = baseTransform.localRotation;
+
Image img = newImage.AddComponent<Image>();
+
img.sprite = copySourceImage.GetComponent<Image>().sprite;
+
</pre>
+
  
参考:https://teratail.com/questions/42899
+
[[Unity/UIImage/Texture]]
 
+
==枠を追加==
+
以下で外枠を追加できるが、Imageを透明にするとOutlineも消えてしまう・・。
+
<pre>
+
Outline outline =imageObj.AddComponent<Outline>();
+
outline.effectColor = new Color(1, 0f, 0f, 1f);
+
</pre>
+
 
+
どこか一辺だけの場合は、以下参照すればできるかも。http://aktaat.hatenablog.com/entry/2016/10/30/085534
+
<pre>
+
 
+
using UnityEngine;
+
using System.Collections.Generic;
+
 
+
public class WakuImage : MonoBehaviour
+
{
+
    private RectTransform rect;
+
 
+
    private Vector2 TopRight;
+
    private Vector2 TopLeft;
+
    private Vector2 BottomLeft;
+
    private Vector2 BottomRight;
+
 
+
    void Start()
+
    {
+
        //自分自身がアタッチしたGameObjectのコンポーネントを取得する場合はgameObject
+
        //自分がアタッチしているかわからないシーン内のゲームオブジェクトを探して
+
        //キャッシュするにはGameObject.Find("ゲームオブジェクトの名前")
+
        rect = gameObject.GetComponent<RectTransform>();
+
 
+
        var offsetMax = rect.offsetMax;//アンカーからのオフセット(右上)
+
        var offsetMin = rect.offsetMin;//アンカーからのオフセット(左下)
+
 
+
        //アンカーがCanvasの四隅を指定している場合
+
        TopRight = new Vector2(Screen.width + offsetMax.x, Screen.height + offsetMax.y);
+
        TopLeft = new Vector2(offsetMin.x, Screen.height + offsetMax.y);
+
        BottomLeft = new Vector2(offsetMin.x, offsetMin.y);
+
        BottomRight = new Vector2(Screen.width + offsetMax.x, offsetMin.y);
+
 
+
        LineRenderer renderer = this.GetComponent<LineRenderer>();
+
        renderer.SetWidth(0.01f, 0.01f); // 幅
+
        renderer.SetVertexCount(4); // x点間
+
        renderer.SetPosition(0, new Vector3(Screen.width + offsetMax.x, Screen.height + offsetMax.y, 0));
+
        renderer.SetPosition(1, new Vector3(offsetMin.x, Screen.height + offsetMax.y, 0));
+
        renderer.SetPosition(2, new Vector3(offsetMin.x, Screen.height + offsetMax.y, 0));
+
        renderer.SetPosition(3, new Vector3(Screen.width + offsetMax.x, offsetMin.y, 0));
+
        // renderer.SetPosition(1, new Vector3(-10f, -10f, 0f)); // 0から右上へ
+
 
+
    }
+
}
+
</pre>
+

2023年3月8日 (水) 04:29時点における最新版

Unity/UIImage/基本

Unity/UIImage/Mask

Unity/UIImage/Collider2d

Unity/UIImage/Texture