亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

能解釋一下OffsetUI中enable分支中的這段代碼嗎?

if?(_enable)?{
????float?rx?=?Screen.width?/?_original.x;
????float?ry?=?Screen.height?/?_original.y;
????if?(rx?<?ry)?{
????????float?r?=?rx;
????????float?cha?=?(1f?-?r)?*?Screen.height;
????????float?x?=?(1f?-?r)?/?2?*?Screen.width;
????????float?y?=?cha?/?2f;
????????this.gameObject.transform.localScale?=?new?Vector3?(r,?r,?1);
????????this.gameObject.transform.localPosition?=?new?Vector3?(x,?y,?0);
????????_rect.sizeDelta?=?new?Vector2?((_original.x?-?Screen.width),?cha?/?r);
????}?else?{
????????float?r?=?ry;
????????float?cha?=?(1f?-?r)?*?Screen.width;
????????float?y?=?(1?-?r)?/?2?*?Screen.height;
????????float?x?=?cha?/?2f;
????????this.gameObject.transform.localScale?=?new?Vector3?(r,?r,?1);
????????this.gameObject.transform.localPosition?=?new?Vector3?(x,?y,?0);
????????_rect.sizeDelta?=?new?Vector2?(cha?/?r,?(_original.y?-?Screen.height));
????}
}

else中的代碼應該是一個道理,為了讓代碼更完整一點, 就傳上來了。

先說一下我自己的理解:

this.gameObject.transform.localScale = new Vector3 (r, r, 1);//這句應該是等比例縮放

this.gameObject.transform.localPosition = new Vector3 (x, y, 0);//這句應該是居中(結合上面x和y的值來看)

_rect.sizeDelta = new Vector2 ((_original.x - Screen.width), cha / r);//這句應該是變化_rect的大小, 但是不知道Vector2構造函數中的值有什么講究

另外, _rect的大小需要單獨做變化嗎?難道不是隨著父元素的值一起變化的嗎?


正在回答

1 回答

ugui本身有一套對UI的適配,就是通過錨點框和pivot實現的,具體細節自己研究吧。如果這里不對rect改變,那rect會按照ugui的適配方式變化,這個工程里面,rect的錨點框有一定大小的,你會發現當縮小屏幕的時候,panel背景不能占滿屏幕了,如果你把rect錨點框設置成一個點,那ugui在屏幕適配時不會造成rect大小的改變,此時那行代碼也不需要了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
《小十傳奇》 Unity3D 休閑游戲開發
  • 參與學習       40223    人
  • 解答問題       133    個

手把手教你用Unity3D開發休閑游戲,小伙伴們,還等什么

進入課程

能解釋一下OffsetUI中enable分支中的這段代碼嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號