본문 바로가기
반응형

개발자가 되어보자..공부공부36

C# 유니티 공부 20 - 3D 쿼터뷰 예제2 (무기 스왑, 아이템 공전효과, Light& Particle 컴포넌트) * 무기, 아이템 프리펩 생성. - item 스크립트 생성하여 무기, 아이템에 스크립트 컴포넌트 넣어줌. - item 스크립트에서 enum 열거형 데이터 타입 생성. - 아이템 자체 회전 함수 적용. Rotate().. Vector3.up 축을 기준과 속도로 회전. - 플레이어 스크립트에서 아이템 관련 변수 생성. - 아이템에 충돌했을 때, 아이템을 먹어주는 OnTriggerEnter 함수 생성. - 아이템과 무기에 각 해당하는 태그를 넣어주고, 인스펙터창 조절해준다음 프리펩으로 생성. * 무기 스왑. - 상호작용 및 무기 스왑에 필요한 변수 생성. - 상호작용 함수 생성. - 무기에 충돌하였을 때, 상호작용 키를 누르면 발생하는 OnTriggerStay, OntriggerExit 함수 생성. (프리펩 .. 2022. 12. 20.
C# 유니티 공부 19 - 3D 쿼터뷰 예제 (캐릭터 생성 및 동작, 키보드 더블 클릭 구현, 카메라 위치 고정) * 3D 필드 생성. - Mesh Renderer를 비활성화 하면 시각적으로만 보이지 않을 뿐, 충돌 효과(Colider)는 유지된다. - Tiling으로 Metrial 갯수를 행, 열로 증가시켜 적용 가능. - FixedUpdate와 Update간의 근소한 프레임 차이로 플레이어와 벽의 물리충돌이 무시 될 때가 있는데, 그럴 때는 rigidbody의 collision Detection을 Continous로 변경해놓으면 좋음. (대신 CPU가 더 많이 사용됨.) * 메인 카메라 좌표 고정 - 카메라 수동으로 첫 위치 조정. - target(플레이어)과 offset(보정치) 변수를 Public으로 호출. (public 값은 카메라의 위치를 적어주고, 플레이어를 드래그앤드롭해줌.) - 카메라 포지션을 tar.. 2022. 12. 19.
C# 유니티 공부 18 - 2D 슈팅 예제 최종(무적 효과, 폭발 효과, 모바일 조이판넬, UI 애니메이션) * 무적 효과 - isRespawnTime이라는 book값 변수 생성. true라면 데미지를 받지 않도록 함. (Follow라는 미니비행기들은 플레이어 하위로 넣어주면 같이 적용됨.) - true일 동안에는 색상을 변경하여 표시를 해주도록 함. (OnEable 생명주기 함수에 적용.) * 폭발 이펙트 효과 - 애니메이션을 만드는 것이 핵심. - string target의 문자열을 입력 받는 함수를 통하여, 각 비행기들의 위치에 맞게 이펙트가 발생하도록 한다. (이펙트 크기도 함께 조절.) - 폭발 후, 오브젝트를 비활성화 시켜 주는 것이 좋음. - 오브젝트 풀링에 저장하여 사용 가능. * 모바일 방향키 - UI에서 9개의 버튼을 만들어서 적용함. - 버튼 on Click이 아닌, event trigger.. 2022. 12. 17.
C# 유니티 공부 17 - 2D 슈팅 예제(보스 생성, 보스 총알 패턴, 삼각함수 계산.) * 보스 생성 후 정지. - Enable에서 Invoke를 이용하여 Stop 함수 실행. - Stop 함수는 새로 생성. (vector를 제로로 만들어 주면 됨.) * 보스 총알 발사 로직. 0. 발사 준비. - 변수 생성. - Stop 함수에서 Think 함수를 Invoke 시켜 놓음. - Think 함수는 patternIndex라는 변수에 따라 보스 공격을 실행시킴. - 공격 패턴에 따라서 다양한 함수 생성. - 공격 패턴 함수 내에 아래 로직을 포함시켜, 공격이 순환되도록 함. curPatterCount++; if (curPatterCount 2022. 12. 17.
C# 유니티 공부 16 - 2D 슈팅 게임 예제. (텍스트파일 불러오기 및 적 비행기 생성 로직 수정) * text 파일로 적 비행기 생성 구현. 1) 스크립트 생성하여 구조체로 사용. 2) Game Manger에서 구조체 호출 및 초기화 - List의 형태로 구조체 변수 초기화. - 파일 읽을 때 필요한 System.IO using 사용. 3) 텍스트 파일 읽는 로직 진행. (읽기 -> 데이터 생성 후 List에 저장-> 텍스트파일 닫기) [읽기] - 함수 생성하여 로직 진행. - TextAsset 클래스로 textfile이라는 변수 생성하고, Resources폴더의 "spawn" 파일명을 가진 텍스트 파일을 로드한다. (as 명령어로 Text파일이 아니라면 Null 값으로 처리.) [데이터 생성] - StringReader 클래스로 stringReader라는 변수 생성하고, 텍스트파일의 텍스트를 저장하.. 2022. 12. 17.
C# 유니티 공부 15 - 2D 슈팅 게임 예제. (아이템 획득 및 사용 로직, ★배경 패럴릭스/스크롤링 기법, ★오브젝트 풀링) * 아이템 획득 및 사용 로직 - 적 비행기 파괴 시에 생성되도록 설정. - 오브젝트 풀링 최적화로 Destroy가 아닌 SetActive로 설정. - random.ragne를 이용하여 아이템 생성 확률 조정. * 배경 원근법 (패럴릭스) - 배경 사진을 여러장 사용. - 가까운 배경그림은 속도를 빠르게, 멀리 있는 배경그림은 속도를 느리게 하여 원근법 효과 발생. (속도는 배경 스크립트를 생성하여 Public 변수로 설정.) - 횡스크롤 게임에서 주로 사용. * 배경 스크롤링 - 해당 종스크롤에서는 y축을 기준으로 하여 아래 배경을 위로 옮겨주어 무한적으로 배경을 만들어주는 방법. - 횡스크롤에서는 x축을 기준으로 하면 될듯. - 카메라 Size에 대한 이해 필요. - 로직에 대한 구제적인 이해 필요... 2022. 12. 16.
C# 유니티 공부 14 - 2D 슈팅 게임 예제. (Prefabs 프리펩, Instantiate함수, Destroy 함수) 0. 핵심.. Prefabs 사용(프리펩) - 이미지를 추가 후, 다시 Assets 창으로 옮겨주면 Prefabs 형태로 사용 가능. - 총알 발사 등, 여러 이미지가 들어가는 경우에 이미지를 직접 삽입할 필요가 없이 효율적으로 사용 가능. 1. 화면 비율 조정. - 모바일 빌드를 목표로 하였고, Aspect Ratio 9:19 비율로 제일 먼저 조정. 2. 비행기 움직임 및 비행기 애니메이션 3. 비행기 총알 발사 - Instantiate() 함수 이용 Instanitiate(생성되는 오브젝트 종류, 생성되는 오브젝트 위치, 생성되는 오브젝트의 회전) - 총알이 발사되는 속도는 아래 2가지 변수로 조정. public float MaxBulletSpeed; public float CurBulletSpee.. 2022. 12. 15.
C# 유니티 공부 13 - 탑다운 게임 완성 (메뉴 버튼 UI, 게임 저장과 불러오기, Canvers Scaler, 안드로이드 빌드) 1. ESC키 눌렀을 때, 메뉴 나오게 하기. 1) ESC 눌렀을 때, 화면 어둡게 하기. - 캔버스에 이미지 추가.. 검정색으로 하고 투명도(알파 값) 조정. 2) 버튼 만들기 - 검정색 만든 이미지!!! 내부에다가 이미지 생성. - 이미지 내부에 버튼 추가로 생성! 3) 버튼 온클릭... - 따로 함수를 작성할 필요 없이... 할 수 있음. 게임매니저에서 메뉴셋스크립트를 넣었고, 메뉴셋을 온클릭에 가져다 놓으면 다양한 함수 사용 가능. 여기서는 SetAcitve 함수 사용하면 바로 가능. (혹시 버튼이 클릭 안 될 때는... eventsystem이 Hierachy에 있나 확인. 없으면 UI에서 추가해주면 됨.) 4) 퀘스트 내용 기재 5) 응용프로그램 종료 함수. Application.Quit(); .. 2022. 12. 13.
C# 유니티 공부 12 - 키보드 타자 애니메이션(Typing), UI 대화창, 초상화 애니메이션 * 대화창 애니메이션 1) 대화창이 아래에서 위로 올라오는 애니메이션 - 애니메이터 하나 생성하여 대화UI에 추가. - 빈 애니메이션 생성하고 - 파라미터 bool 값 생성. (IsShow.... 보여주고있는가?) - 애니메이션 2개 더 생성. (토크중의 애니메이션 애니메이션 중지) - 대화창 아래로 내려놓기? (아래에서 위로 올라오는 애니메이션) - GameManger에 가서 애니메이션 코딩 진행. 기존 게임오브젝트에서 가져오던 talkpanel을 Animator에서 가져오는 것으로 변경. talkpanel.setbool("IsShow", isactuon... true인지 false이지...) - GameMager에서 Hiarachy 다시 집어넣어주기. (게임오브젝트에서 애니메이터로 변경했기 때문에) .. 2022. 12. 12.
C# 유니티 공부 11 - 퀘스트 코딩, 재귀함수, 오버로딩, Dictionary 활용. 1. 퀘스트 데이타, 스크립트 생성. (구조체) (상속 기능 필요없음.. 직접 불러서 쓸 것) - 퀘스트 네임, npc ID(배열) 2가지 변수 생성. - 구조체 생성을 위한 매개변수 생성자를 작성해주어야 함. pulbic 퀘스트데이타(퀘스트 네임, npc id) { 퀘스트네임 = 네임; npc id = npc; } 2. 퀘스트 매니저, 스크립트 생성. - 퀘스트ID 변수 생성. - Dictionary 퀘스트리스트(변수명) 생성. - 데이타 저장 함수 생성. - 데이타 저장 함수 내부에 Dictionary.Add 로 데이터 저장. 퀘스트리스트.Add(10, new 퀘스트데이타("퀘스트네임", new int []{npc id}) 이것을 사용하려면 구조체 생성자를 미리 작성해주어야 함. - int 퀘스트액션.. 2022. 12. 11.
C# 유니티 공부 10 - 플레이어 대화, NPC 초상화 (Dictionary, 구분자, Split 함수 사용) ★★★ 대화, 초상화 설정. - Dictionary와 구분자의 조합. (중요)- 헷갈리는 부분이 많았어서 구체적인 내용은 스크립트에 주석으로 표시. 1.. 초상화 이미지 배열 생성 (유니티에서 이미지 삽입 필요) 2. 'ID+숫자'의 형태로 초상화 이미지 저장. (Dictionary 이용) 3. 오브젝트에 ID부여하고 ID를 변수로 하여 대화 저장. (Dictionary 이용)- 구분자 사용.(Split 함수)(ID+숫자에서.... 원하는 초상화가 사용되도록 그 숫자를 기재해주는 것.)ex. "안녕?:0", 구분자와 Split()을 사용하여 문자를 배열화시킬 수 있다. 안녕? -> [0]번 배열 문자열 0 -> [1]번 배열 1. ObjectData Script 생성 - ID와 NPC여부를 확인할 수 있.. 2022. 12. 9.
C# 유니티 공부 9 - 2D 탑다운 RPG 예제 (Rule Tile, 플레이어 이동, RayCast 등) * Rule Tile - 타일 생성에 규칙을 주어 쉽게 타일을 만들 수 있음. - Rule Tile 생성 -> Tile Palette에 옮기기 -> 그리기 - 타일맵을 여러개 생성하여, Rule에 어긋나서 오류가 생기는 부분을 해결. - 타일맵 표시 순서는 Order in Layer에 숫자를 적어서 해결. (높은 숫자가 위로 표시됨.) - 타일맵에 Animation 적용 가능. (Rule Tile에서 OutPut을 Animation으로 적용.) * 외부 경계 - 외부 경계용 Tilemap 생성. Spirte는 뭐든 상관 없음. Focsu-Tilemap으로 선택하면 현재 선택한 타일맵만을 보여줌.(그리기 편함.) - 타일맵에 rigidbody, Tilemap Collider, Composite Collid.. 2022. 12. 9.
반응형