공부/Unity

24.04.29

월러비 2024. 4. 30. 08:53

CharacterController

  • 캐릭터 컨트롤러는 ‘Rigidbody’를 사용하지 못한다.
    • 액션 RPG는 물리 엔진을 잘 사용하지 않는다.

메카님

 

  • Update에는 직접 작성하면 복잡해지니 함수를 생성해서 호출만 시키는게 평하다.
  • 뭔가를 비교하며 if를 쓸때는 bCanMove처럼 변수를 생성하거나 함수로 빼서 정리한 다음에 그걸 비교하는게 나중을 위해서라도 좋다.
    • 상속관계에서는 부모에 virtual을 사용하여 자식에서 override해서 조건을 바꿔 사용할 수 있다.
  • bool bRun = Input.GetButtonDown("Run"); //함수에 들어갈 조건들도 변수로 빼서 사용하는것이 정리하기에 좋다.
  • 자세한 애니메이션 설명

본과 스켈레톤의 차이

  • 메쉬 : 덩어리(관절과 뼈를 합친 ‘팔’을 생각하면 된다.)
  • 스킨드 매쉬 : 뼈를 연결하는 ‘관절’을 생각하면 된다.
  • 스켈레톤 : 뼈
  • (스킨드 메쉬에서) 뼈와 뼈를 연결하는 관절 : 본

키 프레임 애니메이션

  • 매 프레임의 변화량을 기록해두는 애니메이션

애니메이션

  • Motion의 root Transform은 루트모션을 사용할때 가져올 Transform의 정보를 가지고있는 오브젝트를 의미한다.
    • 이게 없으면 칼을 45도로 휘두를때 정면이 휘두르는 방향으로 돌아가는 것을 방지한다.
    • ‘루트 모션’이 없으면 콜라이더가 현재 위치에 가만히 있고 애니메이션을 따라 오지 않는 것을 방지한다.
  • 이상한 자세로 바닥으로 떨어지면 애니메이션에 문제가 있는 것이다.

검 프리펩

  • 컴포넌트에 Nomal Map : 거칠기 텍스처 표현
  • 생성한 프리펩에 마우스 우클릭 → Export packge 하면 프리펩에 관련된 파일들만 선택되어서 패키지로 뺄 수 있다.

무기관리

  • 추상으로 작성한다.
  • 플레이어 스크립트에 공격이나 여러가지를 만들어서 덩어리가 큰데 여기에 무기관리 기능도 넣으면 너무 덩어리가 커진다.
    • 분리시키기 위해 무기관리 기능을 ‘컴포넌트’로 만들어서 플레이어에 끼워넣는다.
    • 인터페이스는 여기에 쓰지 않는다.
    • 파셜 클래스도 결국 덩어리가 커지는 것이다.
    • 매니저(싱글톤)도 나쁘지 않은데 컴포넌트로 만드는게 더 좋다,.
  • Weapon - Abstract
    • Sword
    • GreatSword
    • Fist
  • 웨폰 컴포넌트(지금은 매니저로 작셩했다)에 프리펩을 넣어서 저장한다.
    • 모노비헤비어를 상속받았지만 기능들만 쓸것이니 컴포넌트로 만들어서 컴포넌트 개념으로 뺸 다음 이것을 플레이어한테 붙이고 다른곳에도 붙일 수 있다.
  • 컴포넌트 란?

프로그래밍의 역사 (매우 중요)

  • 절차지향(함수중심) → 정보공학(구조체중심) → 소프트웨어 위기 발생 → 해결하기 위해 객체지향(클래스, 또는 인터페이스 중심) → 중복되는것을 따로 빼기 위해CBD(컴포넌트(기능별) 중심) → 기능이 너무 많아지면 정신없어지니 따로 관점별로 묶어서 만들어진 AOP (관정 지향 - 도메인공학)
    • 갈수록 유지보수가 용이해지고, 생산성이 증대했다.
    • 객체지향 : GameObject / CBD : Transform ‘ Rigidbody ‘ Animator …
    • 간단한 물리 기능 및 대상의 정보 전달(협업시 다른사람에게 공개해줘야 할(해줘도 될) 부분) : 컴포넌트로 해결 / 상세한 기능(피격, 프로그램 상에 필요한 기능) : 인터페이스로 해결
    • 녹화본에 ppt 보여주시는데 그거 정리해놓자.

'공부 > Unity' 카테고리의 다른 글

24.05.01  (0) 2024.05.02
24.04.30  (0) 2024.05.01
24.04.25  (1) 2024.04.25
24.04.24  (8) 2024.04.25
24.04.23  (0) 2024.04.24