Перемещать скорость игрока в зависимости от того, как далеко я sh аналоговый джойстик / джойстик? - PullRequest
0 голосов
/ 07 августа 2020

Я уже создал систему управления персонажем, но его скорость передвижения не меняется в зависимости от того, как далеко я sh аналоговый джойстик. Я новичок в Unity и c# и мне нужна помощь. Спасибо! Вот мой код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.InteropServices.ComTypes;
using UnityEngine;

public class ThirdPersonMovement : MonoBehaviour
{
    public CharacterController controller;

    public Transform cam;

    public float speed = 6f;

    public float turnSmoothTime = 0.1f;
 
    // Update is called once per frame
    void Update()
    {
        float horizontal = Input.GetAxisRaw("Horizontal");
        float vertical = Input.GetAxisRaw("Vertical");
        UnityEngine.Vector3 direction = new UnityEngine.Vector3(horizontal, 0f, vertical);

        if (direction.magnitude >= 0.1f)
        {
            float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg + cam.eulerAngles.y;
            transform.rotation = UnityEngine.Quaternion.Euler(0f, targetAngle, 0f);

            UnityEngine.Vector3 moveDir = UnityEngine.Quaternion.Euler(0f, targetAngle, 0f) * UnityEngine.Vector3.forward;
            controller.Move(moveDir * speed * Time.deltaTime);
        }


    }
}

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Также вы должны сделать это speed = direction.magnitude, потому что direction.magnitude содержит значение аналогового движения, поэтому анимация плюс это равно классной игре, удачи :)

0 голосов
/ 07 августа 2020

Я думаю, что есть другие способы сделать это, но вы можете использовать анимацию для достижения этого, вы настраиваете триггер для анимации! Пример (воспроизвести медленную анимацию, если ваша скорость такая, и воспроизвести анимацию скорости, если ваша скорость больше)

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