У меня есть палитра цветов, который появляется только когда я нажимаю на другую кнопку текстуры 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;
}
}
Эта функция возвращает 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;
}
Моя проблема заключается в том, что после нажатия одной из вторых кнопок текстур графического интерфейса появляется средство выбора цвета, которое объявляется как GuiLayout.BeginArea (Rect), и когда я перетаскиваю мышь через цвет, мой дом двигается и одновременно меняет цвета время. Я хочу, чтобы мой дом был исправлен, когда я использую палитру цветов.