1. В самом начале класса `бегущийполезвию`, у вас фигурная скобка после `Start()` должна быть открывающей, а не закрывающей. Так что правильно будет так:
private void Start()
{
rb = GetComponent();
}
2. У вас два дополнительных класса объявлены внутри первого класса. Это недопустимо в C#. Каждый класс должен быть отдельно, либо вы должны использовать вложенные классы правильно, но в вашем случае, скорее всего, они должны быть отдельными. Исправьте структуру кода, вынеся `MainCamera` и `PlayerMovement` за пределы `бегущийполезвию`.
3. В классе `MainCamera` у вас после `void Update()` стоит закрывающая скобка `}`, а должна быть открывающая `{`.
4. Уберите точку с запятой после условий `if` в `CameraRotation`:
Из этого:
if (Input.GetMouseButtonDown(1)) ;
{
p1 = Input.mousePosition;
}
Сделайте так:
if (Input.GetMouseButtonDown(1))
{
p1 = Input.mousePosition;
}
И также для `if (Input.GetMouseButton(1)) ;`
5. В классе `PlayerMovement` у вас нет открывающей скобки после объявления класса.
Это основные ошибки. После их исправления ваш код должен начать компилироваться.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class бегущийполезвию : MonoBehaviour
{
public float speed = 6.0f;
private Rigidbody rb;
private void Start()
}
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(horizontal, 0.0f, vertical);
rb.AddForce(movement * speed);
}
public class MainCamera : MonoBehaviour
{ float rotateSpeed = 0.002f;
Vector2 p1;
Vector2 p2;
void Update()}
{
CameraRotation(); }
void CameraRotation()
{
if (Input.GetMouseButtonDown(1)) ;
{
p1 = Input.mousePosition;
}
if (Input.GetMouseButton(1)) ;
{
p2 = Input.mousePosition;
float dx = (p2 - p1).x * rotateSpeed;
float dy = (p2 - p1).y * rotateSpeed;
transform.rotation *= Quaternion.Euler(new Vector3(0, dx, 0));
}
}
public class PlayerMovement : MonoBehaviour
public float Speed = 5f;
private Rigidbody _rb;
void Start()
{
_rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
MovementLogic();
}
void MovementLogic()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
transform.Translate(movement * Speed * Time.fixedDeltaTime);
}
}
Как я понял со скобками напортачил, но где и когда понятия не имею. Часа 2 сижу и все время у меня от ошибки к ошибке CS1003, CS1022, CS1513