개발일지/스파르타 코딩클럽 부트캠프
-
[TIL] 14주차 5일 트러블슈팅 ( State가 많이 늘어나면서 생긴 문제들 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 19. 22:19
최종프로젝트 진행중정말 많은 버그가 있었지만, 애니메이션 관련된 버그는 진짜 다 부수고싶다..오늘은 그에대한 트러블 슈팅이다. 캐릭터가 마나가 부족할 때 스킬을 못쓰게 하는 방법 이 문제는 애니메이션 관련은 아니지만 맞기도한게 스테이트 머신으로의 진입을 막아야 하는데스킬마다의 스테이트는 다른데 마나도 달라서 고민하던 차에if(stateMachine.Player.healthSystem.CurrentMana 진입을 막는것이 아닌 아예 스킬 애니메이션 실행 전에 IdleState로 돌려버리는 방법으로해결했다. 스킬 슬롯 스왑문제 protected virtual void AddInputActionCallbacks() { if(UIManager.Instance.onUI) return; if (sta..
-
[TIL] 14주차 4일 트러블슈팅개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 18. 19:29
여러가지 버그 수정 이동중에 메인메뉴 UI 키면 계속 달리는 버그public virtual void Update(){ Move(); if (UIManager.Instance.onUI) { stateMachine.MovementSpeedModifier = 0f; StartAnimation(stateMachine.Player.AnimationData.IdleParameterHash); }}스테이트머신에 UI가 켜져있는 상태라면플레이어의 속도를 0으로 만들고, Idle상태로 돌아가게끔 설정하여 해결했다. 스킬 사용중에 다른 스킬을 누르면 멈추는 버그 체크포인트에 상호작용 시 모든 인풋이 안들어가게 하기 protected virtual void AddInputAct..
-
[TIL] 14주차 3일 기술면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 18. 19:18
설명 문제 💡 질문을 직접 설명해보고, 모르는 부분이 있다면 알아보는 시간을 가집시다.LinkedList의 특성을 설명해주세요.LinkedList는 언제 사용하면 좋은 자료구조인가요? 반대로 언제 사용하기 불리할까요?LinkedList를 본인의 프로젝트에 적용해본 경험을 말해주세요.1번 답 :LinkedList란 유연하게 크기 변경이 가능한 자료구조를 말한다. 데이터를 자유롭게 넣고 뺄 수 있는 장점이 있고,집합의 단위를 리스트, 각 요소의 단위를 노드라고 한다. 하지만 임의 접근이 불가능해서 N번째 노드에 접근하기 위해서는처음부터 순차적으로 접근해야한다. 2번 답 :데이터 순서가 중요한 경우 : 데이터 삽입/삭제 순서를 유지해야 하는 경우 중간 삽입/삭제 빈도가 높은 경우 : 데이터 목록의 중간 부분..
-
[TIL] 14주차 2일 기술면접 대비 C# 심화 문법개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 17. 09:04
다음 코드에서 제네릭을 사용한 부분을 식별하고, 해당 코드가 제네릭을 사용하지 않았을 때 발생할 수 있는 문제점에 대해 설명하세요.Box클래스에서 제네릭을 사용했다. 제네릭을 사용하지 않았다면 같은 내용의 매개변수만 다른 함수를 모두 새로 만들어야하는 문제점이 발생할 수 있다. 2. 아래 코드가 어떤 기능을 하는지, 어떤 방식으로 동작하는지 간단하게 설명해주세요.public static T Max(T a, T b) where T : IComparable { return a.CompareTo(b) > 0 ? a : b; } a와 b의 값을 비교해서 a가 더 크면 a, b가 더 크면 b를 반환한다.제네릭으로 선언된 a와 b를 비교하되, IComparable에서 파생된 클래스인 경우에만 사용 가능하도록whe..
-
[TIL] 13주차 5일 기술 면접 대비 ( 가비지 컬렉터, 박싱 언박싱 주의점 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 16. 09:01
using System;public class Logger{ public string LogMessages { get; private set; } public Logger() { LogMessages = string.Empty; } public void Log(string message) { LogMessages += message + "\n"; }}public class Program{ public static void Main() { Logger logger = new Logger(); for (int i = 0; i 1. 위의 코드가 문제가 되는 이유를 메모리 관점에서 설명해주세요. s..
-
[TIL] 13주차 4일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 15. 20:57
using System;// 상위 클래스 Apublic class A{ public virtual void Display() { Console.WriteLine("Class A Display"); }}// 클래스 B는 클래스 A를 상속받음public class B : A{ public override void Display() { Console.WriteLine("Class B Display"); }}// 클래스 C는 클래스 A를 상속받음public class C : A{ public override void Display() { Console.WriteLine("Class C Display"); }} 1. 위와 같은 ..
-
[TIL] 14주차 1일 DOTween개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 15. 20:32
플레이어 제작을 어느정도 마치고UI제작에 참여했다. 스킬슬롯 UI를 만들었는데DOTween을 이용하여 만들었다. DOTween은 일종의 에디터 에셋인데 원래는 코루틴으로 여러 연산을 통해서 만들어야하는UI의 쿨타임 표시, 부드러운 움직임 등을 편하게 만들어주는 에셋이다. public class SkillUI : UIBase{ Player player; Sprite icon; Image image; SkillUI skillUI; public List skillList; public List skills; public GameObject firstSlot; public GameObject secondSlot; private float skillSwapSpeed..
-
[TIL] 13주차 3일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 10. 20:35
다음 struct 코드와 class 코드의 결과를 예측해보고, 이유를 생각해봅시다. public struct Point{ public int X; public int Y; public Point(int x, int y) { X = x; Y = y; }}public class Program{ public static void Main() { Point point1 = new Point(10, 20); Point point2 = point1; point2.X = 30; Console.WriteLine("Point 1 X: " + point1.X); Console.WriteLine("P..