Как заблокировать вращение z в Unity3D? - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь заставить мобильные элементы управления работать в единстве, но когда я пытаюсь смотреть влево и вправо, камера слегка наклоняется, поэтому я хочу заблокировать поворот по оси z, но не могу.

using UnityEngine;
using DitzeGames.MobileJoystick;
namespace DitzeGames.MobileJoystick.Example
{
    public class BoxMover : MonoBehaviour {


    public Transform transform;
    protected Joystick Joystick;
    protected Button Button;
    protected TouchField TouchField;

    // Use this for initialization
    void Awake ()
    {
        Joystick = FindObjectOfType<Joystick>();
        Button = FindObjectOfType<Button>();
        TouchField = FindObjectOfType<TouchField>();
    }

    // Update is called once per frame
    void FixedUpdate () {

    transform.position = new Vector3(transform.position.x + 
    Joystick.AxisNormalized.x * Time.deltaTime * 3f, Button.Pressed ? 2 : 1, 
    transform.position.z + Joystick.AxisNormalized.y * Time.deltaTime * 3f);
    transform.Rotate(Vector3.up, TouchField.TouchDist.x);
    transform.Rotate(Vector3.left, TouchField.TouchDist.y);

    }
}}

Может кто-нибудь мне помочь ?Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

просто добавьте твердое тело и заблокируйте вращение z и отключите гравитацию.вы можете настроить его коллайдер на запуск, чтобы он ничего не ударил.

0 голосов
/ 28 октября 2018

Попробуйте добавить код, который будет сбрасывать угол наклона камеры в конце каждого кадра.

var rot = transform.rotation;
Camera.main.transform.rotation = new Quaternion(rot .x,rot .y, 0, rot .w);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...