Я встроил приложение Unity в родительское приложение WPF. Однако у этого были некоторые странные побочные эффекты.
У меня есть метод обновления, который постоянно проверяет, нажата ли кнопка мыши 0, и, если это так, выполняет Raycast, чтобы попытаться найти этот объект. Это показано здесь:
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
//Some code here...
}
}
Этот raycast всегда терпит неудачу. Тем не менее, когда это делается внутри редактора единства (т.е. нажатия кнопки воспроизведения в двигателе), он работает нормально.
Другое странное поведение заключается в том, что при использовании автономного плеера ни один из элементов управления не работает. У меня есть другой метод, чтобы вращать камеру вокруг объекта:
if (Input.GetMouseButton(0))
{
float h = rotateSpeed * Input.GetAxis("Mouse X");
float v = rotateSpeed * Input.GetAxis("Mouse Y");
if (cameraOrbit.transform.eulerAngles.z + v <= 0.1f || cameraOrbit.transform.eulerAngles.z + v >= 179.9f)
v = 0;
cameraOrbit.transform.eulerAngles = new Vector3(cameraOrbit.transform.eulerAngles.x, cameraOrbit.transform.eulerAngles.y + h, cameraOrbit.transform.eulerAngles.z);
}
Который отлично работает как в редакторе, так и при встраивании, но не при использовании проигрывателя Unity. Есть ли что-то, что я делаю здесь неправильно, что вызывает это нежелательное и противоречивое поведение?