Задать вопрос
  • Где найти воздушный ресивер?

    @AlexVWill
    А точно надо это все пневматически делать? Насколько я помню, все подобные установки работают механически, за счёт быстрого вращения двух валов, между которыми подаётся мяч. Удобно же, никакой пневматики, все работает от сети, значит не надо баллоны накачивать, проверять узлы на предмет удержания давления, допусков и т.д.
    Ответ написан
    Комментировать
  • Баг в игре на Unity, как исправить?

    @DrRen7
    private void Start()
    {
    anim = GetComponent();
    rb = GetComponent();
    }

    у GetComponent не указан какой компонент нужно получить
    как должно быть
    anim = GetComponent<Animator>();
    https://docs.unity3d.com/ru/current/ScriptReferenc...
    В аниматоре есть триггер takeOf но ресета триггера нет, так что он всегда будет срабатывать после первого выполнения
    чучуть поправил скрипт
    using UnityEngine;
    
    public class PlayerController : MonoBehaviour
    {
        private Rigidbody2D _rb2d;
        [Header("MovemengSetting")]
        [SerializeField] private float _speed=4f;
        [SerializeField] private float _jumpPower = 3f;
        private float _inputX;
        private bool _isGrounded;
        [Header("GroundSetting")]
        [SerializeField] Transform _feetPos;
        [SerializeField] float _checkRad;
        [SerializeField] LayerMask _groundMask;
    
        private Animator _animator;
        private SpriteRenderer _spRend;
        private void Start()
        {
            _rb2d = GetComponent<Rigidbody2D>();
            _animator = GetComponent<Animator>();
            _spRend = GetComponent<SpriteRenderer>();
        }
        private void Update()
        {
            InputRead();
            PlayerFlip();
            AnimatorUpdate();
        }
    
        private void AnimatorUpdate()
        {
            _animator.SetBool("isRunning",_inputX!=0);
            _animator.SetBool("isJumping", _isGrounded);
        }
    
        private void InputRead()
        {
            _inputX = Input.GetAxis("Horizontal");
            if (Input.GetKeyDown(KeyCode.Space)) TryJump();
        }
    
        private void TryJump()
        {
            if (_isGrounded) _rb2d.linearVelocityY=_jumpPower;
        }
    
        void PlayerFlip()
        {
            _spRend.flipX = _inputX < 0;
        }
        private void FixedUpdate()
        {
            _isGrounded=IsGround();
            Movement();
        }
        bool IsGround() => Physics2D.OverlapCircle(_feetPos.position, _checkRad, _groundMask);
        void Movement()
        {
            _rb2d.linearVelocityX = _inputX * _speed;
        }
    #if UNITY_EDITOR
        private void OnDrawGizmos()
        {
            Gizmos.color = Color.red;
            Gizmos.DrawSphere(_feetPos.position, _checkRad);
        }
    #endif
    }

    настройки Rb на всякий случай
    6785a5b77231a289035629.png
    anim.SetTrigger("takeOf"); я не придумал зачем он нужен так что и не использую
    Ответ написан
    2 комментария