Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
StiverZ
0 / 0 / 1
Регистрация: 23.03.2016
Сообщений: 44
1

Камера у персонажа от третьего лица

03.10.2016, 21:36. Просмотров 1605. Ответов 2
Метки нет (Все метки)

Начал делать так, чтобы если ты играешь за персонажа от третьего лица, то ты мог поворачивать камеру. Но Unity выдаёт вот такую ошибку:
Assets/Scripts/PlayerScripts/CameraMove.cs(23,27): error CS1502: The best overloaded method match for `UnityEngine.Input.GetButtonUp(string)' has some invalid arguments

Assets/Scripts/PlayerScripts/CameraMove.cs(23,27): error CS1503: Argument `#1' cannot convert `int' expression to type `string'

Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using UnityEngine;
using System.Collections;
 
public class CameraMove : MonoBehaviour {
    public GameObject player;
    public float speedCam = 15;
    public float speedScroll = 15;
    public float minDistance;
    public float maxDistance;
 
    private bool _isActive = false;
    private float _distance;
    private float _x;
    private float _y;
    void LateUpdate () {
        _x = Input.GetAxis("Mouse X")*speedCam*10;
        _y = Input.GetAxis("Mouse Y")*-speedCam*10;
 
        if(Input.GetMouseButtonDown(1)) {
            _isActive = true;
        }
 
        if (Input.GetButtonUp (1)) {
            _isActive = false;
        }
 
        if (_isActive) {
            transform.RotateAround (player.transform.position, transform.up, _x*Time.deltaTime);
            transform.RotateAround (player.transform.position, transform.right, _y*Time.deltaTime);
 
            transform.rotation = Quaternion.LookRotation (player.transform.position = transform.position);
            transform.eulerAngles = new Vector3 (transform.eulerAngles.x, transform.eulerAngles.y, 0);
        }
 
        if (Input.GetAxis ("Mouse ScrollWheel") != 0) {
            _distance = Vector3.Distance (transform.position, player.transform.position);
            if (Input.GetAxis ("Mouse ScrollWheel") > 0 && _distance > minDistance) {
                transform.Translate (Vector3.forward * Time.deltaTime * speedScroll);
            }
 
            if (Input.GetAxis ("Mouse ScrollWheel") < 0 && _distance < maxDistance) {
                transform.Translate (Vector3.forward * Time.deltaTime * -speedScroll);
            }
        }
    }
}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2016, 21:36
Ответы с готовыми решениями:

TPSMouseLook; Камера от 3-его лица; Синхронизация поворотов камеры и персонажа
Всем добрый день! Сразу оговорю, что уровень моих знаний очень низкий, так что прошу строго не...

Камера от 3-го лица
Ребят помогите!!! Необходимо написать скрипт поворота персонажа за камерой, т.е. обычная камера от...

Unity 5, камера от 3 лица
Привет вам добрые форумчане, столкнулся с небольшой проблемой. Написал механику движения от 3 лица,...

Создание простого контроллера от третьего лица ( для RPG игры)
Всем привет, недавно появилось желания написать небольшую РПГ игру, точнее базу для нее ( лишь...

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

2
bodynar
171 / 171 / 93
Регистрация: 14.03.2015
Сообщений: 703
Записей в блоге: 1
Завершенные тесты: 3
03.10.2016, 23:24 2
Цитата Сообщение от StiverZ Посмотреть сообщение
error CS1502: The best overloaded method match for `UnityEngine.Input.GetButtonUp(string)' has some invalid arguments
Assets/Scripts/PlayerScripts/CameraMove.cs(23,27): error CS1503: Argument `#1' cannot convert `int' expression to type `string'
А что тут непонятного?
UnityEngine.Input.GetButtonUp(string) принимает строковое значение, а вы отправляете цифровое.
0
8Observer8
3151 / 1739 / 311
Регистрация: 05.10.2013
Сообщений: 5,384
Записей в блоге: 108
03.10.2016, 23:34 3
Лучший ответ Сообщение было отмечено StiverZ как решение

Решение

StiverZ, раздел для Unity: http://www.cyberforum.ru/unity/
Там больше шансов получить ответ, так как здесь в основном мало тех кто знаком с Unity

А по теме, так у вас всё же в тексте ошибок написано:
Assets/Scripts/PlayerScripts/CameraMove.cs(23,27): error CS1502: The best overloaded method match for `UnityEngine.Input.GetButtonUp(string)' has some invalid arguments

Assets/Scripts/PlayerScripts/CameraMove.cs(23,27): error CS1503: Argument `#1' cannot convert `int' expression to type `string'
Говорит, что вы в метод GetButtonUp на 23 строке передаёте int, а этот метод ожидает string Input.GetButtonUp
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2016, 23:34

Сделать передвижение персонажа с видом от первого лица в graph3d
Сделать передвижение персонажа с видом от первого лица в graph3d. Добавлено через 2 минуты Ну...

Камера от первого лица
В который раз, вечер добрый, очередная проблема, хотя не решились еще предыдущие) Необходимо...

Камера персонажа
Идея проста - сделать так, чтобы фокус (камера) следовала за игроком. Я создаю карту на Windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru