전체 글
-
9/25 - 특강(디자인 패턴) & 팀 프로젝트 시작TIL 2023. 9. 25. 22:01
이번 팀 프로젝트는 3D로 진행할 예정이다. 내가 맡은 파트는 아이템 관련 전반적인 부분이다. 하는 김에 인벤토리 부분도 내가 구현하기로 했음 오늘 특강은 디자인 패턴이였다. 디자인 패턴이란? 코드를 짜다보면 발견되는 / 유지 보수성이 좋은, 확장성이 좋은 같은 패턴의 코드들을 뜻함 디자인 패턴 - 전략패턴 특정한 작업을 독립적으로 정의하고 캡슐화 하여 해당 작업을 동적으로 교체할 수 있도록 하는 패턴 ==> 어떤 작업을 정의하고, 그 작업이 여러개인 경우 코드가 실행되는 동안 동적으로 교체할 수 있도록 하는 것 헤드 퍼스트 라는 책의 예시 다양한 오리를 구현해야 한다고 가정 Duck이라는 클래스 작성 후 하위 duck 클래스들을 작성하여 상속받도록 구현 이 때, 부모 클래스가 일부 자식 클래스에 필요없..
-
9/21 - 특강/개인 프로젝트 완료TIL 2023. 9. 21. 21:13
MonoBehaviour 사용금지/팁/심화 + static 1.static 예시 변수.함수(); ==일반 함수 클래스.함수(); == static 함수 static과 아닌것의 차이는 무엇인가? 일반적으로 외부 스크립트의 정보를 사용하려면, 해당 스크립트의 변수를 선언하고, 사용한다. static인 경우는 변수를 선언하지 않고, 바로 클래스 이름과,사용하고싶은 점수를 사용하면 된다. 그럼 다 static으로 하면 그만 아닌가? 아니다. 동일한 이름의 모든 static 속성을 관리하게 된다. 그럼 같은 static 속성을 가진 각각의 객체에 대한 차이를 두기 힘들어짐 성능 + 의도하지 않은 상황이 발생할 확률이 높다. 그러니 하나만 존재하며, 다른 스크립트에서 쉽게 사용하면 좋은 것을 static으로 한다 ..
-
9/19 - 특강)MonoBehaviour [필요 시 추가 작성]TIL 2023. 9. 19. 20:55
유니티 스크립트에서 기본적으로 상속받는 MonoBehaviour란 무엇인가? 유니티의 기능을 뜻한다. 내용이 매우 많지만 대표적으로는 스크립트를 컴포넌트로 추가할 수 있는 기능 ㅡㅡㅡㅡㅡㅡ Update가 3가지로 나누어져 있는 이유 기기마다 속도는 제각각이다. 이 때문에, 일반 업데이트로만 사용한다면 문제가 생긴다. FixedUpdate -> 물리 처리가 우선되어야 하는 경우 사용 모든 기기에서 동일하게 처리된다. Update-> 기기마다 다른 업데이트 [이 단점을 극복하기 위해 Update 에서는 이동같은 처리를 Update에서 처리하는 경우 * Time.deltaTime을 사용한다.] LateUpdate -> 위 업데이트 두가지가 모두 끝난 뒤, 후처리가 필요한 경우 사용 아는 부분은 생략했는데, 특..
-
9/15-event, Action, Func, Input Action 짧게TIL 2023. 9. 15. 21:09
1.event event는 Delegate라는 큰 개념의 하위 기능이라고 보면 된다. delegate는 함수에 대한 참조 그 자체를 말한다면 [쉽게 말하면 함수 변수화/9/14 TIL에 있는 내용] 예를들어 PlayerDie()라는 상황이 생겼다면 해당 상황에 필요한 메서드를 실행할 것이다. 이러한 경우 PlayrDie에 메서드나 코드, 조건을 달아주는것은 너무 비효율적이다. [Delegate와 동일한 상황인데 왜 여기서 event를 사용하는건가? 라는 의문이 생긴다.] 우선 캡슐화 delegate : 외부 호출이 가능하다 event : 외부 호출이 불가능하다. 어찌보면 보안수준(private, public ..)과 비슷한 느낌인듯 : 캡슐화 그 다음으론 옵저버 패턴 위의 예시를 가져와서 보면 Playe..
-
9/14-DelegateTIL 2023. 9. 14. 21:16
Delegate(델리게이트) 란? 변수의 개념을 함수에 사용할 수 있게 해주는 기능 *구조 delegate void SpawnDelegateFunc(); 델리게이트 키워드 + 반환값 + 델리게이트 이름 + 매개변수 로 구성되어 있다. 컨벤션(이름 설정)은 델리게이트 대상에 따라 달라짐 *사용1 delegate void SpawnDelegateFunc(); // 1.델리게이트 선언 void Start() { InitStageData(); SpawnPlayer(); SpawnMonster(); } 위 상태에선 선언만 했다.(지금은 사용할 수 없음/이런게 있다고 설정해놓은것) 클래스도 위와 비슷하다. new로 선언하고, 그 후 변수에 할당해야 사용이 가능해진다. *사용2 delegate void SpawnDe..