Возможные причины, по которым анимация с использованием anim.SetBool не работает, могут быть следующими:
1. Неправильное название параметра: Убедитесь, что вы правильно указали название параметра в методе anim.SetBool. Название параметра в скрипте должно совпадать с названием параметра в аниматоре Unity.
2. Неправильное название анимационного состояния: Если название анимационного состояния в аниматоре Unity указано неправильно, то анимация не будет проигрываться. Убедитесь, что вы правильно указали название анимационного состояния в аниматоре Unity.
3. Отсутствие ссылки на компонент Animator: Убедитесь, что вы правильно получили ссылку на компонент Animator в скрипте. Для этого можно использовать метод GetComponent<Animator>().
Чтобы исправить ошибку и проигрывать анимацию при нажатии E в игре, вы можете сделать следующее:
1. Создайте булеву переменную knifeAnim в скрипте и установите ее значение в true при нажатии кнопки E.
2. Используйте метод anim.SetBool("knifeAnim", true) для установки параметра knifeAnim в состояние true в скрипте.
3. В аниматоре Unity создайте анимационное состояние с именем knifeAnim и настройте его так, чтобы проигрывалась нужная анимация.
4. В анимационном состоянии установите условие перехода на другое состояние, чтобы анимация возвращалась в исходное состояние при окончании.
5. Проверьте, чтобы у игрового объекта, на котором находится скрипт и аниматор, был компонент Animator.
Это основной подход для проигрывания анимации при нажатии E в игре типа CS: GO с использованием скрипта и аниматора в Unity. Помните о правильном названии параметра и состояния, а также о правильной ссылке на компонент Animator.