• Почему Unity hub не хочет скачивать версии Unity?

    @Tiksten
    Нужно проверить место на жестком диске.
    Если не работает то попробуй переустановить юнити хаб.
    Ответ написан
    Комментировать
  • Технологичный Unreal или удобный и приятный Unity?

    @Tiksten
    Unity для того чтобы начать свой путь в геймдеве - идеален, т к поможет понять все плюсы и минусы геймдева а так же поможет определить что нравится делать именно тебе. После того как полностью обучишься Unity можно уже искать команду и подниматься выше (а там уже движок будут выбирать всей командой или вообще делать сами)
    Ответ написан
    Комментировать
  • Трясучка персонажа при столкновении с преградами и при передвижении, как зафиксить?

    @Tiksten
    Передвижение персонажа лучше делать через AddForce

    Вот пример из моего проекта

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PlayerMovement : MonoBehaviour
    {
        public CharacterController controller;
    
        public AudioClip[] steps;
        public AudioSource audioSource;
        private bool stepPlayed;
        public float timeBetweenSteps;
    
        public float speed = 12f;
        public float gravity = -9.81f;
        public float jumpHeight = 3f;
    
        public Transform groundCheck;
        public float groundDistance = 0.4f;
        public LayerMask groundMask;
    
        Vector3 velocity;
        bool isGrounded;
    
        // Update is called once per frame
        void Update()
        {
            isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
    
            if (isGrounded && velocity.y < -2f)
                velocity.y = -2f;
    
            float x = Input.GetAxis("Horizontal");
            float z = Input.GetAxis("Vertical");
    
            Vector3 move = transform.right * x + transform.forward * z;
    
            controller.Move(move * speed * Time.deltaTime);
    
            if (Input.GetButtonDown("Jump") && isGrounded)
                velocity.y = Mathf.Sqrt(jumpHeight * -2 * gravity);
    
            velocity.y += gravity * Time.deltaTime;
    
            controller.Move(velocity * Time.deltaTime);
    
            StepSoundPlay();
        }
    
        private void StepSoundPlay()
        {
            if (!stepPlayed)
            {
                if (isGrounded && (Input.GetAxisRaw("Vertical") != 0 || Input.GetAxisRaw("Horizontal") != 0))
                {
                    stepPlayed = true;
                    audioSource.clip = steps[Random.Range(0, steps.Length)];
                    audioSource.Play();
                    StartCoroutine(Wait());
                }
            }
        }
    
        private IEnumerator Wait()
        {
            yield return new WaitForSeconds(timeBetweenSteps);
            stepPlayed = false;
        }
    }


    Данный код подходит для First Person игр
    Так же в нем есть шаги (StepSounds)
    Ответ написан