개발일지/스파르타 코딩클럽 부트캠프
-
[TIL] 16일차 5일 유니티 데미지 텍스트 만들기 ( 제네릭 오프젝트 풀, DOTween )개발일지/스파르타 코딩클럽 부트캠프 2024. 8. 2. 20:12
유니티 2D 데미지 텍스트 띄우기 제네릭 오브젝트 풀 만들기 일단 데미지 텍스트도 그냥 Instantiate와 Destroy를 하면 당연히 가비지 컬렉터가 쌓여서게임 최적화에 좋지 않다.그래서 오브젝트 풀을 만드는데여러가지 타입을 받아서 사용할 수 있게 제네릭 오브젝트 풀을 만들었다.구글링은 위대하다. public class OBJPool : MonoBehaviour where T : Component{ [SerializeField] protected T[] mOrigin; protected List[] mPool; private void Start() { mPool = new List[mOrigin.Length]; for (int i = 0; i (); ..
-
[TIL] 16일차 2일 기술면접 대비 ( 유니티 생명주기 )개발일지/스파르타 코딩클럽 부트캠프 2024. 8. 1. 09:59
확인 문제💡 질문에 답해보고 직접 확인해보는 시간을 가집시다. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?Update의 호출주기에 영향을 주는 것은 무엇일까요?FixedUpdate의 호출주기에 영향을 주는 것은 무엇일까요?Awake와 Start, OnEnable의 호출 순서는 어떻게 될까요?1, 2, 3 공통 답변Update함수 : Update함수는 유니티의 메인 게임 루프에서 매 프레임마다 호출되는데, Time.timeScale을 0으로 하면게임의 진행 시간과 관련된 모든 계산이 중지된다. 그 결과 Update함수도 호출되지 않는다. 이는 Time.time과 Time.deltaTime이 0이 되기 때문에, 프레임 간..
-
[TIL] 16주차 3일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 8. 1. 09:59
💡 질문에 답해보고 직접 확인해보는 시간을 가집시다. InvokeRepeating을 통해 반복 실행 중인 메서드는 오브젝트를 비활성화하면 멈출까요?Coroutine을 통해 반복 실행 중인 메서드는 오브젝트를 비활성화하면 멈출까요?다음 Coroutine 코드의 성능 상 문제는 무엇이 있을까요? (Hint : 메모리)IEnumerator Fade(){ Color c = renderer.material.color; for (float alpha = 1f; alpha >= 0; alpha -= 0.1f) { c.a = alpha; renderer.material.color = c; yield return new WaitForSeconds(.1f); }..
-
[TIL] 16일차 1일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 30. 09:49
설명 문제💡 질문을 직접 설명해보고, 모르는 부분이 있다면 알아보는 시간을 가집시다. Queue의 특성을 설명해주세요.Queue는 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?Queue를 본인의 프로젝트에 적용해본 경험을 말해주세요.Queue의 특성을 설명해주세요.추가, 제거가 O(1)만큼 걸립니다. 선입 선출의 방식이기에 임의 접근이 불가능합니다.Queue는 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?반대로 선입후출의 방식에서는 사용이 어렵고 임의 접근을 해야하는 데이터에서는 사용하기 안좋습니다.선입 선출의 방식이기에 일을 들어오는 순서대로 처리를 해야하고 앞에 내용을 처리할 때 뒤에 내용을 추가하거나 대기 시켜야할 때 좋습니다. 예를 들어 네트워크 라..
-
[TIL] 15주차 5일 오류개선개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 26. 19:41
발생한 문제 스킬을 보유하고 있지 않을 때 스킬을 사용하면 플레이어가 멈추는 문제 이 부분은 내가 따로 예외 처리를 안해줘서 생긴 문제였는데public override void Enter(){ Debug.Log("start1Skill"); stateMachine.Player.isSkillActive = true; base.Enter(); if(stateMachine.Player.firstSkillSlot == true) { if (stateMachine.Player.playerEquipSkill[0] == null) return; index = 0; } else { if (stateMachine.Player.playerEqu..
-
[TIL] 15주차 4일 트러블슈팅 FSM을 사용하며 일어난 문제들개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 26. 10:11
FSM을 사용하면서 일어난 다양한 문제들문제State간의 전환이 안될 때가 있는 경우각 State의 애니메이션 간의 전환이 매끄럽지 않은 경우State의 강제적인 변환으로 인해서 일어난 버그들 ( 캐릭터가 굳어 버린다던가 )State간의 전환 사이에 1프레임 씩 다른 State가 섞이는 문제State의 전환에 따라서 물리적인 문제가 발생하는 경우State의 조작과 내부로직이 함께 작동하지 않고 따로 노는 경우State를 마구마구 변환 시키다 보면 발생하는 문제 ( 스킬을 막 누르고, 전환을 막 누르다 보면 굳음 )기존 접근저 버그들이 한번에 모두 발생한 것이 아니기 때문에버그가 발생할 때마다 그에 맞은 어느정도 하드코딩으로 대처를 했었다.예를 들면 State간의 전환이 안될 때는 미리 만들어둔 Chang..
-
[TIL] 15주차 3일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 24. 20:29
설명 문제 💡 질문을 직접 설명해보고, 모르는 부분이 있다면 알아보는 시간을 가집시다. Stack의 특성을 설명해주세요.Stack은 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?Stack을 본인의 프로젝트에 적용해본 경험을 말해주세요.Stack의 특성을 설명해주세요.스택(Stack)은 후입선출(LIFO) 방식의 자료구조로, 요소는 한쪽 끝에서만 삽입되고 삭제된다. 연산이 단순하며 빠르다. 함수 호출 관리, 괄호 검사, 깊이 우선 탐색 등 다양한 용도로 사용된다. 메모리를 효율적으로 사용하며, 요소에 무작위 접근은 불가능하다.Stack은 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?불리한 경우 : 무작위 접근이 필요할 때, 순서가 중요할 때, 대용량 데이터를..
-
[TIL] 15주차 2일 타임라인을 활용한 컷씬 제작개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 23. 18:54
최종프로젝트를 진행하면서 컷씬 같은 연출을 하고싶다는 생각을 많이 했었는데당장 구현하고 리펙토링해야할 것들이 너무 많고 계속 생겨서미루고 미루다가 오늘 폴리싱 작업 중에 인트로 컷씬을 제작해봤다. 컷씬 제작을 위해서 알아본 결과 컷씬은 유니티의 TimeLine 기능을 활용하여 만들 수 있다는 걸 알게 되었다. 타임라인 활용하기먼저 빈 오브젝트를 하나 만든 후 Playable Director컴포넌트를 추가해준다. 그리고 TimeLine 폴더를 만들고 윈도우에 Sequencing을 보면 Timeline을 생성할 수 있다. 먼저 Timeline의 구성을 알아보자 애니메이션 트랙(Animation Track): 캐릭터 애니메이션을 제어하는 데 사용합니다.오디오 트랙(Audio Track): 배경 음악이나 효과음..