【Unity3D API的学习与使用】Unity实现GUI组件的位移、缩放和旋转

在使用Unity中GUI组件时,我们可以像处理一个实体一样,对其进行位移、缩放和旋转的操作。

其中,位移和缩放都只需要改变其Rect的内容即可,前者改变x、y参数,后者改变width和height参数,而旋转则有所不同,它需要使用GUI.matrix的一个函数:

GUIUtility.RotateAroundPivot (rotAngle, pivotPoint)
参数说明:
rotAngle:旋转的角度;
pivotPoint:旋转时围绕的中心点。

JavaScript示例:

#pragma strict

private var rotAngle : float = 0;       //旋转的角度
private var pivotPoint : Vector2;       //旋转时的中心坐标

function Start(){
    //设定旋转中心点为屏幕中心
    pivotPoint = Vector2(Screen.width/2,Screen.height/2);       
}

function OnGUI () {

    if(GUI.Button(Rect(Screen.width/2-75, Screen.height/2-100, 50, 50),"right"))
            rotAngle += 10;

    if(GUI.Button(Rect(Screen.width/2+25, Screen.height/2-100, 50, 50),"left"))
            rotAngle -= 10;

    var matrix : Matrix4x4 = GUI.matrix;                 //记录此时的矩阵

    GUIUtility.RotateAroundPivot (rotAngle, pivotPoint); //旋转
    if(GUI.Button(Rect(Screen.width/2-25, Screen.height/2-25, 50, 50),"Hello"))
    {

    }

    GUI.matrix = matrix;                                //矩阵恢复,从而使left和right按钮不旋转

}

在示例里

ar matrix : Matrix4x4 = GUI.matrix;              //记录此时的矩阵

这行代码是记录此时GUI界面的GUI.matrix ,然后会在旋转操作之后恢复它(官网里所说旋转界面是通过改变这个变量的值成功的,如下),这样,就使得left和right按钮不被旋转,而只旋转Hello这一个按钮。

Helper function to rotate the GUI around a point.
Modifies GUI.matrix to rotate all GUI elements angle degrees around pivotPoint.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值