Я почти 24 часа пытался решить эту проблему.
У меня есть объект в моей сцене, который при щелчке вызывает переход к другой сцене. Я бы хотел, чтобы поведение этого объекта было похоже на кнопку пользовательского интерфейса.
В настоящее время я использую Input.GetMouseButtonUp (0), чтобы вызвать это событие. Проблема в том, что у меня есть сценарий, прикрепленный к основной камере, который позволяет вращать, масштабировать и перемещаться по сцене. Если пользователь случайно заканчивает отпускание мыши на этом объекте после перемещения камеры, это вызовет событие, так как объект считается нажатым.
Я бы хотел предотвратить это. Я думал об отмене события в случае обнаружения движения мыши, я не мог выполнить его. Или, может быть, был бы лучший подход для решения проблемы.
Буду очень признателен за помощь
Мой код ниже:
private void LateUpdate()
{
//When mouse button is released
if (Input.GetMouseButtonUp(0))
{
RaycastHit hit;
//Create a ray that projects at the position of the clicked mouse position
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//If the ray hits the target object
if (Physics.Raycast(ray, out hit, 100.0f))
{
//Load the scene that corresponds to the clicked object
LoadScene(hit.transform.gameObject);
}
}
}
public void LoadScene(GameObject go)
{
//Load the level that corresponds to the clicked object
SceneManager.LoadScene(go.name);
//Print the name of the clicked object
print(go.name);
}