Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 23.03.2016
Сообщений: 47

Ошибка в Unity: ArgumentException: Input Button Fly is not setup.

01.09.2016, 16:14. Показов 8407. Ответов 2

Студворк — интернет-сервис помощи студентам
Unity выдаёт ошибку: ArgumentException: Input Button Fly is not setup.
To change the input settings use: Edit -> Project Settings -> Input
PlayerControl.Update () (at Assets/Scripts/PlayerScripts/PlayerControl.cs:76)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
using UnityEngine;
using System.Collections;
 
public class PlayerControl : MonoBehaviour
{
 
    public float walkSpeed = 0.15f;
    public float runSpeed = 1.0f;
    public float sprintSpeed = 2.0f;
    public float flySpeed = 4.0f;
 
    public float turnSmoothing = 3.0f;
    public float aimTurnSmoothing = 15.0f;
    public float speedDampTime = 0.1f;
 
    public float jumpHeight = 5.0f;
    public float jumpCooldown = 1.0f;
 
    private float timeToNextJump = 0;
    
    private float speed;
 
    private Vector3 lastDirection;
 
    private Animator anim;
    private int speedFloat;
    private int jumpBool;
    private int hFloat;
    private int vFloat;
    private int aimBool;
    private int flyBool;
    private int groundedBool;
    private Transform cameraTransform;
 
    private float h;
    private float v;
 
    private bool aim;
 
    private bool run;
    private bool sprint;
 
    private bool isMoving;
 
    // fly
    private bool fly = false;
    private float distToGround;
    private float sprintFactor;
 
    public Camera Cam;
 
    void Awake()
    {
        anim = GetComponent<Animator> ();
        cameraTransform = Cam.transform;
 
        speedFloat = Animator.StringToHash("Speed");
        jumpBool = Animator.StringToHash("Jump");
        hFloat = Animator.StringToHash("H");
        vFloat = Animator.StringToHash("V");
        aimBool = Animator.StringToHash("Aim");
        // fly
        flyBool = Animator.StringToHash ("Fly");
        groundedBool = Animator.StringToHash("Grounded");
        distToGround = GetComponent<Collider>().bounds.extents.y;
        sprintFactor = sprintSpeed / runSpeed;
    }
 
    bool IsGrounded() {
        return Physics.Raycast(transform.position, -Vector3.up, distToGround + 0.1f);
    }
 
    void Update()
    {
        // fly
        if(Input.GetButtonDown ("Fly"))
            fly = !fly;
        aim = Input.GetButton("Aim");
        h = Input.GetAxis("Horizontal");
        v = Input.GetAxis("Vertical");
        run = Input.GetButton ("Run");
        sprint = Input.GetButton ("Sprint");
        isMoving = Mathf.Abs(h) > 0.1 || Mathf.Abs(v) > 0.1;
    }
 
    void FixedUpdate()
    {
        anim.SetBool (aimBool, IsAiming());
        anim.SetFloat(hFloat, h);
        anim.SetFloat(vFloat, v);
        
        // Fly
        anim.SetBool (flyBool, fly);
        GetComponent<Rigidbody>().useGravity = !fly;
        anim.SetBool (groundedBool, IsGrounded ());
        if(fly)
            FlyManagement(h,v);
 
        else
        {
            MovementManagement (h, v, run, sprint);
            JumpManagement ();
        }
    }
 
    // fly
    void FlyManagement(float horizontal, float vertical)
    {
        Vector3 direction = Rotating(horizontal, vertical);
        GetComponent<Rigidbody>().AddForce(direction * flySpeed * 100 * (sprint?sprintFactor:1));
    }
 
    void JumpManagement()
    {
        if (GetComponent<Rigidbody>().velocity.y < 10) // already jumped
        {
            anim.SetBool (jumpBool, false);
            if(timeToNextJump > 0)
                timeToNextJump -= Time.deltaTime;
        }
        if (Input.GetButtonDown ("Jump"))
        {
            anim.SetBool(jumpBool, true);
            if(speed > 0 && timeToNextJump <= 0 && !aim)
            {
                GetComponent<Rigidbody>().velocity = new Vector3(0, jumpHeight, 0);
                timeToNextJump = jumpCooldown;
            }
        }
    }
 
