DashSpeed по умолчанию имеет значение moveSpeed. ⇐ C#
-
Anonymous
DashSpeed по умолчанию имеет значение moveSpeed.
По какой-то причине мой DashSpeed не соответствует значению moveSpeed. Я чувствую, что это потому, что moveSpeed переопределяет его, но я не знаю, почему. Это код ниже.
с использованием системы; использование System.Collections; использование System.Collections.Generic; использование UnityEngine; открытый класс PlayerController: MonoBehaviour { общедоступная камера SceneCamera; [Заголовок("Настройки тире")] [SerializeField] float DashSpeed = 20f; [SerializeField] float DashDuration = 3f; [SerializeField] float DashCooldown = 1f; [Заголовок("Атрибуты игрока")] [SerializeField] float moveSpeed = 5f; [SerializeField] Rigidbody2D rb; [Заголовок("Оружие")] [SerializeField] Оружие; bool isDashing; частный Vector2 moveDirection; частный Vector2 mousePosition; недействительный старт() { } // Обновление вызывается один раз за кадр недействительное обновление() { //обработка входных данных ПроцессВходы(); } недействительный ФиксированныйОбновление() { Двигаться(); если (isDashing) { возвращаться; } } недействительный ПроцессИнпутс() { если (isDashing) { возвращаться; } float moveX = Input.GetAxisRaw("Горизонтально"); float moveY= Input.GetAxisRaw("Вертикально"); если (Input.GetMouseButtonDown(0)) { оружие.Огонь(); } если(Input.GetKeyDown(KeyCode.Space)) { StartCoroutine(Dash()); } moveDirection = новый Vector2 (moveX, moveY).normalized; mousePosition = SceneCamera.ScreenToWorldPoint(Input.mousePosition); } недействительный ход() { rb.velocity = новый Vector2(moveDirection.x * moveSpeed,moveDirection.y * moveSpeed); Vector2 aimDirection = mousePosition - rb.position; float aimAngle = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg - 90f; rb.rotation = aimAngle; } частный IEnumerator Dash() { isDashing = правда; rb.velocity = new Vector2(moveDirection.x * DashSpeed, moveDirection.y * DashSpeed); доходность возвращает новый WaitForSeconds (dashDuration); isDashing = ложь; } } Я новичок в разработке игр на Unity и имею лишь небольшие знания C#.
Также прошу прощения, если я использую этот сайт немного неправильно или неправильно отформатировал материалы, но я надеюсь, что кто-то знает, в чем может быть проблема.
По какой-то причине мой DashSpeed не соответствует значению moveSpeed. Я чувствую, что это потому, что moveSpeed переопределяет его, но я не знаю, почему. Это код ниже.
с использованием системы; использование System.Collections; использование System.Collections.Generic; использование UnityEngine; открытый класс PlayerController: MonoBehaviour { общедоступная камера SceneCamera; [Заголовок("Настройки тире")] [SerializeField] float DashSpeed = 20f; [SerializeField] float DashDuration = 3f; [SerializeField] float DashCooldown = 1f; [Заголовок("Атрибуты игрока")] [SerializeField] float moveSpeed = 5f; [SerializeField] Rigidbody2D rb; [Заголовок("Оружие")] [SerializeField] Оружие; bool isDashing; частный Vector2 moveDirection; частный Vector2 mousePosition; недействительный старт() { } // Обновление вызывается один раз за кадр недействительное обновление() { //обработка входных данных ПроцессВходы(); } недействительный ФиксированныйОбновление() { Двигаться(); если (isDashing) { возвращаться; } } недействительный ПроцессИнпутс() { если (isDashing) { возвращаться; } float moveX = Input.GetAxisRaw("Горизонтально"); float moveY= Input.GetAxisRaw("Вертикально"); если (Input.GetMouseButtonDown(0)) { оружие.Огонь(); } если(Input.GetKeyDown(KeyCode.Space)) { StartCoroutine(Dash()); } moveDirection = новый Vector2 (moveX, moveY).normalized; mousePosition = SceneCamera.ScreenToWorldPoint(Input.mousePosition); } недействительный ход() { rb.velocity = новый Vector2(moveDirection.x * moveSpeed,moveDirection.y * moveSpeed); Vector2 aimDirection = mousePosition - rb.position; float aimAngle = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg - 90f; rb.rotation = aimAngle; } частный IEnumerator Dash() { isDashing = правда; rb.velocity = new Vector2(moveDirection.x * DashSpeed, moveDirection.y * DashSpeed); доходность возвращает новый WaitForSeconds (dashDuration); isDashing = ложь; } } Я новичок в разработке игр на Unity и имею лишь небольшие знания C#.
Также прошу прощения, если я использую этот сайт немного неправильно или неправильно отформатировал материалы, но я надеюсь, что кто-то знает, в чем может быть проблема.
Мобильная версия