А зачем ты это делаешь
private Rigidbody rb; // Ссылка на компонент Rigidbody
Все пcихически здоровые люди создают игровой объект . GameObject
public GameObject MyGameobject;
А потoм в коде получают доступ к компоненту Rigidbody игрового объекта MyGameobject.
MyGameobject.GetComponent<Rigidbody>().position += Vector3.forward;
Потом вешаешь скрипт на игровой объект.
А потом просто из панели Hierachy ДрагАндДропаешь
в поле скомпилированного скрипта.
Скрипт приобретает вот такой вид
вот код персонажа
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] KeyCode keyOne;
[SerializeField] KeyCode keyTwo;
[SerializeField] Vector3 MoveDirection;
private void FixedUpdate()
{
if (Input.GetKey(keyOne))
{
GetComponent<Rigidbody>().velocity += MoveDirection;
}
if (Input.GetKey(keyTwo))
{
GetComponent<Rigidbody>().velocity -= MoveDirection;
}
}
public float speed = 5f; // Скорость игрока
private Rigidbody rb; // Ссылка на компонент Rigidbody
void Start()
{
rb = GetComponent<Rigidbody>(); // Получаем ссылку на Rigidbody
}
// Метод для перемещения игрока
void Update()
{
float horizontalInput = Input.GetAxis("Horizontal"); // Горизонтальное движение
Vector3 movement = new Vector3(horizontalInput, 0, 0); // Создаем вектор движения
movement *= speed * Time.deltaTime; // Умножаем на скорость и время кадра
if (horizontalInput != 0)
{
rb.velocity = movement; // Применяем движение к Rigidbody
}
}
}земля