TIL

2024 12 03 TIL

noc777 2024. 12. 3. 21:21

최종프로젝트 8일차 

일단 주말까지 전부 세기로한다.

 

퍼즐들에 상속할 추상클래스와 오브젝트에 상속할 인터페이스에 대해서 생각해보면서 리팩토링해보고

퍼즐 기믹에 관한 코드도 수정하면서 다듬어보고 있다. 

public interface IActivatable //대학원생쪽에서 활성화가 필요한 오브젝트 인터페이스 (PostGuarduate)
{
    public void Activated();
    public void DeActivated();
}

public interface IObservable //교수쪽에서 관찰하는 오브젝트의 인터페이스 (Professor)
{
    public void Observed();
    public void Disappeared();
} 

public abstract class Puzzle : MonoBehaviour
{
    public int curRound { get; protected set; } = 0;  //현재 라운드 상태

    public List<IActivatable> Activatables { get; private set; } = new List<IActivatable>(); //대학원생이 이번 라운드에서 활성화해야하는 대상들
    public IActivatable curActivatable { get; protected set; } = null; //대학원생이 현재 활성화해야하는 대상
    public List<IObservable> Observables { get; private set; } = new List<IObservable>(); //교수쪽에서 이번라운드에서 관측하고 정보를 전달해야하는 대상들

    //모든 퍼즐들은 켜고 끔으로서 사용되는 것을 기반으로 한다.
    protected abstract void OnEnable(); 
    protected abstract void OnDisable();

    public abstract void MatchPuzzle(); //상호작용이 성공적으로 수행되었을 때 메서드
    public abstract void ResetPuzzle();//잘못된 상호작용으로 인해 퍼즐이 리셋될 때 메서드

    protected abstract void ClearPuzzle(); //라운드 내 모든 상호작용이 성공하였을 때 메서드
    protected abstract void ClearAllPuzzle();//모든 라운드가 완료되었을 때 메서드
}

 

맨처음엔 순서대로 1개씩 상호작용하는 로직에서 

라운드별로 중복되는 것 없이 상호작용하는 로직으로

또 라운드별로 중복이 가능하되 연달아서 같은 오브젝트에 상호작용되지 않도록 하고

교수쪽에서 힌트를 확인할 방법을 추가해보는 방식으로 살을 붙여보고 있다.

 

코드를 작성하기 전에 구상을 해보고 구현해보는데 있어 미숙하지만 조금씩 나아가보려고 한다.

좀 더 코드를 개선할 방향을 찾아보고 지금 상호작용할 오브젝트를 담아놓는 것을 일단 간단하게 만들어 놓았는데 

스크립터블 오브젝트와 같은 방법으로 적용을 할 수 있는지? 효율적인지를 좀 생각해봐야할 것 같다.

 

또한 양초같은 경우 모델링을 가진 에셋은 많으나 촛불이 타오르는 것을 구현하는 것은 내가 만들어보아야 할 것 같다.

 

양초의 촛불의 구현을 위해선 파티클 시스템에 관한 이해가 필요할 것 같다고 생각했다.

일단은 메인 모듈의 프로퍼티를 한번씩 건드려보면서 정리해보는 중이다.

정리를 하다보니 자료로 만들어두지 않은 월드 좌표계 로컬 좌표계 등의 내용도 따로 정리해두면 

나중의 내가 헷갈릴 때 찾아보고 개념을 다시 확인하기 좋겠다고 생각하였다.

https://noc777.tistory.com/108

 

파티클 시스템 - 1 (메인 모듈)

파티클 시스템은 여러 특수효과나 애니메이션 연출을 넣어주고 싶을 때 사용되는 컴포넌트다.이번 프로젝트에서 촛불을 구현하기 위해서는 해당 시스템에 대한 이해가 필요한데 그래서 기능들

noc777.tistory.com

 

그리고 모의 면접 주제에 관해서 객체지향과 생명주기에 관한 키워드로 면접을 보게된다.

관련 내용들을 살펴보면서 어떤식으로 답해야할지 생각해봐야할 것 같다. 

 

저녁 때 회의를 통해 각자 진행상황을 공유해보았는데 멀티플레이 같은 경우 

내가 따로 또 찾아서 공부를 해봐야할 것 같다. 

아직 원리나 구조도 제대로 파악을 하지 못하였고 앞으로의 프로젝트 진행이나 

지식적인 성장에 있어서도 개인적인 네트워크 공부는 필수불가결하다.

 

TIL은 여기서 마치고 좀 더 지식들을 정리해보거나 면접을 준비하거나 할것 같다.

'TIL' 카테고리의 다른 글

2024 12 05 TIL  (0) 2024.12.05
2024 12 04 TIL  (2) 2024.12.04
2024 12 02 TIL  (0) 2024.12.02
2024 12 01 TIL  (0) 2024.12.01
2024 11 29 TIL  (0) 2024.11.29