Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка error CS1022: Type or namespace definition, or end-of-file expected

никита лопатов Ученик (105), на голосовании 5 месяцев назад
Вот сам код, его я по частям нашел на форумах и скопировал. Первая часть кода с передвижением точно работает т.к проблемы появились после того, как добавил остальные две
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
Голосование за лучший ответ
Клутойкостик12 Гуру (4753) 6 месяцев назад
Понятно
никита лопатовУченик (105) 6 месяцев назад
Вы написали понятно, потому что вопрос тупой?
Клутойкостик12 Гуру (4753) никита лопатов, вы не написали что надо делать с этим кодом
никита лопатовУченик (105) 6 месяцев назад
Да мне бы самому понять, что с этим кодом сделать, чтобы заработал, но люди уже ответили, что не так щас исправлю, как они сказали и буду надеяться, что поможет
Андрей Платонов Знаток (386) 6 месяцев назад
У вас объявлены три разных класса (бегущийполезвию, MainCamera, PlayerMovement), но они не разделены друг от друга. Каждый класс должен иметь свои отдельные блоки {}
никита лопатовУченик (105) 6 месяцев назад
Понял, спасибо большое
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (160377) 6 месяцев назад
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` у вас нет открывающей скобки после объявления класса.

Это основные ошибки. После их исправления ваш код должен начать компилироваться.
никита лопатовУченик (105) 6 месяцев назад
Понял, спасибо большое
Jurijus Zaksas Искусственный Интеллект (447905) 6 месяцев назад
public class бегущийполезвию : MonoBehaviour

{ //класс начался
public float speed = 6.0f;

private Rigidbody rb;

private void Start()
} //класс кончился
{ //а это что за фигня вне класса?
rb = GetComponent<Rigidbody>();
}
Vladimir kasatkin Знаток (374) 6 месяцев назад
иди учи си шарп а не в юнити работай если ты думаешь что с форумов можешь все взять и в майле тебе просто все сделают как надо тут такие наитупейшие ошбки в нейминге и синтаксисе и вообще у тебя просто класс закрывается сразу после создания полей
Похожие вопросы