У меня есть задача, ограничить движение по вертикали пушки от -20 до 20 градусов, если это значение превышается, то поворачивает платформа на которой она стоит, а также необходимо сделать вертикальное поднятие пушки от 0 до 80 градусов.
Я написал код, по отдельности все работает хорошо, но вместе начинается ад.
Мой код:
void FixedUpdate()
{
float fMoveHorizontal = Input.GetAxis("Horizontal") * Time.deltaTime * fMovementSpeed;
float fMoveVertical = Input.GetAxis("Vertical") * Time.deltaTime * fMovementSpeed;
transform.Translate(Vector3.forward * fMoveVertical);
transform.Translate(Vector3.right * fMoveHorizontal);
float fRotateHorizontal = Input.GetAxis("Mouse X") * Time.deltaTime * fRotateSpeed;
float fRotateVertical = Input.GetAxis("Mouse Y") * Time.deltaTime * fUpSpeed;
if (objectCannon.transform.localEulerAngles.z - fRotateHorizontal <= 110.0f &&
objectCannon.transform.localEulerAngles.z - fRotateHorizontal >= 70.0f)
{
objectCannon.transform.Rotate(Vector3.forward, -fRotateHorizontal);
Debug.Log("objCannon local: " + objectCannon.transform.localEulerAngles);
Debug.Log("objCannon global: " + objectCannon.transform.eulerAngles);
}
else
transform.Rotate(Vector3.up, fRotateHorizontal);
if(objectCannon.transform.localEulerAngles.x + fRotateVertical + 1 <= 89.0f &&
objectCannon.transform.localEulerAngles.x + fRotateVertical + 1 >= 9.0f)
{
objectCannon.transform.Rotate(Vector3.up, -fRotateVertical);
}
}
float fRotateHorizontal = Input.GetAxis("Mouse X") * Time.deltaTime * fRotateSpeed;
float fRotateVertical = Input.GetAxis("Mouse Y") * Time.deltaTime * fUpSpeed;
///Horizontal
if (fRotateX + fRotateHorizontal <= 110.0f &&
fRotateX + fRotateHorizontal >= 70.0f)
{
fRotateX += fRotateHorizontal;
}
else
{
if (fRotateX > 110.0f) fRotateX = 110.0f;
if (fRotateX < 70.0f) fRotateX = 70.0f;
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(transform.rotation.eulerAngles.x,
transform.rotation.eulerAngles.y + fRotateHorizontal,
transform.rotation.eulerAngles.z), Time.deltaTime * fRotateSpeed);
}
//Vertical
if (fRotateY + fRotateVertical <= 85.0f &&
fRotateY + fRotateVertical >= 5.0f)
{
fRotateY += fRotateVertical;
}
objectCannon.transform.localRotation = Quaternion.Euler(fRotateY, 0, fRotateX);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужно глобально отслеживать и посылать движение и нажатие мыши и клавиатуры,чтобы программа управляла мышью абсолютно вездеПроблема в том...
Только недавно начал постигать паттерн MVVM, и столкнулся со следующим вопросомКак правильно получить доступ к DependencyProperty из ViewModel
Подскажите, возможно ли, чтобы после обновления программы настройки приложения не затиралисьВ моем случае после запуска приложения происходит...