Для самых маленьких в Unity.
Нужно просто добавить скрипт с таким содержимым:
[RequireComponent(typeof(CharacterController))]
[RequireComponent(typeof(Camera))]
public class Player : MonoBehaviour
{
public float MoveSpeed;
CharacterController _controller;
Camera _camera;
GUIStyle _guiStyle;
void Start()
{
_controller = GetComponent<CharacterController>();
_camera = GetComponent<Camera>();
_guiStyle = new GUIStyle()
{
fontSize = 8,
};
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
void Update()
{
float deltaX = Input.GetAxis("Horizontal") * MoveSpeed * Time.deltaTime;
float deltaZ = Input.GetAxis("Vertical") * MoveSpeed * Time.deltaTime;
_controller.transform.Translate(deltaX, 0, deltaZ);
transform.Rotate(0, Input.GetAxis("Mouse X") * 9f, 0);
}
void OnGUI()
{
float x = _camera.pixelWidth / 2 - 4;
float y = _camera.pixelHeight / 2 - 4;
GUI.Label(new Rect(x, y, 1, 1), "+", _guiStyle);
}
}
Контроллер персонажа и камеру юнити добавит автоматически за счет атрибута RequireComponent
[RequireComponent(typeof(CharacterController))]
[RequireComponent(typeof(Camera))]
Прицел рисуется в OnGUI.
Так это выглядит в плеере (гизмо включен)