배열 배열 생성 >자료형[ ] 배열명 = new 자료형[배열 크기]; > > > 데이터 저장 > foreach >조건식을 쓰지 않고 해당 배열을 처음부터 끝까지 반복할 때 사용 > > > > 다차원 배열 >2차원 배열 > >3차원 배열 > 함수 함수 만들기 >
🍎 떨어지는 사과 먹기 > 👑 기본 룰 : >1. 제한 시간 안에 떨어지는 사과 먹기 >2. 사과는 4개의 타입이 있다. 👉 타입 1, 2, 3: 크기 별로 나뉘며 클 수록 점수가 높다. 😱 타입 4: 병든 사과로 먹을 시 점수가 차감된다. 🤔 생각해보기 ❓
🍎 떨어지는 사과 먹기 > 👑 기본 룰 : >1. 제한 시간 안에 떨어지는 사과 먹기 >2. 사과는 4개의 타입이 있다. 👉 타입 1, 2, 3: 크기 별로 나뉘며 클 수록 점수가 높다. 😱 타입 4: 병든 사과로 먹을 시 점수가 차감된다. 🤔 생각해보기 ❓
미니 팀 프로젝트 > Unity - 4주차에 만든 카드 뒤집기 게임을 활용하여 팀원을 소개하는 카드 게임 만들기 내가 해야할 과제 > 1. 결과 화면 만들기 > 2. 결과 화면에 카드 매칭 시도 횟수 표시하기 > 3. 첫 번째 카드 고르고 5초 동안 두 번째 카드를
audioManger는 씬에서 재생되는 모든 사운드를 조정할 수 있다.Volume, Pitch 등 재생되고 있는 음악을 조정할 수 있다.audioManager 또한 gameManager처럼 싱글톤시켜서 AudioSource를 관리할 수 있다.특히 AudioSource의
유니티는 게임 개발을 위한 통합 개발 환경이다.주요 기능!프로젝트 관리 : 새로운 프로젝트 생성, 프로젝트 파일 구성 및 관리씬(Scene) 관리 : 게임의 각 장면과 화면을 구성하는 요소에셋(Asset) 관리: 게임에 필요한 리소스(이미지, 사운드, 모델 등)를 관리
카메라에 물체가 찍히지 않은 부분을 어떻게 채울거냐? - Clear Flags.Clear Flags - Solid Color 는 색으로 다 채우겠다는 의미!물체가 무언가와 부딪히기 위해서는 Collider가 필요하다.물체에 물리 법칙을 적용시키려면 Rigid Body가
스크립트 생성 시, MonoBehavior를 상속 받는 클래스를 작성해야 한다. → 유니티에서 스크립트 생성 시 자동으로 추가되어 있음.해당 클래스는 유니티의 게임 오브젝트와 연결시키기 위해서 반드시 필요하다. → 해당 클래스가 유니티의 게임 오브젝트와 연결된 스크립트
충돌과 각 컴포넌트의 이해
먼저 핵심 내용에 대해 알아보자!4차원 복소수를 이용한 회전 표현 방법이다. (X, Y, Z, W) 형태로 표현되며, Unity에서 주로 사용된다.오일러 각도(Eular angles)를 사용하여 회전을 표현할 경우 발생하는 짐벌 락(Gimbal Lock) 문제를 피할
먼저 핵심 내용을 살펴보자!프리팹은 Unity 게임 엔진에서 사용되는 게임 오브젝트를 재사용 가능하고 관리하기 쉽게 만들기 위한 템플릿.프리팹을 사용하면 게임 오브젝트와 그에 관련된 컴포넌트 및 설정을 미리 정의하고, 여러 장면이나 게임에서 재사용할 수 있다.프리팹은
스크립터블 오브젝트(Scriptable Object) 스크립터블 오브젝트는 Unity에서 데이터를 저장하고 관리하는 유연한 데이터 컨테이너. 게임에서 재사용 가능한 데이터 또는 설정을 저장하는 데 사용된다. 코드와 데이터를 분리하여 코드를 더 깔끔하고 관리하기 쉽게 만
레이어 비트 연산 레이어 비트 연산은 Unity에서 게임 오브젝트의 레이어를 빠르게 검사하고 조작하는 방법! 비트 연산은 AND, OR, XOR, NOT 등의 연산을 이용해 레이어 마스크를 조작한다. 레이어 마스크 : 레이어 기반 작업을 단순화 하는 기능으로, 특정 레
게임 개발에 널리 사용되는 테크닉으로, 게임의 성능을 개선하기 위해 사용한다.오브젝트 풀링은 객체를 미리 생성해 두고 필요할 때 가져다 사용하고, 사용이 끝나면 다시 풀에 반납하는 방식을 말한다.오브젝트 풀링은 생성과 소멸이라는 비용이 큰 작업을 최소화 함으로써 성능을
Animation 컴포넌트는 게임 오브젝트에 애니메이션을 추가하는 데 사용된다.이 컴포넌트는 애니메이션 클립을 재생할 수 있다.Animation 컴포넌트는 간단한 애니메이션에 적합하며, 스크립트를 통해 직접 제어할 수 있다.애니메이션 클립은 Unity의 Animatio
"FindGameObjectWithTag"는 지정된 태그와 일치하는 첫 번째 활성 GameObject를 반환한다. 이 메서드는 특정 태그를 가진 오브젝트를 빠르게 찾을 수 있도록 해준다.태그를 사용하면 씬 내에서 특정 유형의 오브젝트를 쉽게 찾을 수 있으며, 코드에서
Entities 폴더 밑에 HealthSystem.cs를 생성하자!!!HealthSystem을 지닌 객체의 체력에 변화가 생길 경우,체력의 변화량이 양수일 경우 : 체력을 채워주되, 채워진 체력이 해당 객체의 최대 체력보다 커질 경우, 최대 체력으로 고정하기.체력의 변
파티클 시스템은 수 천개의 작은 2D 또는 3D 오브젝트들을 관리하고, 그들의 동작과 생애를 제어한다. 각각의 작은 오브젝트를 '파티클'이라고 한다.파티클 시스템의 주요 컴포넌트는 'emitter'(발사체), 'particles'(파티클), 'animator'(애니메이
AudioClip:AudioClip은 사운드 파일을 Unity에서 사용할 수 있도록 하는 데이터 타입..wav, .mp3, .ogg 등 다양한 형식의 오디오 파일을 지원한다. AudioSource: AudioSource 컴포넌트는 사운드를 재생하는 데 사용된다.
Unity의 기본 UI 시스템으로 게임 내의 사용자 인터페이스를 구축하는 데 사용된다. Canvas:UGUI에서 모든 UI 요소는 Canvas라는 컴포넌트 내에 배치된다.Canvas는 스크린 공간, 월드 공간, 카메라 공간의 3가지 렌더 모드를 지원한다. Rect
유니티 Slider로 Volume 조절하기
event : delegate의 한 종류delegate에 기반, 옵저버 패턴과 유사하게 활용할 수 있다.델리게이트와 비슷하다. 델리게이트의 경우, 델리게이트를 선언하고, 델리게이트 변수를 사용한다.delegate 반환형 델리게이트이름(매개변수);델리게이트이름 변수이름;
프로젝트 생성 3D 프로젝트 생성하기 핵심 내용 > 이번 강의에서 사용할 내용을 미리 확인해보자! Ligth 컴포넌트 라이트 소스: 게임 또는 3D 랜더링에 광원을 추가하는 데 사용된다. 이것은 특정 위치 또는 방향에서 발생하는 빛을 나타낸다. Light의 유형:
인터페이스에 대해 복습해보자.인터페이스를 통해 클래스들은 공통적인 동작을 정의하고, 이러한 동작들을 구현하는 클래스들은 해당 인터페이스를 구현(implement)함으로써 공통 규약을 준수할 수 있다.인터페이스를 설명하는 주요 특징은 다음과 같습니다.추상화 : 인터페이스
Invoke Invoke(string methodName, float time): 지정된 시간(time) 후에 지정된 메서드(methodName)를 실행. methodName: 실행할 메서드의 이름을 문자열로 지정한다. time: 메서드를 실행할 시간을 초 단위로
AnimationCurve AnimationCurve는 Unity에서 애니메이션의 키프레임(Keyframe)을 사용하여 값을 보간(interpolate)하는데 사용되는 클래스이다. 이 클래스를 사용하여 시간에 따라 값을 부드럽게 변화시키는 커브를 정의하고, 이를 기반으
상호작용을 하기 위해 Interactable이라는 Layer를 만들어주자.이후 Assets 밑에 Scriptable Object라는 폴더를 생성하고, Scripts와 Datas 폴더를 만들어준다. 이후 Scripts에 itemData.cs 파일을 만들어 준다.이후 작성
\_UI 하위에 Canvas를 하나 더 추가하여 InventoryCanvas라고 해준다.그리고 InventoryCanvas는 플레이어가 실제로 클릭을 해야하기 때문에 Graphic Raycaster가 필요하다. 생성시 자동으로 추가가 되어서 생성이 되긴 하지만, 혹시
장착 카메라 준비하기 장착 아이템을 위한 Layer를 추가하자! Resource와 Equip Layer 2개를 추가했다. 장착 카메라? 장착 중인 아이템이 우리 시야에 고정되기 위해서는 Camera의 하위 객체로 추가해줄 필요가 있다. 그러나, MainCamera에
빈 오브젝트 Resource_Tree를 만든다. 이후 준비된 에셋에서 Tree를 가져와 밑에 넣어준다.Resource_Tree의 Layer를 Resource로 변경해주자. 마지막으로 Box Collider를 추가하여 사이즈를 맞춰준다.Resource_Tree의 피격 처
행동을 위한 스테미나 사용을 구현해보자!EquipManager에서 공격 버튼 입력에 대한 이벤트를 뿌리면 EquipTool에서 호출받아 공격을 처리한다. 그리고 공격에 대한 OnAttackInput은 Equip에 선언되어 있기 때문에, 공격 시 스테미나를 사용하도록 수
AI 네비게이션(AI Navigation)은 인공지능이 게임이나 시뮬레이션 등 가상 환경에서 이동하는 방법을 결정하는 기술이다. 주로 3D 게임에서 캐릭터나 NPC가 지능적으로 이동하도록 만들어진다. 이를 위해 AI 네비게이션 시스템은 지형, 장애물, 목표 지점 등을
포스트 프로세싱(Post-Processing) 포스트 프로세싱(Post-Processing)은 Unity나 다른 게임 엔진에서 화면에 렌더링된 이미지에 추가적인 효과를 적용하는 기술입니다. 이 기술을 사용하여 게임 화면에 색상 보정, 블러 효과, 광학 효과 등을 적용하
Player에게 AudioSource 컴포넌트를 추가해준다.그 다음엔 Footsteps.cs를 만들어주고 Player에게 추가해준다.마지막으로 Unity로 돌아와서 Footsteps.cs에 데이터들을 넣어주면 된다.빈 오브젝트를 만들어 MusicZone이라 이름을 변경
URP란 Unity의 Universal Render Pipeline의 약자! 스크립트 가능한 렌더 파이프라인이다.Cross-Platform Compatibility : URP는 Unity가 지원하는 모든 플랫폼에서 동작하도록 설계되었다. 이는 모바일, 데스크톱, 콘솔
유한한 상태 내에서 어떤 특정한 조건에 맞춰서 동작들을 계속 취해나갈 수 있도록 구성하는 것.FSM은 유한 상태 기계를 나타내는 디자인 패턴.상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다.상태(State) : 시스템이 취할 수 있는 다양한 상태를 나타
프로빌더(ProBuilder) 프로빌더는 Unity의 유용한 에셋 중 하나로, 개발자들이 빠르고 쉽게 3D 모델을 만들고 편집하는 도구이다. 기본적으로 Unity에서 제공하는 기능으로, 유료 라이센스가 필요 없어 무료로 사용할 수 있다. 프로빌더의 주요 기능 및 특징
Player Scriptable Object 만들기 플레이어의 상태 머신에서 사용하기 위한 플레이어의 데이터를 Scriptable Object로 만들어보자. 아래와 같이 폴더들과 스크립트들을 만들어 준다. PlayerSO PlayerGroundData Playe
PlayerStateMachine 수정하기 이동 상태 Walk와 Run을 추가해주기 위해 PlayerStateMachine에 추가해주자. 각각 PlayerWalkState와 PlayerRunState를 선언하고 PlayerStateMachine 생성자에서 new를 통
게임에서는 2가지의 통신 프로토콜을 많이 사용한다.단방향 통신 : 클라이언트가 서버에 요청을 했을 때 응답을 주는 것. Http, Https → 웹 통신양방향 통신 : 클라이언트와 서버가 서로 연결을 시켜놓고 필요에 따라 서로 정보를 교환하는 것. TCP / UDP →
🎥 시네머신(Cinemachine) 시네머신(Cinemachine)은 Unity에서 제공하는 고급 카메라 시스템이다. 이 시스템은 게임, 영화, 애니메이션 등에서 다양한 카메라 워크플로우를 지원하며, 카메라 이동, 추적, 매핑, 블렌딩 등을 쉽게 구현할 수 있도록
플레이어가 공중에서 지면을 향해 떨어지도록 만들어보자.현재 Player는 Rigidbody를 사용하고 있지 않기 때문에 Player가 힘의 영향을 받도록 스크립트 처리를 해주자.Player에서 ForceReceiver를 활용할 수 있도록 선언해주자.위에서 만든 Forc
현재 확인해보면 플레이어가 절벽에서 떨어질 때 애니메이션이 적용이 안되는 것을 확인할 수 있다.그 이유는 아직 Ground에서 Air 상태로 전환되는 것을 구현하지 않았기 때문이다.정상적으로 낙하가 되는 모습.
컴포넌트에 데이터를 연결, 인스펙터창을 통해 연결하는 방법.사용할 리소스들을 넣어놓고 경로를 찾아 Resources.Load를 통해 사용.경로를 사용하여 가져오기 때문에(문자열), 외부에서 세팅한 값으로 불러오기 쉽다. 그러나 에셋의 경로가 바뀌면 경로도 수정해야 한다