본문 바로가기
반응형

분류 전체보기203

C# 유니티 공부 23 - 3D 쿼터뷰 예제 최종(PlayerPrefs 함수, 플레이어 사망, UI 상점 물건 구매, 스테이지 전환, 사운드) * Playerprefs 함수. - 데이터를 저장하고 불러오는 함수. 이번 예제에서는 GetInt, HasKey 사용. DeleteAll() : 모든 데이터를 삭제한다. 이 함수를 사용할 경우 경고 메시지가 출력된다. DeleteKey(String Key) : Key와 대응하는 값을 삭제한다. HasKey(String Key) : Key가 존재하는지 확인한다. Save() : 수정된 모든 preferences를 파일에 저장한다. PlayerPrefs은 int, float, string 타입의 데이터를 저장하도록 Set 함수를 제공한다. SetInt(string Key, int value) : Key 값으로 int 형 데이터를 저장한다. SetFloat(string Key, float value) : Ke.. 2022. 12. 25.
C# 유니티 공부 22 - 3D 쿼터뷰 예제4 (추척 AI 기능 구현, 폭발 이펙트, 상속, 코루틴 등) ★ 껍데기 오브젝트 안에 Mesh Objcet 등 핵심 Object가 있는 경우에는, 껍데기 오브젝트의 Transform은 건드리지 말고 내부 핵심 Object들의 Transform 을 수정해야 한다. ( 프리펩을 저장하고 Instantiate() 로 생성 하는 등의 로직을 작성하고 실행하면, 방향과 위치가 이상해지는 이유. ) ★ 레이어와 태그를 Enemy, EnemyBullet 등 적절하게 사용하여 적 몬스터끼리의 충돌, 그리고 플레이어와의 공격, 피격 효과, 벽과의 충돌 등을 확실하게 구분해주어야 한다. * 수류탄 효과 구현 - 비활성화 상태에서 활성화 상태로 만들어 주는 방식 사용. - Particle System 사용. - Corutine 함수 사용. - RayCasHit 사용하여 몬스터에게 데.. 2022. 12. 23.
C# 유니티 공부 21 - 3D 쿼터뷰 예제3 (CoRutine코루틴, TrailRenderer, 물리 오류 해결, 원거리 공격, 근접 공격, 몬스터 피격) ★ 코루틴 메인루틴 Use() -> 서브루틴 일반함수 -> 메인루딘 use() -------> 반복. 메인루틴 Use() + 코루틴 -> 서브루틴 일반함수 -> 메인루틴 Use() + 코루틴 ------> 반복 코루틴은 이와 같이 생성. IEnumerator 함수명(){} 함수 내부에 yield return null 으로 1프레임 대기를 걸 수 있다. yield return new waitForSeconds(시간/s) 은 시간만큼 대기를 걸 수 있다. 코루틴 함수를 실행하는 방법은 StartCoroutine(함수명()) 혹은 StartCoroutine("함수명")이다. 반대로 StopCoroutine은 멈추는 방법이다. * 근접 공격 - 무기의 충돌 오브젝트 범위 생성. (Colider 범위 조절) - .. 2022. 12. 21.
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.
반응형