오늘은 강의 듣거나 유니티 education day 세션 듣거나 하는 날~
틀어놓고 텅 빈 동공으로 보고 있었는데 ChatGPT와 게임 개발 세션 진행하시는 분이 유니티 코리아의 핵인싸 골드메탈 님이시란다
에?
형이 왜 거기서 나와..? ❀
Unity Education Day - ChatGPT와 Unity 게임 개발
프롬프트(Prompt)
- 텍스트 기반 지침
- 최대한 사용자가 의도한 대로 AI의 결과물이 나올 수 있도록 명령하는 것이 중요
- 사용자가 알고 있는 지식을 기반으로 ChatGPT에 의견을 제시
ChatGPT 노동시키기
- 게임 기획, 이미지, 스프라이트 목록 등등 물어보면 다 준다 골라골라
- 에디터랑 템플릿도 추천해줌
- 아무튼 물어보면 다 알려준다
- 절차적 대화 진행
- 사용자의 현재 상태를 인지시켜주기
ex: 애니메이션까지 준비 되었습니다.
- ChatGPT가 언급한 대상을 다시 상기시키고, 이와 관련된 다음 해야 할 일을 제시하기
ex: 주인공 '점프' 오브젝트를 물리적으로 움직일 수 있는 간단한 테스트 장면을 만들려고 합니다
- 서술식과 나열식 중 작업하기 좋은 나열식 문장 선택
ex: 제가 해야 할 작업을 "나열"해주세요
- 기존 답변 수정
- 이전 대화 혹은 답변 상태를 먼저 언급하고 추가 내용을 덧붙여 질문
- 관련 페이지 주소를 추천해달라고 하면 주소도 줌
- 작성한 코드를 보여주면 분석해서 로직을 정리해준다
- 레벨 디자인도 해주고 종착점 로직까지 요청 가능
ChatGPT가 노동을 멈춘다면
- 계속(Continue) 입력하면 끊긴 내용에 이어서 다음 내용을 작성해줌
- 가끔 반복되는 함수를 생략하는데 생략하지 말고 전체 코드 내놔 라고 하면 줌
스프라이트 에셋 구하기
- 직접 그리기
- 유니티 에셋스토어
- 케니(KENNEY)
사운드 에셋 구하기
- 유니티 에셋 스토어
- 잇치 아이오
- 케니
- 오픈 게임 아트
- 프리 사운드
유니티 게임 개발 숙련 - 9강 스텟 만들기
스크립터블 오브젝트 (Scriptable Object)
- Unity에서 데이터를 저장하고 관리하는 유연한 데이터 컨테이너
- 게임에서 재사용 가능한 데이터를 설정 및 저장하는 데 사용
- 코드와 데이터의 분리
Range
- 인스펙터 창에서 조절 가능하도록 만들 때, 범위 지정을 위해 다음과 같이 선언할 수 있음
[Range(1, 100)] public int maxHealth;
Serializable
- [SerializeField]로 선언을 할 때, 타입이 클래스라면 그 클래스 위에도 [Serializable]를 선언해줘야 함
-> 구조를 모르기 때문에 동기화해주는 것
[SerializeField] private CharacterStats baseStats;
[Serializable]
public class CharacterStats
{
public StatsChangeType statsChangeType;
[Range(1, 100)] public int maxHealth;
[Range(1f, 20f)] public float speed;
public AttackSO attackSO;
}
10강 투사체 구현하기
싱글턴 패턴
Quaternion
- Quaternion도 행렬, Vector도 행렬이므로 곱하기 가능
-> 하지만 Vector * Quaternion 은 불가능함
- 곱하기를 하려면 Quaternion * Vector를 해줘야 함
- 뒤에서 곱한 Vector를 앞에 있는 Quaternion으로 회전시킨 값의 벡터가 나옴
-> 벡터를 Quaternion만큼 회전시켜라
- 곱셈 방법
- Vector v를 Quaternion으로 변환
v = (x, y, z)인 Vector는 (0, x, y, z)라는 Quaternion
- 이렇게 변환된 Vector Quaternion을 원래의 Quaternion q와 그 켤레 Quaternion q와의 사이에 두고 곱셈 -> qvq 형태
- 그 결과로 나온 Quaternion의 x, y, z 요소는 원래 Vector v가 Quaternion q에 의해 회전한 후의 좌표를 나타냄
-> Unity에서는 Quaternion과 Vector3의 곱셈을 직접 지원 (내부적으로 1~3의 과정을 거쳐 수행)
- TODO
private static Vector2 RotateVector2(Vector2 v, float degree)
{
return Quaternion.Euler(0, 0, degree) * v;
}
너무 졸려서 공부는 여기까지 .. ㅇㅅㅇ
오늘 공부는 영업 종료다.
끗!
Are you considering a career in cloud computing or looking to advance your existing skills in Microsoft Azure administration? The https://www.valid4sure.com/AZ-104-exam-answers.html could be your gateway to success. In this comprehensive guide, we will explore everything you need to know about AZ-104, from its significance to effective preparation strategies and common questions you may encounter.