Сделал 2 кнопки, по нажатию 1й поворачиваю текстуру, по нажатию 2й пытаюсь переместить с помощью mainTextureOffset.
Синтаксис:
Используется csharp
public static void TurnTexture(){
if (Input.GetKeyDown (KeyCode.Mouse0)) {
Nullturn = Input.mousePosition.y;
angle0 = PoligActions.pMat1.GetFloat ("_UVangle");
} else if (Input.GetKey (KeyCode.Mouse0)) {
float Yt = Input.mousePosition.y;
if (Yt != Nullturn) {
PoligActions.pMat1.SetFloat("_UVangle", angle0+2*All.Pi*(Nullturn-Yt)/Screen.height);
}
}
}
public static void MoveTexture(){
if (Input.GetKeyDown (KeyCode.Mouse0)) {
NullMove = Input.mousePosition;
TexPos0 = PoligActions.pMat1.mainTextureOffset;
} else if (Input.GetKey (KeyCode.Mouse0)) {
Vector2 Moved = Input.mousePosition;
if (Moved!= NullMove) {
// PoligActions.pMat1.mainTextureOffset = TexPos0 + new Vector2(NullMove.x-Moved.x,-NullMove.y+Moved.y);
PoligActions.pMat1.SetTextureOffset("_MainTex", TexPos0+Moved-NullMove);
}
}
}
if (Input.GetKeyDown (KeyCode.Mouse0)) {
Nullturn = Input.mousePosition.y;
angle0 = PoligActions.pMat1.GetFloat ("_UVangle");
} else if (Input.GetKey (KeyCode.Mouse0)) {
float Yt = Input.mousePosition.y;
if (Yt != Nullturn) {
PoligActions.pMat1.SetFloat("_UVangle", angle0+2*All.Pi*(Nullturn-Yt)/Screen.height);
}
}
}
public static void MoveTexture(){
if (Input.GetKeyDown (KeyCode.Mouse0)) {
NullMove = Input.mousePosition;
TexPos0 = PoligActions.pMat1.mainTextureOffset;
} else if (Input.GetKey (KeyCode.Mouse0)) {
Vector2 Moved = Input.mousePosition;
if (Moved!= NullMove) {
// PoligActions.pMat1.mainTextureOffset = TexPos0 + new Vector2(NullMove.x-Moved.x,-NullMove.y+Moved.y);
PoligActions.pMat1.SetTextureOffset("_MainTex", TexPos0+Moved-NullMove);
}
}
}
Проблема в том, что если я при запуске приложения пытаюсь сразу двигать текстуру, она не двигается, хотя скрипт изменяет свой-во offset для материала (видно в редакторе).
При этом, если я сначала буду поворачивать текстуру, потом пробовать двигать её, то тут она уже двигается...
В чём может быть косяк?