현재 개발중인 유니티 TPS조작의 스크립트중 변수명이 있는 부분이다
public class PlayerMovement : MonoBehaviour
{
private float _horizontal;
private float _vertical;
private float _mouseX;
private bool _mouseLeft;
private bool _canMove = true;
private Animator _animator;
public float moveSpeed = 10f;
public float viewSpeed = 50f;
public Vector3 cameraOffset;
public bool isAiming = false;
public bool isReload = false;
private int _leftBullet = 30;
private GameObject _aimIndicator;
public Transform aimTarget;
public GameObject gunMuzzle;
private CameraMovement _cameraMovement;
private float fireRate = 1f / 3f;
private float lastFireTime = 0f;
public int HP = 100;
void Start()
이하 작동 코드들
대충 보더라도, 이 변수들이 무엇을 하는지를 알 수 있어도 정리가 개판이라 가독성이 박살나 있다는 것을 알 수 있다
이를 해결하기 위해서 여러 아이디어를 생각하다 GPT와 대화하며 얻은 정리법을 시험해 보려 한다
현재 해볼것은 간단하다
이 변수들을 적당한 이름의 class로 묶어버린 뒤, 사용하는 것이다
예를들어
private float _horizontal;
private float _vertical;
private float _mouseX;
private bool _mouseLeft;
private bool _canMove = true;
이 이동과 관련된 변수들을
[System.Serializable]
public class MovementSettings
{
public float _horizontal;
public float _vertical;
public float _mouseX;
public bool _mouseLeft;
public bool _canMove = true;
}
이렇게 class의 외부에 정의하는 것이다
그리고 이를
public class PlayerMovement : MonoBehaviour
{
[Header("Move")]
public MovementSettings movementSettings;
이하 동일
이렇게 Header와 함께 선언을 해준다
그리고 이를 사용한다
예를들어
private void HandleInput()
{
_horizontal = Input.GetAxis("Horizontal");
_vertical = Input.GetAxis("Vertical");
_mouseX = Input.GetAxis("Mouse X") * viewSpeed * Time.deltaTime;
_mouseLeft = Input.GetMouseButton(0);
ControllSpeed();
}
원래 이렇게 되어 있는 부분을
private void HandleInput()
{
movementSettings._horizontal = Input.GetAxis("Horizontal");
movementSettings._vertical = Input.GetAxis("Vertical");
movementSettings._mouseX = Input.GetAxis("Mouse X") * viewSpeed * Time.deltaTime;
movementSettings._mouseLeft = Input.GetMouseButton(0);
ControllSpeed();
}
이렇게 정리할 수 있다
다만, 더러워지는 면이 있으니, 주의가 필요한 것 같다
뭔가 더 좋은 방법이 있을것 같은데....
상속이나 다른 cs파일을 객체로 의존하는 방식을 생각해볼 여지가 있을 것 같다
'공부 > C#' 카테고리의 다른 글
C# 공부(12) 111~124(Part3 End && C# 언어 공부 End) (0) | 2024.08.28 |
---|---|
C# 공부(11) 101~110 (0) | 2024.08.27 |
C# 공부(10) 93~100 (0) | 2024.08.27 |
C# 공부(10) 91~92(Part2 End) (0) | 2024.08.26 |
C# 공부(9) 81~90 (0) | 2024.08.26 |