C#

Выходит ошибка в Юнити

Ошибка Assets\Scripts\WeaponSway.cs(20,9): error CS0246: The type or namespace name 'Quarternion' could not be found (are you missing a using directive or an assembly reference?)
Вот код:
using System;
using UnityEngine;

public class WeaponSway : MonoBehaviour
{
[Header("Sway Settings")]
[SerializeField] private float smooth;
[SerializeField] private float swayMultiplier;


void Update()
{
float mouseX = Input.GetAxisRaw("Mouse X") * swayMultiplier;
float mouseY = Input.GetAxisRaw("Mouse Y") * swayMultiplier;

Quaternion rotationX = Quaternion.AngleAxis(-mouseY, Vector3.right);
Quaternion rotationY = Quaternion.AngleAxis(mouseX, Vector3.up);

Quarternion targetRotation = rotationX * rotationY;

transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, smooth * Time.deltaTime);

}
}
Ошибка в коде, которую вы указали, связана с опечаткой в слове Quarternion. Правильное написание этого слова - Quaternion. Исправьте эту опечатку и ошибка должна исчезнуть. Вот исправленный код:
 using System;  
using UnityEngine;

public class WeaponSway : MonoBehaviour
{
[Header("Sway Settings")]
[SerializeField] private float smooth;
[SerializeField] private float swayMultiplier;


void Update()
{
float mouseX = Input.GetAxisRaw("Mouse X") * swayMultiplier;
float mouseY = Input.GetAxisRaw("Mouse Y") * swayMultiplier;

Quaternion rotationX = Quaternion.AngleAxis(-mouseY, Vector3.right);
Quaternion rotationY = Quaternion.AngleAxis(mouseX, Vector3.up);

Quaternion targetRotation = rotationX * rotationY;

transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, smooth * Time.deltaTime);

}
}
Эмомали Мухаммадиев
Эмомали Мухаммадиев
25 860
Лучший ответ
Ошибка говорит о том, что Unity не может найти тип или пространство имен 'Quaternion'. Это может быть вызвано тем, что вы не добавили директиву using для пространства имен UnityEngine.Quaternion в ваш код.

Чтобы исправить ошибку, добавьте следующую директиву using в ваш код:
 using UnityEngine; 
using UnityEngine.Quaternion;
После этого ошибка должна исчезнуть.

Вот полный исправленный код:
 using System; 
using UnityEngine;
using UnityEngine.Quaternion;

public class WeaponSway : MonoBehaviour
{
[Header("Sway Settings")]
[SerializeField] private float smooth;
[SerializeField] private float swayMultiplier;

void Update()
{
float mouseX = Input.GetAxisRaw("Mouse X") * swayMultiplier;
float mouseY = Input.GetAxisRaw("Mouse Y") * swayMultiplier;

Quaternion rotationX = Quaternion.AngleAxis(-mouseY, Vector3.right);
Quaternion rotationY = Quaternion.AngleAxis(mouseX, Vector3.up);

Quaternion targetRotation = rotationX * rotationY;

transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, smooth * Time.deltaTime);

}
}
Е.
Еее .
429
Сергей Парамонов Огромное спасибо!