Unity не может неявно преобразовать тип float «в bool» и сделать масштабирование камеры? - PullRequest
0 голосов
/ 09 марта 2019

Я использую C # и я новичок. Я пытаюсь сделать функцию масштабирования для игры на единство. Вот мой код (который у меня есть):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Zoom : MonoBehaviour
{
    public Camera cam;
    public float zoom_speed = 20f;

    // Update is called once per frame
    void Update ()
    {
        if(Input.GetAxis("Mouse ScrollWheel"))
        {
            cam.fieldOfView = zoom_speed;
        }
    }
}

Однако я получаю сообщение об ошибке "не может неявно преобразовать тип float в bool при наведении курсора на if(Input.GetAxis("Mouse Scrollwheel")) Также любые советы о том, как заставить работать программу масштабирования, будут высоко ценится.

Ответы [ 2 ]

1 голос
/ 10 марта 2019

В дополнение к ответу от 0xBFE1A8 вам даже не нужно использовать оператор if ... else , поскольку значение будет находиться в диапазоне -1 ... 1 просто умножьте значение Input.GetAxis("Mouse ScrollWheel") на zoom_speed. Я также предлагаю вам зажать поле зрения между минимальным и максимальным значениями, определенными вами.

float scroll = Input.GetAxis("Mouse ScrollWheel");
cam.fieldOfView = Mathf.Clamp(cam.fieldOfView + zoom_speed * scroll * Time.deltaTime, minFieldOfView, maxFieldOfView);
1 голос
/ 09 марта 2019

Сценарий Input.GetAxis("Mouse ScrollWheel"); возвращает значение с плавающей запятой.

Значение будет находиться в диапазоне -1 ... 1 для ввода с клавиатуры и джойстика.Если ось настроена на дельта-движение мыши, дельта мыши умножается на чувствительность оси, и диапазон не равен -1 ... 1.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Zoom : MonoBehaviour
{
    public Camera cam;
    public float zoom_speed = 20f;

    // Update is called once per frame
    void Update ()
    {
         float d = Input.GetAxis("Mouse ScrollWheel");
         if (d > 0f)
         {
            //Positive value
            //Scroll up
            cam.fieldOfView += zoom_speed;
         }
         else if (d < 0f)
         {
            //Negative value
            //Scroll down
            cam.fieldOfView -= zoom_speed;
         }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...