Как исправить CS0119?

Сделал вращение,но оно почему-то выдаёт ошибку
Assets/Scripts/moving.cs(22,24): error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected

вот код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class moving : MonoBehaviour {
	public GameObject obj;
	private float speed = 5f,rotSpeed = 2f;
	private Rigidbody2D rb;
	private SpriteRenderer spr;
	float rotation;

	private void Awake(){
		rb = GetComponent  ();
		spr = GetComponent  ();
	}

	private void Run(){
		rotation = rotSpeed * Input.GetAxis("Horizontal");
		if (Input.GetAxis ("Horizontal") == 1f || Input.GetAxis("Horizontal") == -1f) {
			rotation =+ rotSpeed;
		}
		transform.rotation = Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));
		Vector3 direction = transform.up * Input.GetAxis ("Vertical");
		transform.position = Vector3.MoveTowards (transform.position, transform.position + direction,speed * Time.deltaTime);
	}

	private void Update () {
		Run ();
	}
}
  • Вопрос задан
  • 2030 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
А теперь по делу.
transform.rotation = Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));
Вы СОЗДАЕТЕ объект типа Quaternion , а при создании объектов используется new (выделение памяти и тд и тп).
тоесть должно бы быть
transform.rotation = new Quaternion (new Vector3 (transform.rotation, transform.rotation, rotation));

Если же все таки вы используете не новый созданный объект, а хотите просто метод над кватернионом , то было бы
Quaternion.НужныйМетод(параметры метода). а в вашем случае вы использовать пробуете конструктор объекта (параметры для него) без выделения как такового объета

Многовато повторений и так уже, но повторюсь - вам бы какой нибудь курс "Основы программирования" в обязательном порядке
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы