장르 : 1인칭 fps, RPG, RTS특징 : 멀티플레이어였으면 좋겠습니다.그 이유는? : 장르는 어떤 것이든 상관이 없지만 지금까지 멀티 플레이어를 지원하는 게임을 한 번 밖에 만들어보지 못했습니다. 한학기동안 진행된 프로젝트였기 때문에 많은 오류들을 수정하지 못
협업을 위한 Git 특강 1회차 참여23조 팀명 정하기(선동과날조), 데일리 스크럼(자기소개)

에셋 스토어의 sale의 Publisher of the Week 탭 배너에서 매주 바뀌는 에셋을 무료로 다운받을 수 있다.아래의 사진에서 가장 위에 있는 에셋은 코드를 사용해 무료로 다운받은 에셋이다.에셋 스토어 외 에셋을 받을 수 있는 사이트 itch.io o
강의 2주차 완료 강의 2주차 숙제 제출 팀 노션

팀 노션 스크럼 작성2주차 강의 숙제 제출최종 완성본 Square 오브젝트가 스크린 밖으로 나가면 파괴되도록 수정Square.cs 의 Update 함수에 다음 코드 추가y값이 -5.5f 미만이거나 x의 절댓값이 3.5f를 초과하면 파괴
팀 노션 스크럼 작성19:40 - 튜터님 1대1 면담3주차 강의 마무리 & 숙제하기3주차 숙제 해적 고양이 추가하기에서 레벨이 4가 되어도 해적고양이가 한마리도 나오지 않음.해적 고양이의 애니메이션이 해적 고양이1의 이미지 뒤에서 움직임.해적 고양이1의 이미지가 앞에
팀 노션 스크럼 작성10시 프로그래밍 기초 주차의 발제14시 C+ C+ 1주차 강의 숙제 마무리 단계새롭게 배운 내용주석 단축키 ctrl + k c, ctrl + k u...
팀 노션 작성 2주차 강의 숙제 제출 3주차 강의 듣기 8시 - 첫 팀 회고 진행 텍스트RPG 진행 상황, 구현 공유 텍스트RPG를 진행하지 않아 공유 사항 없음 3주차 숙제 진행 중( 최대한 오늘 중으로 3주차 숙제를 끝내고 내일부터는 텍스트RPG를 만들어야 할 것 같음.

팀 노션 작성3주차 강의 숙제(미완성, 추후에 더 해볼 예정)4주차 강의 듣기개인 과제 - 텍스트 RPG(스파르타 던전)간단하게 구현 완료필수 구현 요소들을 기한 내에 모두 만들지는 못할듯현재 구현 정도program.cs에 이름 입력, 메뉴, 직업 선택을 만들고 임시로
인터페이스 열거형 정리 예외처리(final), 열거형 정리 델리게이트, 람다, LINQ 정리 개인과제 총 정리
팀 회고 팀 노션 스크럼 작성 10:00~11:00 - 팀 프로젝트 발제 강의 11:00~13:00 - 덜 들은 강의 듣기 (4주차 마무리 + 5주차 강의) 14:00 - 팀 개인 학습 진척도 공유

팀 노션 스크럼 작성9:30~11:00 팀 회의팀 프로젝트 진행중간중간 질문을 통한 소통핵심코드List items = new List(); 파일을 읽어서 리스트로 출력하기 위해 리스츠 만들어두기첫 번째 줄은 값에 대한 설명이므로 읽지 않도록 false값을 줌.csv파
임시 파일 weapon.csv 파일을 입출력하는 부분에서 출력이 정상적으로 되지 않음.\-> 포멧에 문제가 있는 것파일이 UTF8로 되어 있는데 UTF16으로 받아오도록 되어있는듯 해서 이를 바꾸는 작업이 필요할 듯 함.Utf8.FromUtf16()을 활용\-> 이 방
팀 노션 작성9:30 ~ 10:30 팀 회의 진행(파트 분배 및 상황 파악)팀 프로젝트 진행다른 클래스에서 퀘스트에 대한 정보를 불러올 수 있도록 GetCurrentQuest함수 추가플레이어 정보를 로드하는 Load 함수에 questId를 받아올 수 있는 quest변수
팀 프로젝트 마무리 및 발표준비발표자료 제출14:00-15:40 프로젝트 발표밍글링? - 1000포인트!팀 프로젝트 수정할 점예외처리 주의할 것\- 마을, 상점, 보관함 등 예외처리가 안되어있어 지정되어있지 않은 입력이 들어왔을 때 게임이 종료되는 문제가 있음.게임매니
새롭게 배운 개념PPU(Pixel Per Unit): 유니티의 크기 단위인 1unit이 몇 pixel로 변환되는지를 정하는 것. \- 한 프로젝트의 PPU는 모두 통일되는 것이 좋지만 다르게 정하는 것도 가능하다. \- 다만, 다르게 정할 경우 픽셀 게임에서
Invoke(invoke라는 용어의 개념이 머리에 잘 안들어와서 하는 정리) invoke: 언급하다, 들먹이다. 특정 스레드에서 실행되는 메서드를 호출할 때 사용 사용 대리자(메서드를 참조할 수 있는 객체) 선언 > MyDelegate myDelegate = SomeMethod; Invoke로 대리자 메서드 호출 > public ...

Sparta2DTopDown ~12강 강의 듣고 따라만들기LayerMask : 레이어를 지정하여 특정 레이어들 간의 상호작용을 만들 수 있다? \- 필터처럼 걸러서 조건을 만족하는 특정 레이어에 기능을 추가하는 느낌으로 사용 \- 레이어의 비트 필드를 조작하기 위해
shift + F12 : 어디서 참조하고 있는지 알 수 있음 (참조라는 글씨를 눌러도 알 수 있음)"FindGameObjectWithTag"는 지정된 태그와 일치하는 첫 번째 활성 GameObject를 반환합니다. 이 메서드는 특정 태그를 가진 오브젝트를 빠르게 찾을
개인과제 마무리해결되지 않은 문제\- 캐릭터가 이동되지 않는 문제 : 키보드 입력과 마우스 입력은 정상적으로 받아지는 듯 함. : 키보드를 눌렀을 때 걷는 애니메이션이 작동함. : 마우스의 위치에 따라 캐릭터 좌우반전이 가능함.깃허브에 커밋하는 것을 잊고 있다가 마지막
문제은행 - 코딩 테스트 Day1 ~ Day2 두 수의 차객체지향 프로그래밍 특강\- 객체 간의 관계를 중점적으로 만드는 것객체지향의 4가지 키워드\- 캡슐화, 추상화, 상속, 다향성캡슐화를 하기 위해 추상화를 진행하고 상속을 통해서 다향성을 가진다.상속관계, 의존관계
역할 분담\- 메인UI 구성 : 타이틀 -(게임시작)-> 새로운시작,스테이지 선택 -> 게임 화면 -> 게임오버 OR 클리어게임이 최초 실행시 타이틀 화면에서 클릭,아무 키보드 입력시 스테이지 선택 씬으로 전환처음부터,스테이지 선택 - 스테이지는 1-1,2,3/2-1,
토글
최고 점수 저장PlayerPerfs : 소규모의 데이터 저장 가능 But 보안 취약 \- 값 설정 PlayerPrefs.SetInt("키", 값); → 정수 저장PlayerPrefs.SetFloat("키", 값); → 실수 저장PlayerPrefs.SetStrin
오브젝트 풀 참고 : https://whiny.tistory.com/17 IEnumerator https://russellstudio.tistory.com/40
종료로직전처리기 지시어(#if, #else, #endif)

Force : 지속적으로 일정한 힘을 적용Acceleration : 가속도를 적용Impulse : 짧은 시간에 순간적인 힘을 적용(점프 - 땅을 순간적인 힘으로 민다.)VelocityChange : 변화하는 속도를 적용(걷기 -> 달리기)\- Rigidbody.AddF
InputAction.CallbackContext에서 context.phase는 현재 입력 액션의 상태를 나타낸다.InputActionPhase 열거형에서 사용할 수 있는 상태Waiting : 입력 액션이 활성화되었지만 아직 트리거되지 않은 상태 - 입력을 기다리는 중
\- Pool에서 List와 Dictionary 차이1\. List : 하나의 풀로 관리 -> 두개의 오브젝트에서 각각을 관리(bulletPool, monsterPool)\- 단일 타입을 관리한다.2\. Dictionary : 두개의 풀로 나누어 관리 -> 하나의 오브

Mathf.Clamp vs Mathf.Repeat LateUpdate https://velog.io/@kwontae1313/Unity-Addforce%EC%99%80-velocity%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%95%8C%EC%95%84
SceneAsset 타입 변수로 씬을 인스펙터 창에서 드래그앤드롭 가능하다.
: 그래픽 성능과 품질 간의 균형을 최적화하여 여러 플랫폼에서 일관된 렌더링 품질을 제공: 고성능이 필요한 환경이나 모바일 환경에서 주로 사용특징1\. 크로스 플랫폼 최적화: 모바일, VR, AR, PC, 콘솔 등에서 균일한 품질의 렌더링을 제공한다.2\. 모듈형 설계
\- 직렬화란?오브젝트 데이터를 저장하거나 전송할 수 있도록 데이터를 연속적인 형식으로 변환하는 과정.게임을 중지하고 다시 시작해도 데이터가 유지되도록 데이터를 직렬화시켜서 파일로 저장한다.PlayerPrefsPlayerPrefs 활용예시 코드데이터를 nickname
포탈 모작 스크립트 수정: 기존 URP 사용 -> URP 사용 X: 하나의 카메라가 아닌 각 포탈에 카메라를 위치시켜 총 2개의 카메라를 사용PortalCamera.cs
\- 포탈 간의 이동을 구현할 때 자연스러운 이동을 위해 이동되는 위치를 포탈과 겹쳐 두었는데 이로인해 이동을 했을 때 들어왔던 포탈과 나가는 포탈 간의 이동이 제대로 되지 않는 문제가 있었음.해결 방법PortalableObject스크립트에서 객체가 포탈 내에 있는지
체크리스트카메라는 플레이어의 오른쪽, 뒤쪽, 위쪽에 위치이동을 할 때 플레이어가 움직이는 방향으로 회전(임시로 Input.GetKeyDown 사용)키를 눌렀을 때 해당 방향으로 유니티에서 2칸씩 이동하도록 구현움직이는 방향으로 플레이어가 회전하도록 구현\-> 이렇게 했
충돌기능

내일: 역할 분담 , 깃허브 생성, 프로젝트 컨셉, 에셋 찾기
: 전체 볼륨과 배경음, 효과음을 각각 따로 조절하기 위해 Audio Mixer 사용UI에 Slider 추가AudioMixer를 만들고 Master, BGM, SFX 를 추가하고 각각의 Attenuation의 Volume을 우클릭하여 Expose 'Volume (of
씬이 전환될 때 효과를 주어 부드럽게 넘어가도록 효과 추가SceneChanger 오브젝트의 자식으로 FadePanel 추가SceneChanger 오브젝트의 SceneChanger 컴포넌트 fadeImage에 FadePanel 추가플레이어가 일정거리 안에 감지가 되면 화
스크립트 수정 - PlayerStats.cs의 Hit 메서드 활용 (플레이어에 데미지 적용)스크립트 적용TrapTileMapCollider 추가Trap.cs 추가Collider가 필요한 부분에 타일을 그리고 Tilemap Collider 2D 추가(필요에 따라 Rigi
씬이 넘어가더라도 볼륨이 유지되도록 수정기본값을 정해두고 변경값은 저장스테이지 이름을 JSON으로 저장 \+ 스크립트로 AudioSource를 가져오고 AudioMixer를 활용하나의 씬에서 경우에 따라 다른 음악 재생(코드의 일부)
IInteractableBaseItem.csHandheldItem.csItemData.csTabletItem 등 HandheldItem의 아이템
참고자료 https://github.com/sturdyspoon/unity-movement-ai https://youtu.be/mjKINQigAE4?si=lBTplBeF36Vmzoyr https://youtu.be/bqtqltqcQhw?si=vsX2F9HNGAYcfHj
파티클 시스템(Particle System) 수 천개의 작은 2D 또는 3D 오브젝트들을 관리하고, 그들의 동작과 생애를 제어하는 것
처음에는 투명상태에서 움직임이 멈춰있는 상태몬스터를 감지하면 몬스터가 움직이기 시작(IDetectable 연결)플레이어 감지하고 바라보기
임시로 디버깅하면서 하드코딩으로 땜빵 버그잡기..리팩토링 필요!!!

.

언어 추가초당 배터리 감소맵에 배치된 배터리들은 각각 자신의 충전량을 가지고 있음.데바데의 판자같은 아이템Bookshelf(임시)다른 아이템들과 동일하게 태블릿으로 감지하면 나타남상호작용을 통해 넘어뜨리면 길을 막고 플레이어는 지나갈 수 있지만 적은 지나가지 못함.적이

문제 상황 : 파괴되는 오브젝트(FallingObstacleObject)가 감지된 후 파괴될 때 Detector의 List에서 Null이 생겨 Count가 변하게 됨...?리스트 반복문을 뒤에서부터 돌면서 파괴된 아이템 정리\+ 파괴가 되어 Null이 되었음에도 Nul
양손 시스템총 인벤토리가 2칸 (왼손, 오른손) bool변수 isHeld 사용 (임시 테스트용)
다른 기능들이 추가되며 Monster가 상속받는 IDetectable의 사용법이 달라졌고 그로인해 Monster가 제대로 움직이지 않게 되었음.Revealed, Invisible 수정Tofu(Monster)의 Rigidbody - Is Kinematic true: 멈춰
코루틴을 사용하여 Stun 상태가 일정시간 지속된 후 다시 Wandering 상태로 돌아옴.IEnumerator SetStun()플레이어에게 특정 공격을 받았을 때 몬스터가 처음 스폰되었던 위치로 돌아감.ResetToSpawnPoint()플레이어에게 특정 공격을 받았을
path.corners:NavMesh 경로의 각 꼭지점(코너)들이 저장된 배열경로의 시작점, 끝점, 그리고 경로 상의 굴곡점(코너)이 포함path.corners.Length < 2는 경로 상에 2개 미만의 코너(꼭지점)가 있음을 의미합니다.경로에 코너가 2개 미만
기능 별 메서드들을 추가하여 수정Vector3 GetSafeFleeDestination : 도망 위치 계산Vector3 GetRandomDirection : 랜덤 방향 계산bool TryGetValidNavMeshPosition : 유효한 NavMesh 위치 확인boo
FleeMonsterController: 공격을 받으면 플레이어를 등지고 일정 각도 범위 내의 가장 먼 곳으로 도망을 친 후 제자리로 돌아가 투명화되는 몬스터도망칠 공간이 충분하지 않으면 바로 제자리로 순간이동을 함.\-> 도망칠 공간이 없을 경우 첫 스폰 위치로 도망
문을 열었을 때는 NavMesh로 길을 통과할 수 있고, 닫혔을 때는 지나가지 못하도록 DoorSteel Prefab 수정열고 닫히는 문 파츠에 NavMeshObstacle 추가 -> Carve 활성화PlayerState 클래스 생성 - Die 메서드 추가Attacki

‘공장’이라는 특수 오브젝트 지정하나의 레벨에서 ‘제품’의 생산과 관련된 많은 세부 사항을 캡슐화공통의 인터페이스나 기본 클래스를 따르는 경우제품에 고유의 제조 로직을 더 포함하여 공장 자체에서는 보이지 않도록 할 수 있음 \-> 확장성이 높아짐장점많은 제품을 설정할

메서드를 직접 호출하는 대신 ‘커맨드 오브젝트’라는 하나 이상의 메서드 호출을 캡슐화커맨드 오브젝트를 대기열이나 스택 같은 컬렉션에 두면 오브젝트의 실행 타이밍을 제어할 수 있음 (잠재적으로 지연하거나 실행을 취소 가능)행동을 포함할 일반 오브젝트가 필요커맨드 오브젝
몬스터가 천장에 붙어 이동하는 현상 수정몬스터 스크립트와 몬스터 다리 스크립트의 레이 부분 수정layerMask를 Ground로 한정Idle 상태일 때 진동하는 오류 수정LookingAtPlayerUpdate가 계속해서 호출되며 플레이어의 위치를계속해서 수정하며 진동하
Material 수정새로운 Material(MimicMat) 생성 후 Sphere 부분과 Leg 부분의 Material 통일죽음 판정콜라이더 내의 일정 거리 안에 있을 시 죽음\+ Boss Asset(Mimic) 최적화죽음 판정
유한 상태 머신(Finite State Machine, FSM)은 컴퓨터 과학에서 널리 사용되는 설계 패턴으로, 시스템의 상태와 그 상태 간의 전환(Transition)을 정의하는 데 사용된다. FSM은 복잡한 로직을 단순화하고, 코드의 가독성을 높이며 유지 보수를 용
1. InGameUI 인게임 ui에 상호작용 텍스트 출력 인벤토리(손에 든 아이템)에 변동이 있을 때마다 적용 엑셀파일 ItemTable의 ActionText 사용 > InGameUI.cs > > Init()에 함수 연결 > >PlayerInventory.cs > \-
1. CowardMonster 수정 기존의 CowardMonster 감지가 되어 나타나면 일정 시간동안 랜덤 방향으로 이동한다. 총 도망가는 시간에서 마지막 사라지는 시간동안 알파값을 조정하여 fade효과를 준다. 플레이어를 공격하지 않는다. -> fad
구덩이에 빠지면 죽음 판정 추가(코드는 너무 간단해서 생략)트리거 사용Player의 Die 사용 (GetComponent)\+ 구덩이에 빠져 떨어질 때 UI fade 효과 -> UI에서 처리해야 함.(미완)mat 추가shader 스크립트 추가빈 오브젝트에 스크립트 추가
문제 상황: 한가지 동작만 수행하는 CowardMonster에서 몬스터가 한 사이클을 수행하고 다시 스폰자리로 돌아오는 과정에서 Controller가 제대로 작동을 하지 못하여 Idle(정지) 상태임에도 MonsterFleeing(몬스터가 도망) 상태의 사운드가 재생이
애니메이션 상태 추가 - KillKill 애니메이션이 나온 후 실제 죽음 처리가 이루어지도록 코루틴 사용.애니메이션을 mesh에 추가해두어 실제 위치와 mesh가 분리되는 현상.mesh에 있던 애니메이터를 상위로 올림.Ethereon(StunMonster) 상태별 애니

Idle: 감지되지 않은 상태(투명화) - 애니메이션 없음Walk: 랜덤 Wandering 상태 - 일반 걸어다니는 애니메이션Attack: 플레이어를 감지하고 쫓는 상태 - 빠르게 움직이는 애니메이션Flee: 플레이어의 공격을 받고 stun 상태 - 이동없이 쓰러지는

이름 수정: InstantTofu -> RunmaulAnimation 추가면접 준비자기소개기존 준비했던 질문들 (C---추후 수정 사항어두운 곳에서 죽으면 괴물 처형 모션이 안보임. 그냥 괴물이 안보임.가끔 죽을 때 플레이어가 앞으로 엎어져서 바닥보고 죽음.괴물 킬사운

죽음 판정 수정 - OnCollisionEnter 사용애니메이션 수정현재 애니메이션이 Idle에서 변경되지 않는 문제가 있음. (수정 예정)2025.1.7 ~ 2025.1.14 예정링크 : https://forms.gle/VWMSSUGK1keknjaDA
안보이는 상태에서 플레이어와 접촉 시 투명화를 풀고 죽이는 애니메이션 추가애니메이션에 의해 플레이어와 몬스터가 서로 밀리는 현상 - isKinematic 활성화Unreveal 애니메이션 상태 추가MonsterAnim.csStunMonsterKillScene.cs추후 수

Ethereon, Runmaul 애니메이션 조정기본 조작 설명 텍스트 추가추후 수정 사항1\. 스테미나 바 에셋2\. 로고 크기 조정3\.
Monster AnimationMonster Sound(FSX, BGM)Stun & Flee MonsterKillScene 주석 삭제BossMonster(Abberation) Light 추가StunMonster 공격 감지 범위 조정InGameUI 오브젝트 크기 및 위치
인게임 가이드 용 텍스트 추가 (ex. 문(뒤쪽에서 상호작용 했을 때) - 반대쪽에서만\-> InGameUI 가장 위쪽에 추가보스 몬스터 퍼즈 때 멈추지 않는 현상 - 아직 모르겠음...한 손 물건을 두 개 들었을 때 하나의 인벤토리(한 손)에 두 개의 아이템이 겹쳐들
벽돌 - 버튼 열리는 문이 거리가 좀 있으면 어디가 열린건지 모르겠음 - 미정조작법 - 마우스 우클릭 후 좌클릭 몰랐음(좌클릭 만으로 되면 좋겠음) - 미정조작법 - 사진기 먹고 어디에 쓰는지 모름 (수정 예정)세이브포인트 - 어차피 죽으면 갔던 길 기억하고 스피드런
설정창 적용CowardMonster pause 적용버튼 콜라이더 수정몬스터 reveal 애니메이션 & 사운드 추가