我有一个颜色选择器,只有当我点击另一个gui纹理按钮时才会出现。我也有一个在它后面有一个旋转脚本的对象。当我使用颜色选择器时,如何告诉对象不旋转?
这是旋转脚本。
function LateUpdate () {
if (isCameraInputIgnored() ) {
return;
}
if (target && Input.GetMouseButton(0)) {
x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
y = ClampAngle(y, yMinLimit, yMaxLimit);
var rotation = Quaternion.Euler(y, x, 0);
var position = rotation * Vector3(0.0, 10.0, -distance) + target.position;
transform.rotation = rotation;
transform.position = position;
}
}
如果鼠标位于2个始终存在的guitextures上,则此函数返回true。
function isCameraInputIgnored () : boolean {
var mousePos : Vector3 = Input.mousePosition;
// invert the y-coordinate
mousePos.y = Screen.height - mousePos.y;
if ( tilesBlock.Contains(mousePos) || wallBlock.Contains(mousePos))
return true;
return false; //if mouse isn't over gui's
}
Declaration :
private var tilesBlock : Rect = Rect(0,0,570,182) ; //tiles rectangle
private var wallBlock : Rect = Rect(670,0,590,172) ; //walls rectangle
在LateUpdate功能中,我使用此代码不旋转我的对象:
if (isCameraInputIgnored() ) {
return;
}
我的问题是,在按下第二个gui纹理按钮之一后,会出现一个颜色选择器,它声明为GuiLayout.BeginArea(Rect),当我将鼠标拖动到颜色时,我的房子会移动并改变颜色时间。当我使用颜色选择器时,我希望我的房子固定。