В моем проекте у меня есть этап Ground Plane с дочерним объектом.Теперь я хочу повернуть этот объект с помощью кнопки пользовательского интерфейса.Если я удерживаю кнопку, она должна вращаться, и если я отпускаю кнопку, вращение должно остановиться.К сожалению, я не могу этого сделать.
Это мой сценарий:
public class RotateObject : MonoBehaviour
{
public float rotationSpeed = 45f;
public bool isPressed = false;
public void TogglePressed(bool value)
{
isPressed = !isPressed;
} //edit added missing Brace
void Update()
{
if (isPressed)
{
transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
}
}
}
Я добавил Event Trigger
с Pointer Down
и Pointer Up
к кнопке.Сценарий прикреплен к моему gameObject, а функция TogglePressed
связана с Pointer Down
с установленным флажком и с Pointer Up
, здесь флажок не установлен.
Если я проверяю его в Unity и нажимаюКнопка, инспектор показывает, что это работает, но если я загружаю его на свой телефон, вращение объекта не происходит.
РЕДАКТИРОВАТЬ:
Input.GetMouseButtonDown()
void Update()
{
if (isPressed && Input.GetMouseButtonDown(0))
{
// Same Code
}
}
Input.GetButtonDown()
void Update()
{
if(isPressed && Input.GetButtonDown("Fire1"))
{
//Same Code
}
}
EDIT2:
Это мой скрипт, который я сейчас использую:
public class RoatateObject : MonoBehaviour
{
public float rotationSpeed = 45f;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
}
}
}