본문 바로가기
반응형

분류 전체보기203

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.
C# 유니티 공부 8 - 2D 완성 (TileMap, 2D STAGE 전환, 코인 점수 획득, 버튼onclick함수) * 타일맵으로 맵 생성. - colider는 tilemap colider 사용 * stage 1, 2 생성. - stage 배열로 정의. - stage 1,2 각 활성화/비활성화로 다음 stage 진행. (플레이어의 시작 위치가 일정해야 함.) - 클리어 하였을 때는, 클리어 표시. - 실패하였을 때는 RETRY 버튼 표시. (클리어와 동일한 버튼 사용.) * 코인을 먹었을 때, 포인트 증가 함수. - 조건문으로 처리 * UI - 전체 점수 - 스테이지 점수 - 플레이어 생명 표시 * 플레이어 생명 감소시, UI표시 - 조건문으로 처리하였으나, 더 효율적인 방법이 있을 것 같음. (ex. 배열) * 사운드 - 사운드 함수를 생성하여 삽입. - 마지막 PLAY()함수를 잊지 않아야 함. 2022. 12. 8.
C# 유니티 공부 7 - 2D 제작(타일팔레트, 타일맵 생성 / 2D 카메라 설정피격 효과/적 제거 / 레이캐스트 활용 / Invoke함수 오류:함수위치, 코루틴 해결 ) 1. 타일팔레트 생성 Windows - 2D - tile palette 2. 타일맵생성 Hierachy - 2D Object - tilemap 3. 타일맵 콜라이더 2d 설정 4. 카메라 설정 - 카메라설정은 메인카메라를 플레이어에게 옮겨놓으면 됨. (1인칭시점 가능) 5. 경사면 콜라이더 범위 설정 - Sprite editor - physhics shape ediror Generator 가서 면적 조절... 보통 16픽셀×16픽셀 사이즈의 이미지를 사용하는데.. 너무 작아서 그럼.. 재적용하려면 타일팔레트에서부터 다시 적용해주어야함. 인공지능 적 만들기 애니메이션 설정.(플레이어와 동일) 1. 움직임. Rigid.vector3(x,y,z) 1. Random변수 Range(최소, 최대) 최소 이상, 최대.. 2022. 12. 6.
C# 유니티 공부 6 - 2D 제작(Spriter, 이미지 애니메이션 적용, 좌/우 이동, 2단 점프, 레이캐스트) 2d.... 1. spriter 생성 spriterender 2. 아틀라스?? 이미지 삽입 이미지 inspector에서 픽셀 수, 내가 사용하는 이미지에 맞추어서 수정. rigidbody, boxcolider (2d)로 삽입. 너무 작은 이미지의 경우 spriter간의 약간의 간극 발생. edit - project setting - Default Contact Offset 수정(최소 0.0001) ------------------------ 1. 아틀라스 자르는 법. 이미지 inspecotr에서 sprite editor 클릭. 2. sprite 애니메이션 만드는 법. 애니메이션으로 만들 이미지를 전체 클릭 후 , 드래그하여 player hierachy에 이동. 저장하면 애니메이션 자동 생성. window.. 2022. 12. 5.
C# 유니티 공부 5 - 예제 프로젝트 (3d 물리 이동, Scene 전환, UI, 사운드 삽입, 카메라 이동) * Player 1) 무한 점프 제한 - 계산기의 IsNewNum 응용. - Isjump라는 bool형 변수를 생성하여 활용. - Public Float jumpPower를 유니티상에서 조절할 수 있게 하였지만, 그냥 코드에 숫자를 집어넣어도 됨. 2) 상하좌우 이동 Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); rigid.AddForce(vec * 30 * Time.deltaTime, ForceMode.Impulse); vec라는 Vector3 변수를 생성. AddForce()에서 vec를 적용해줌. (vec만큼의 힘을 가하는 함수.) 3) item 먹을 때, 효과음 발생. - 컴포넌트의 Audi.. 2022. 12. 5.
C# 유니티 공부 4 - 물리적인 핵심 Component 4가지. (공을 움직여서 충돌효과를 일으키기, 색 변환/뒤로 튕겨나가기) Mesh, Material, Colider, RigidBody - FixedUpdate에 작성하는것이 안정적. (not Update) - Class, 함수 사용에 있어서 코드의 흐름은 선언 -> 초기화 -> 호출. * RigidBody - 물리효과를 받기 위한 Component. - Mass(질량) 수치가 높을수록 무게 증가. (현실 물리적인 특성 그대로 반영.) - Use Gravity 중력 효과 반영 여부 결정. - Is Kinematic 외부 물리효과로부터의 면역 여부 결정.(ex. 움직이는 함정을 만들 때 사용 가능.) * Colider - 물리효과를 받기 위한 Component. - 충돌 효과에 대한 부분을 담당. * Material - Object의 외부 재질을 결정하는 Component. -.. 2022. 12. 3.
C# 유니티 공부 3 - Time.deltaTime과 Vector3 에서의 이동 함수 4가지 (Movetoward, SmoothDamp, Lerp, SLerp ) * Vector 3에서 정해주는 이동함수 4가지. 사용방법 - Vector3.이동함수 (현재위치, 목표위치, 시간 or 속도) 1. MoveTowards() - 단순 등속이동 transform.position = Vector3.MoveTowards(현재위치, 목표위치, 속도) 2. SmoothDamp() - 거리에 비례한 감속 이동 (가까워질수록 느려짐) - ref는 참조 접근... 실시간으로 바뀌는 값에 적용이 가능하다. - 속도변수에 반비례하여 속도가 증가한다. Vector3 velo = Vector3.zero; ----- (0,0,0)을 의미 transform.position = Vector3.SmoothDamp(현재위치, 목표위치, ref velo, 속도); 참조개념. 3. Lerp() - 선형 .. 2022. 12. 3.
C# 유니티 공부 2 - 마우스/키보드 입력, 오브젝트 수평/수직 이동 * KeyCode 클래스 - enter키는 return의 형태. Input.GetKey(KeyCode.Return) - esc는 Escape의 형태 Input.Getkey(KeyCode.Escape) * Input 클래스 - 게임 내 입력을 관리하는 클래스. - enter키는 return의 형태. (Input.Getkey(KeyCode.Escape) - esc키는 escape의 형태. 키 입력은 3가지 형태이다. Up : 눌렀다가 떼었을 때 Stay : 누르고 있을 때 Down : 최초로 눌렀을 때 Iuput 클래스 Method 명 함수 변수 함수 효과 anyKeyDown() 입력 눌렀을 때 () anyKey() 누르고 있을 때 () GetKey() 키보드 입력 키보드 누르고 있을 때 () GetkeyD.. 2022. 12. 3.
C# 유니티 공부 1 - 게임오브젝트 흐름 단계 * 게임오브젝트의 흐름에서 사용하는 유니티 함수 초기화 -> (활성화)-> 물리연산 -> 게임로직 -> (비활성화) -> 해제 활성화는 초기화, 물리연산 단계즈음에 진행. 비활성화는 해제 단계 이전에 진행. 게임오브젝트 흐름 단계 초기화 활성화 물리연산 게임로직 비활성화 해제 함수 Awake() OnEnable() Fixedupdate() Update() OnDisable() OnDestroy Start() Lateupdate() 특징 1초에 약 50프레임 반복 실행 1초에 약 60프레임 반복 실행 예시 게임 오브젝트 생성 로그인 이동 사냥, 경험치 획득 로그아웃 게임 오브젝트 삭제 2022. 12. 3.
C# 문법 복습2. (Class, 생성자, 접근제한자, 속성, 상속, as/is 키워드) 2. 고양이 감정 표현(클래스 선언, 생성자, 접근제한자, 속성) Class는 일종의 설계도라고 생각하면 편하다. 예를 들어.. 자동차를 만드는 것을 가정했을 때, 자동차 설계도 = Class 자동차 = Object 구매한 자동차 각각 = Instance 이며.. 자동차 설계도로부터 자동차를 만들어 내는 것을 객체화, 인스턴스화 라고 한다. 설계도에는 자동차색, 자동차옵션 등 여러가지 변수를 설정, 저장 할 수 있다. Visual Studio에서 우리가 자연스럽게 사용하는 여러가지 기능들 또한 이미 생성된 Class라고 볼 수 있으며, 프로젝트를 진행하며 내가 원하는 기능을 가진 Class를 직접 생성하여 사용하는 것이 효율적이다. - 추후 수정에 용이하다. (List배열, Random, Math 등도 .. 2022. 12. 2.
반응형