    void MovementManagement(float horizontal, float vertical, bool running, bool sprinting)
    {
        Rotating(horizontal, vertical);
 
        if(isMoving)
        {
            if(sprinting)
            {
                speed = sprintSpeed;
            }
            else if (running)
            {
                speed = runSpeed;
            }
            else
            {
                speed = walkSpeed;
            }
 
            anim.SetFloat(speedFloat, speed, speedDampTime, Time.deltaTime);
        }
        else
        {
            speed = 0f;
            anim.SetFloat(speedFloat, 0f);
        }
        GetComponent<Rigidbody>().AddForce(Vector3.forward*speed);
    }
 
    Vector3 Rotating(float horizontal, float vertical)
    {
        Vector3 forward = cameraTransform.TransformDirection(Vector3.forward);
        if (!fly)
            forward.y = 0.0f;
        forward = forward.normalized;
 
        Vector3 right = new Vector3(forward.z, 0, -forward.x);
 
        Vector3 targetDirection;
 
        float finalTurnSmoothing;
 
        if(IsAiming())
        {
            targetDirection = forward;
            finalTurnSmoothing = aimTurnSmoothing;
        }
        else
        {
            targetDirection = forward * vertical + right * horizontal;
            finalTurnSmoothing = turnSmoothing;
        }
 
        if((isMoving && targetDirection != Vector3.zero) || IsAiming())
        {
            Quaternion targetRotation = Quaternion.LookRotation (targetDirection, Vector3.up);
            // fly
            if (fly)
                targetRotation *= Quaternion.Euler (90, 0, 0);
 
            Quaternion newRotation = Quaternion.Slerp(GetComponent<Rigidbody>().rotation, targetRotation, finalTurnSmoothing * Time.deltaTime);
            GetComponent<Rigidbody>().MoveRotation (newRotation);
            lastDirection = targetDirection;
        }
        //idle - fly or grounded
        if(!(Mathf.Abs(h) > 0.9 || Mathf.Abs(v) > 0.9))
        {
            Repositioning();
        }
 
        return targetDirection;
    }   
 
    private void Repositioning()
    {
        Vector3 repositioning = lastDirection;
        if(repositioning != Vector3.zero)
        {
            repositioning.y = 0;
            Quaternion targetRotation = Quaternion.LookRotation (repositioning, Vector3.up);
            Quaternion newRotation = Quaternion.Slerp(GetComponent<Rigidbody>().rotation, targetRotation, turnSmoothing * Time.deltaTime);
            GetComponent<Rigidbody>().MoveRotation (newRotation);
        }
    }
 
    public bool IsFlying()
    {
        return fly;
    }
 
    public bool IsAiming()
    {
        return aim && !fly;
    }
 
    public bool isSprinting()
    {
        return sprint && !aim && (isMoving);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.09.2016, 16:14
Ответы с готовыми решениями:

Как реализовать на месте input button просто input?
Приветствую всех. Есть кнопка. Помогите реализовать логику. По нажатию на кнопку , появляется текст , а под ним input. Спасибо...

ArgumentException ошибка
Доброго времени суток. Столкнулся с такой проблемой. После того как решил сделать программу на одной форме, перенес все элементы в panel. и...

Input type=button
&lt;script src=&quot;my.js&quot;&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;input type=text name=t1&gt; &lt;input type=text name=t2&gt; &lt;input type=text...

2
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
01.09.2016, 19:41
StiverZ, текст ошибки хоть читали? Написано же кнопки Fly нет или не настроена.
1
0 / 0 / 1
Регистрация: 23.03.2016
Сообщений: 47
05.09.2016, 15:56  [ТС]
Весь прикол в том, что на другом проекте всё работает, а тут нет.

Добавлено через 37 минут
Всё. Понял. Мне нужно было привязывать не главную камеру к персонажу, а делать дополнительную, и её уже привязывать. Всё равно спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2016, 15:56
Помогаю со студенческими работами здесь

Input button text
Подскажите как сделать ограничение на минимальный ввод символов в input text? Например в 3 символа.

Frame и Input (button)
Доброго времени суток. Есть одна проблема которую я не могу реализовать. Есть страничка разделенная фрэймом (к примеру) &lt;html&gt; ...

Иконка в input button
Возникла такая задача: разместить на input type=&quot;button&quot; вместе с надписью еще и шрифтовую иконку. Пока добрался до такого способа ...

Не отображается input в button ie
Есть такой код: &lt;button id=&quot;select-all-btn&quot; style=&quot;//width: 100px;&quot; &gt; &lt;input type=&quot;checkbox&quot; id=&quot;select-all&quot; &gt; &lt;span&gt;Выбрать...

UI Button для Input manager
Здравствуйте! В игре реализовано движение с помощью input manager'a (на клавиатуре кнопки left и right). Нужно это управление перенести на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru