# 最簡單的就是,直接將anchor先設為center-mid,然後再設定位置大小
publicstatic
void setanchoredpos(recttransform rtf, float x, float
y)public
static
void setsize(recttransform rtf, float w, float
h)
# 不調整原來的anchor設定,通過left-top邊距來調整recttramsform的位置
//////移動到left-top邊距處(與parent的left和top邊, 不是anchor邊), 保持大小不變
///public
static
void movebylefttopmargin(recttransform self, float leftmargin, float
topmargin)
public
static
void movebylefttopmargin(recttransform self, float leftmargin, float
topmargin, recttransform parentrtf)
else
offsetmin.x =newleftanchormargin;
var anchormax =self.anchormax;
var newtopanchormargin = topmargin - (1 - anchormax.y) *parentrect.height;
newtopanchormargin -= rect.height * 0.5f * (1 -self.localscale.y);
if (sizedelta.y <= 0) //
y方向拉伸
else
offsetmax.y = -newtopanchormargin; //
我們的margin是parent內部為正, 外部為負; unity的top offset是向上為正, 向下為負
self.offsetmin =offsetmin;
self.offsetmax =offsetmax;
}
# 獲取邊距
//////獲取與parent的邊距(非anchor邊), 在parent內部為正, 在parent外部為負
///public
static
float
getmarginleft(recttransform self)
public
static
float
getmarginleft(recttransform self, recttransform parentrtf)
//////
獲取與parent的邊距(非anchor邊), 在parent內部為正, 在parent外部為負
///public
static
float
getmargintop(recttransform self)
public
static
float
getmargintop(recttransform self, recttransform parentrtf)
//////
獲取與parent的邊距(非anchor邊), 在parent內部為正, 在parent外部為負
///public
static
float
getmarginright(recttransform self)
public
static
float
getmarginright(recttransform self, recttransform parentrtf)
//////
獲取與parent的邊距(非anchor邊), 在parent內部為正, 在parent外部為負
///public
static
float
getmarginbottom(recttransform self)
public
static
float
getmarginbottom(recttransform self, recttransform parentrtf)
# 設定大小
///向左為負, 向右為正
///向左為負, 向右為正
///向上為正, 向下為負
///向上為正, 向下為負
public
static
void setsizebydiff(recttransform rtf, float leftdiff, float rightdiff, float topdiff, float
bottomdiff)
public
static
void setsize(recttransform rtf, float w, float
h) }
if (sizedelta.x > 0 && sizedelta.y > 0
)
else
if (sizedelta.x > 0) //
x方向正常, y方向拉伸
}else
if (sizedelta.y > 0) //
x方向拉伸, y方向正常
sizedelta.y =h;
rtf.sizedelta =sizedelta;
}}
32位程式獲取32 64位程序檔案位址通用方法
一般來說,限於32位程式getmodulefilenameex對於64位程式來說是不管用的,我們如果需要在32位程式獲得64位程序的執行目錄可能需要用到wow64或者是queryfullprocessimagename。但是前者雖然通用,但是實現起來過於複雜,還需要用到彙編,後者 minimum s...
彙編 通用暫存器及標誌位全稱
ax accumulator 累加器 bx base 基址暫存器 cx count 計數暫存器 dx data 資料暫存器 sp stack point 堆疊指標暫存器 bp base pointer 基址指標暫存器 si source inder 源變址暫存器 di destination ind...
Linux下普通使用者使用強制位獲取root許可權
find perm 4000 2 dev null xargs s la編寫乙個c指令碼,內容如下 int main void 使用gcc編譯 gcc getuid.c o setuid 32位 報錯時 apt install gcc multilib gcc m32 o setuid 修改所有者為...