TIL 0218

김소연·2025년 2월 18일
  • Playerprefs

  • childcount

  • getchild
    하위 오브젝트를 인덱스로 찾아오는 기능

하위오브젝트를 찾는 방법은 총 3가지가 있다.

transform.FindChild(string str)
transform.GetChild(int index)
transform.childCount
출처 : https://codingmania.tistory.com/192

  • find
    path, 경로명을 받아옴

  • rigidbody.AddForce(Vector3 force)
    rigidbody에 힘을 더 해준다

  • 전처리기
    플랫폼마다 다른 동작을 할 수 있게 한다

    public void OnClickExit()
        {
    #if UNITY_EDITOR
            UnityEditor.EditorApplication.isPlaying = false;
    #else
            Application.Quit(); // 어플리케이션 종료
    #endif
        }
  • 버튼
startButton.onClick.AddListener(OnClickStartButton);
startButton.onClick.AddListener(OnClickExitButton);
void OnclickStartButton()
{ uiManager.OnclickStart(); }
  • Mathf.Atan2
    y값과 x값을 받아서 그 사이의 세타값을 구함

  • Mathf.Rad2Deg
    파이->deg (180도)

  • Quaternion.Euler(0, 0, rotZ)

  • .normalized

  • protected virtual

  • 방향벡터
    넉백의 방향

knockback = -(other.position - transform.position).normalized * power;
  1. other position - transform.position (a-b)
    = transform.position(캐릭터가) other position(상대를) 바라보는 방향
    (b가 a를 바라보는 방향)
  2. -가 붙었으므로, 넉백은 상대 쪽이 아닌 캐릭터 쪽으로 이루어진다.
  3. .nomalized는 방향은 그대로 유지, 크기는 1로 정규화해줌
  4. power으로 넉백의 크기를 설정!
  • Camera.main
    태그가 "MainCamera"로 설정된 카메라를 자동으로 찾아주는 기능
    FindObjectOfType() 같은 코드 없이 간단하게 메인 카메라를 가져올 수 있음
    보통 3D 게임에서는 플레이어를 따라다니는 카메라, 2D 게임에서는 씬을 비추는 기본 카메라

    마우스의 화면 좌표(해상도 좌표)를 월드 좌표로 바꾸는 법

    Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

    캐릭터를 카메라가 바라보는 방향으로 전환

    transform.LookAt(Camera.main.transform);

✅ 성능 최적화를 위해 Start()에서 한 번만 가져와서 저장하는 것이 좋다

  • GetAxixRaw / GetAxix
    바로 / 부드러운 움직임
  //왼쪽키,오른쪽키,A,D
float horizontal = Input.GetAxisRaw("Horizontal");
  //위키, 아래키, W,S
float vertical = Input.GetAxisRaw("Vertical");
  • magnitude : 벡터의 크기(길이)
  • [Range(1, 100)]
    범위를 제한.
    Inspector 창에서 나타나는 슬라이더를 범위만큼 자동으로 만들어 줌.
  • [SerializeField]
    Private 변수도 inspector에 노출해 수정가능하도록 해줌
[SerializeField] 
[Range(1, 100)] 
private int health = 10;  // private 변수로 유지되지만, Inspector에서 슬라이더로 수정 가능
  • 중복 호출의 문제
    부모클래스에서 이미 Update()를 구현하고 있으므로, 자식클래스에서 Update()를 따로 작성할 필요가 없다. 중복호출의 문제

0개의 댓글