본문 바로가기

unity14

[Unity] 15. 3D 기초 게임 개발 1. 계획하기 게임 개발은 계획부터 차근차근 2. 플레이어 공(Sphere), 바닥(Plane) 생성 Material 적용 기본 움직임, 점프(더블 이상 점프 불가능) 기능 적용 공의 움직임이 너무 빠르면 Mass를 늘리거나 Power를 낮추거나 테스트를 용이하게 위해서 변수를 public로 선언하여 Inspector창에서 값 설정 공과 부딪히면 점수를 올리고, 해당 아이템이 없어지는 기능 적용 SetActive(bool) : 오브젝트 활성화 함수 공과 부딪힐 때 사운드 삽입 AudioSource : 사운드 재생 컴포넌트, AudioClip 필요 AudioClip : 사운드 파일 컴포넌트 비활성화 구간에서는 컴포넌트 함수가 실행되지 않을 수도 있음 3. 아이템 아이템(Capsule) 생성 Material.. 2022. 7. 25.
[Unity] 14. 게임 인터페이스 Canvas - UI가 그려지는 도화지 역할인 컴포넌트 Screen - 게임이 표시되는 화면 - 해상도로 크기 결정 - Unity의 좌표계 : Screen(카메라 X) vs World(카메라 O) - 마우스 커서도 스크린 좌표계에 포함 Text - 문자열을 표시하는 UI - (상업적으로 사용할 때) 폰트 라이선스 꼭 확인 Image - 이미지를 표시하는 UI - 이미지 파일을 Sprite로 설정해야 UI 적용 가능 - Filled 기능으로 쿨타임 효과 구현 가능 Button - 클릭 이벤트를 가지고 있는 반응형 UI - OnClick() : 버튼 클릭 시 호출되는 이벤트 함수 - 버튼 클릭은 누르기-떼기 한 세트로 동작 Anchors - 빨간 점 : 캔버스에서의 기준점 - 파란 점 : 컴포넌트에서의 기준.. 2022. 7. 11.
[Unity] 13. 물리 충돌 이벤트 물리 충돌 이벤트 - MeshRenderer를 통해서 오브젝트의 재질 접근 - OnCollisionEnter : 물리적 충돌이 시작할 때 호출되는 함수 - OnCollisionStay : 물리적 충돌이 일어나고 있을 때 호출되는 함수 - OnCollisionExit : 물리적 충돌이 끝났을 때 호출되는 함수 - Color : 기본 색상 클래스 - Color32 : 255 색상 클래스 - Collision : 충돌 정보 클래스 using System.Collections; using System.Collections.Generic; using UnityEngine; public class OtherBall : MonoBehaviour { MeshRenderer mesh; Material mat; void .. 2022. 7. 10.
[Unity] 12. 물리 영향을 받는 게임 오브젝트 이동 컴포넌트 가져오기 - GetComponent : 자신의 T타입 컴포넌트를 가져옴 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MyBall : MonoBehaviour { Rigidbody rigid; void Start() { rigid = GetComponent(); } } 물체 속도 설정으로 이동 - velocity : 현재 이동 속도 - RigidBody 관련 코드는 FixedUpdate에 작성 (일반 Update 함수에 X) using System.Collections; using System.Collections.Generic; using UnityEngine; public c.. 2022. 7. 10.
[Unity] 11. 물리 영향을 받는 게임 오브젝트 생성 유니티는 컴포넌트 기반 게임 엔진 - Inspector 창에 있는 Transform, Sphere 등등 하나하나가 모두 컴포넌트 중력 - Rigidbody : 물리효과를 받기 위한 컴포넌트 - Mass : 무게 (수치가 높을수록 충돌이 무거워짐) - Use Gravity : 중력 받는지 결정 - Is Kinematic : 외부 물리 효과를 무시 (움직이는 함정 만들 때 유용) 충돌 영역 설정 - Collider : 물리효과를 받기 위한 컴포넌트 - 충돌 기준은 보이는 것이 아닌 Collider에 따름 재질 - Material : 오브젝트의 표면 재질을 결정하는 컴포넌트 - Project 창에서 우클릭 > Create > Material - Inpector 창에서 설정 후 드래그로 오브젝트에 적용 - 재질.. 2022. 7. 10.
[Unity] 10. 델타타임 Translate : 벡터에 곱하기 transform.Translate(Vec * Time.deltaTime); Vector 함수 : 시간 매개변수에 곱하기 Vector3.Lerp(Vec1, Vec2, T * Time.deltaTime); Time.deltaTime : 이전 프레임의 완료까지 걸리는 시간 - 이동속도를 공평하게 하기 위해 - ex) 성능이 좋은 컴퓨터와 좋지 못한 컴퓨터가 있을 때 Update가 돌 때마다 이동하도록 설정해놨다면 성능이 좋은 컴퓨터에서 같은 시간 동안 더 많이 이동함 - deltaTime 값은 프레임이 적으면 크고, 프레임이 많으면 작음 참고 골드메탈 - 이동거리를 공평하게, 델타타임 [유니티 입문 강좌 B8] https://www.youtube.com/watch?v=QG.. 2022. 7. 10.
[Unity] 9. 목표 지점 이동 MoveTowards - 단순 등속 이동 - 매개변수 : 현재 위치 , 목표 위치, 속도 - 마지막 매개변수에 비례하여 속도 증가 transform.position = Vector3.MoveTowards(transform.position, target, 1f); SmoothDamp - 미끄러지듯 부드러운 감속 이동 - 매개변수 : 현재 위치, 목표 위치, 참조 속도, 속도 - ref : 참조 접근 → 실시간으로 바뀌는 값 적용 가능 - 마지막 매개변수에 반비례하여 속도 증가 Vector3 velo = Vector3.zero; transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 1f); Lerp - 선형 보간 이동 - .. 2022. 7. 10.
[Unity] 8. 오브젝트 이동 스칼라 : 순수한 값 int number = 4; 벡터 : 방향과 그에 대한 크기 값 Vector3 vec = new Vector3(0, 0, 0); Transform : 오브젝트 형태에 대한 기본 컴포넌트 - 오브젝트는 변수 transform을 항상 가지고 있음(따로 변수를 선언 안 해도 됨) - Translate : 벡터 값을 현재 위치에 더하는 함수 Vector3 vec = new Vector3(5, 0, 0); transform.Translate(vec); Input 값으로 translate 하는 방법 Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0); transform.Translate(vec).. 2022. 7. 10.
[Unity] 7. 키보드 및 마우스 입력 Input : 게임 내 입력을 관리하는 클래스 - 마우스, 키보드 등 anyKeyDown : 아무 입력을 최초로 받을 때 true if (Input.anyKeyDown) { Debug.Log("플레이어가 아무 키를 눌렀습니다."); } anyKey : 아무 입력을 받으면 true if (Input.anyKey) { Debug.Log("플레이어가 아무 키를 누르고 있습니다."); } (anyKeyUp은 따로 없음) 각 입력 함수는 3가지 행동으로 구분 - Down / Stay / Up GetKey : 키보드 버튼 입력을 받으면 true - Input.GetKeyDown() / Input.GetKey() / Input.GetKeyUp() - Enter : KeyCode.Return (KeypadEnter은 .. 2022. 6. 28.
[Unity] 6. 게임 오브젝트의 흐름 1. 초기화 단계 Awake : 게임 오브젝트 생성할 때, 최초 실행 Start : 업데이트 시작 직전, 최초 실행 2. 물리 단계 FixedUpdate : 물리 연산 업데이트 - 1초에 50번 실행 - 컴퓨터 사양에 영향을 거의 받지 않음 - 고정된 실행 주기로 CPU를 많이 사용 3. 게임 로직 단계 Update : 게임 로직 업데이트 - 1초에 60번 실행 - 환경에 따라 실행 주기가 떨어질 수 있음 => 컴퓨터 사양에 따라 FixedUpdate가 더 많이 실행될 수도, Update가 더 많이 실행될 수도 있음 LateUpdate : 모든 업데이트 끝난 후 - 캐릭터를 따라 다니는 카메라 또는 로직의 후처리 등 4. 해체 단계 OnDestory : 게임 오브젝트가 삭제될 때 - 게임 오브젝트를 꼭 .. 2022. 6. 28.
[Unity] 5. C# 프로그래밍 기초 1. 변수 : 데이터를 메모리에 저장하는 장소 int : 정수형 데이터 float : 숫자형 데이터 - 뒤에 f를 꼭 붙여줘야 함 string : 문자열 데이터 bool : 논리형 데이터 - true / false 선언 > 초기화 > 호출(사용) 2. 그룹형 변수 : 변수들을 묶은 하나의 장소 배열 : 가장 기본적인 고정형 그룹형 변수 프로그래밍에서의 시작 순번은 0 리스트 : 기능이 추가된 가변형 그룹형 변수 크기를 벗어난 탐색은 오류를 발생 3. 연산자 상수, 변수값을 연산해주는 기호 % : 몫이 아닌 나머지를 출력 프로그래밍 부등호 : > (초과) / = (이상) / 2022. 6. 26.
[Unity] 4. 콘솔창에 메시지 표출 1. C# 스크립트 생성 프로젝트 창 > 우클릭 > Create > C# Script 2. Visual Studio 띄우기 생성된 스크립트 더블 클릭 혹시나 Visual Studio 킬 때, 진행 창에 하루 종일 돌아간다면 https://gaagaagaa.tistory.com/6를 참고할 수 있도록.. 3. 명령어 입력 Start() : 1번만 실행되는 함수로 Update 함수보다 우선적으로 실행 Debug.Log() : 콘솔 창에 메시지 출력 Start 메소드 내에 명령어 입력 후 저장(Ctrl + S) 4. 스크립트 주입 게임(연극)에서 오브젝트(등장인물)에게 스크립트(대본)를 주는 과정 오브젝트 더블 클릭 -> Inspector 창에 해당 스크립트 드래그 5. 결과 확인 중앙 상단 재생 버튼을 클릭.. 2022. 6. 26.
[Unity] 2. 인터페이스 및 조작법 1. 프로젝트 생성 Unity Hub > 프로젝트 > 새 프로젝트 에디터 버전, 템플릿, 프로젝트 이름, 위치 선택 후 프로젝트 생성 클릭 2. 창 구성 프로젝트(Project) : 게임을 구성하는 파일들(그래픽, 사운드) 계층구조(Hierarchy) : 게임 오브젝트 확인 및 직접 만지기 가능 장면(Scene) : 게임 오브젝트가 실제로 보이는 창 인스펙터(Inspector) : 게임 오브젝트 속성 확인 3. 오브젝트 생성 계층구조 > 우클릭 > 오브젝트 생성 ex ) 3D Object > Cube 4. 에디터 컨트롤 뷰 이동 : Q or 마우스 스크롤 꾹 오브젝트 이동 : W 오브젝트 회전 : E 오브젝트 크기 조절 : R 사각 툴 : T 카메라 회전(1인칭) : 우클릭 카메라 축 이동(3인칭) : .. 2022. 6. 26.
[Unity] 1. Unity 설치 1. Unity 공식 사이트에서 Unity Hub 다운로드 (Unity Personal) Unity Hub(유니티 허브) : 하나의 PC에서 여러 가지 버전을 설치 및 관리하는 런처 2. Unity Hub 실행 후 로그인(계정 없으면 회원가입) 후 Unity 다운로드 Installs > Official Releases 에서 원하는 버전 선택 (2021.3.4f1 LTS) LTS(Long-Term Support Stream) : 2년 동안 품질이 보장되는 버전 Preferred : 기본으로 설정되는 버전 참고 골드메탈 - 유니티3D 알아보며 설치해보아요 [유니티 입문 강좌 B0] https://www.youtube.com/watch?v=7plGPXkmnxQ&list=PLO-mt5Iu5TeYI4dbYwWP8.. 2022. 6. 21.
반응형