###前提・実現したいこと
前回の質問でご教授いただいた内容で、
回答者様から「(_sizeDelta.x / -2f) はキャンバスの左端」で、
「(_sizeDelta.y / -2f」はキャンバスの下端」であるとご教授いただきました。
これらが何故、キャンバスの左端や下端を表すのか理解できていません。
ご教授のほどよろしくお願いします。
※キャンバスはWorld Spaceで扱います。
###該当のソースコード
今回の質問部分を下記のコードに抜粋しました。
C#
1public class CanvasScript : MonoBehaviour { 2 public Canvas canvas; 3 4 // Use this for initialization 5 void Start () { 6 var _canvasRectTf = canvas.GetComponent<RectTransform>(); 7 var _pivot = _canvasRectTf.pivot; 8 var _sizeDelta = _canvasRectTf.sizeDelta; 9 var _pos = Vector3.zero; 10 _pos.x = (_sizeDelta.x / -2f) + (_sizeDelta.x) * _pivot.x; 11 _pos.y = (_sizeDelta.y / -2f) + (_sizeDelta.y) * _pivot.y; 12 13 Debug.Log ("_sizeDelta.x:" + _sizeDelta.x); 14 Debug.Log ("_sizeDelta.y:" + _sizeDelta.y); 15 Debug.Log ("_sizeDelta.x / -2f:" + _sizeDelta.x / -2f); 16 Debug.Log ("_sizeDelta.y / -2f:" + _sizeDelta.y / -2f); 17 } 18}
###試したことと質問。
まず、sizeDeltaについて、下記のように認識しています。
sizeDelta.x → CanvasのWidthの値。 sizeDelta.y → CanvasのHeightの値。
質問①:上記の認識は正しいですか?
認識している理由は、Debug.Logで出力をとったら、
それぞれCanvasのWidthとCanvasのHeightに一致する値が出力された為です。
また、Canvasの位置を変更しても、これらの値は変わりませんでした。
また、マニュアルの説明もあまり理解できませんでした。
アンカーの値を変えれば、sizeDeltaの値が変化するのかと思い、
Canvasのインスペクターで、[Rect Transform]の[Anchors]のMinのX, Y、MaxのX, Yの値を
変えたりしてみましたが、sizeDeltaの出力はCanvasのWidthとCanvasのHeightに一致するままで
変わりませんでした。
質問②:
sizeDeltaは、Canvasの[Rect Transform]の[Anchors]の値によって変化しますか?
変化する場合は、どのような値を設定したときに変化しますか?
質問③:
なぜ、「(_sizeDelta.x / -2f) はキャンバスの左端」で、
「(_sizeDelta.y / -2f」はキャンバスの下端」を表すのですか?
キャンバスの左端とは、キャンバスの左端の座標のことですか?(下端についても同様の質問。)
シーン上でCanvasの位置を変更して、ゲームを実行しても、
_sizeDelta.x / -2f や_sizeDelta.y / -2f の値は変わりませんでした。
質問①のように認識している為、_sizeDelta.x / -2fは、マイナスのCanvasのWidthの半分の値、
_sizeDelta.y / -2fは、マイナスのCanvasのHeightの半分の値に思えてしまいます。
ご教授のほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/01 10:28 編集
退会済みユーザー
2016/11/01 11:18
退会済みユーザー
2016/11/01 12:22
退会済みユーザー
2016/11/01 13:20
退会済みユーザー
2016/11/01 14:29 編集
退会済みユーザー
2016/11/01 14:33
退会済みユーザー
2016/11/01 15:06