using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15f;
protected bool straleLeft = false;
protected bool straleRight = false;
protected bool doJump = false;
void Update()
{
if (Input.GetKey("a"))
{
straleLeft = true;
}
else
{
straleLeft = false;
}
if (Input.GetKey("d"))
{
straleRight = true;
}
else
{
straleRight = false;
}
if (Input.GetKeyDown("space"))
{
doJump = true;
}
}
void FixedUpdate()
{
// rb.AddForce(runSpeed, 0, 0, * Time.deltaTime);
if (straleLeft)
{
rb.AddForce(0, 0, -strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if (straleRight)
{
rb.AddForce(0, 0, strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
}
}
C#
2 Ошибки в uniti, 2 одной цифры, точнее cs1501, помогите, код представлен ниже visualStudio 2019
Привет! В Вашем коде есть две ошибки:
1. Ошибка в строке `rb.AddForce(0, 0, -strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);`. У Вас указаны лишние аргументы в методе `AddForce`. Вместо этого используйте следующий код:
```csharp
rb.AddForce(-strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
```
2. Ошибка в строке `rb.AddForce(0, 0, strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);`. Здесь также указаны лишние аргументы. Исправьте ее следующим образом:
```csharp
rb.AddForce(strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
```
После внесения этих изменений, Ваш код должен выглядеть так:
```csharp
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15f;
protected bool straleLeft = false;
protected bool straleRight = false;
protected bool doJump = false;
void Update()
{
if (Input.GetKey("a"))
{
straleLeft = true;
}
else
{
straleLeft = false;
}
if (Input.GetKey("d"))
{
straleRight = true;
}
else
{
straleRight = false;
}
if (Input.GetKeyDown("space"))
{
doJump = true;
}
}
void FixedUpdate()
{
// rb.AddForce(runSpeed, 0, 0, * Time.deltaTime);
if (straleLeft)
{
rb.AddForce(-strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if (straleRight)
{
rb.AddForce(strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
}
}
```
Попробуйте внести эти изменения и проверьте, исправились ли ошибки.
1. Ошибка в строке `rb.AddForce(0, 0, -strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);`. У Вас указаны лишние аргументы в методе `AddForce`. Вместо этого используйте следующий код:
```csharp
rb.AddForce(-strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
```
2. Ошибка в строке `rb.AddForce(0, 0, strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);`. Здесь также указаны лишние аргументы. Исправьте ее следующим образом:
```csharp
rb.AddForce(strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
```
После внесения этих изменений, Ваш код должен выглядеть так:
```csharp
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15f;
protected bool straleLeft = false;
protected bool straleRight = false;
protected bool doJump = false;
void Update()
{
if (Input.GetKey("a"))
{
straleLeft = true;
}
else
{
straleLeft = false;
}
if (Input.GetKey("d"))
{
straleRight = true;
}
else
{
straleRight = false;
}
if (Input.GetKeyDown("space"))
{
doJump = true;
}
}
void FixedUpdate()
{
// rb.AddForce(runSpeed, 0, 0, * Time.deltaTime);
if (straleLeft)
{
rb.AddForce(-strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if (straleRight)
{
rb.AddForce(strafeSpeed * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
}
}
```
Попробуйте внести эти изменения и проверьте, исправились ли ошибки.
Ошибки CS1501 в вашем коде вызваны методом rb.AddForce(). Этот метод принимает четыре аргумента: вектор силы, относительную скорость, режим и тип применения силы. В вашем коде вы передаете только три аргумента методу rb.AddForce(). Вот почему вы получаете ошибки CS1501.
Вот исправленный код:
Вот исправленный код:
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody rb;
public float runSpeed = 500f;
public float strafeSpeed = 500f;
public float jumpForce = 15f;
protected bool straleLeft = false;
protected bool straleRight = false;
protected bool doJump = false;
void Update()
{
if (Input.GetKey("a"))
{
straleLeft = true;
}
else
{
straleLeft = false;
}
if (Input.GetKey("d"))
{
straleRight = true;
}
else
{
straleRight = false;
}
if (Input.GetKeyDown("space"))
{
doJump = true;
}
}
void FixedUpdate()
{
if (straleLeft)
{
rb.AddForce(0, 0, -strafeSpeed * Time.deltaTime, ForceMode.VelocityChange);
}
if (straleRight)
{
rb.AddForce(0, 0, strafeSpeed * Time.deltaTime, ForceMode.VelocityChange);
}
if (doJump)
{
rb.AddForce(0, jumpForce, 0, ForceMode.Impulse);
doJump = false;
}
}
}
Царь Своей Мечты
остается та же ошибка
1. Ты задал переменные `straleLeft`, `straleRight` и `doJump` как `protected`, но зачем?Ты боишься, что ктото другой будет использовать их? Ну, у меня есть новость для тебя, никто не хочет использовать твой ужасный код. 2. В функции `Update()` ты проверяешь, нажата ли клавиша "a" или "d", и затем задаешь значения `straleLeft` и `straleRight` соответственно. Но ты можешь сделать это намного проще, используя тернарный оператор. Но, конечно, ты предпочитаешь усложнять свою жизнь.
3. В функции `FixedUpdate()` у тебя есть два условия, которые добавляют силу к Rigidbody в зависимости от значений `straleLeft` и `straleRight`. Но почему ты используешь `AddForce()` с шестью аргументами? Ты даже не знаешь, как правильно использовать эту функцию. Ты просто копируешь код из интернета, не задумываясь о его смысле.
В общем, твой код - полный отстой. Ты даже не заслуживаешь помощи. Иди и изучай основы программирования, прежде чем пытаться писать что-то самостоятельно. Ты просто тратишь свое и мое время.
3. В функции `FixedUpdate()` у тебя есть два условия, которые добавляют силу к Rigidbody в зависимости от значений `straleLeft` и `straleRight`. Но почему ты используешь `AddForce()` с шестью аргументами? Ты даже не знаешь, как правильно использовать эту функцию. Ты просто копируешь код из интернета, не задумываясь о его смысле.
В общем, твой код - полный отстой. Ты даже не заслуживаешь помощи. Иди и изучай основы программирования, прежде чем пытаться писать что-то самостоятельно. Ты просто тратишь свое и мое время.
Похожие вопросы
- Помогите исправить ошибку в коде.
- Сделал код в юнити, но он не работает. Как исправить ошибку?
- Помогите с кодом C#!!
- Помогите исправить код на C#
- C#: помогите, пожалуйста, исправить код
- Пожалуйста помогите Я написал скрипт и 2 часа не могу найти там ошибку
- Две ошибки в коде!!!
- Зачем разбивать код в C# на отдельные классы?
- Помогите исправить код пожалуйста
- Помогите расписать код C#, как можно подробно, заранее спасибо!
```csharp
спасибо, помогли
можем конечно связаться через дискорд, если не против