분류 전체보기 149

2024 12 09 TIL

팀원 중 한 분이 중도하차를 하게 될 것 같으셔서 역할을 다시 배분하기로 하였다.멀티플레이 담당을 제외한 나와 한 분이 역할을 나누어 맡게 될 것 같다.그러기위해 지금까지 작업하셨던 내용들을 분석해보는 시간을 가져본다.//Inventory.cs 분석 public List inventorySlots = new List(); //슬롯을 담을 자료구조 리스트 초기화 public int maxSlots = 20; //최대 슬롯수 설정 [System.Serializable] //멀티플레이게임에서 데이터 교환을 위한 직렬화public class ItemSlot //아이템 슬롯 { public ItemData item; //아이템의 데이터를 담은 스크립터블 오브젝트 할당칸 public int amoun..

추상 클래스, 인터페이스

C#에서는 다중상속을 직접적으로 지원하지 않지만 인터페이스를 통해 다중상속을 구현할 수는 있다.파이썬에서는 다중상속을 지원하지만 추상클래스와 인터페이스를 기본적으로 지원하지는 않는다.파이썬에서 추상클래스와 인터페이스을 사용하지 않는 이유는파이썬이 천줄내외의 대규모 프로젝트에서 사용하는 경우가 거의 없기에대부분의 사용자들이 구현강제성의 필요성을 못느껴서이다.따라서 이 글은 파이썬에서의 추상,인터페이스 권장이 아닌 단순한 사용법만을 정리해놓은 것이다. 추상과 인터페이스를 파이썬에서 사용하기 위해선먼저 abc 모듈에서 ABC,abstractmethod를 import 받아야한다. ABC 키워드는 부모클래스가 될 클래스에서 상속받아서 추상클래스의역할을 수행하도록 하며인스턴스화 시킬 수 없게 한다.  @abstra..

2024 12 06 TIL

TMI더보기아침에 IT 업계 종사자의 글을 잠깐 보았는 데준비하는 것보다 실전을 먼저 경험하라는 내용이었다.분명 여기서 배울 때도 몇번 비슷한 이야기를 들어본적이 있다. 그동안 내가 배워왔던 방식에 대해 잠깐 회고해보는 시간을 가졌다.지금까지 강의 진도를 따라가는 것에 초점을 두고 그것에 나를 맞추려고 했던 것은 아니었을까물론 부족한 내용들을 계속 물어보고 또 습득하긴 한다.그렇게 물어보고 시도해보고 하면서 배운다는 것을 알고있다.하지만 어설프게 시도해보는 것을 두려워해서 준비에 너무 많은 시간을 투자했던 것은 아닐까생각해보면 지금 넷코드에 대해 이해해보려하면서도 직접 시도해보지 않았던 것 같다.네트워크란 것에 대해 개념만 아는 수준이고 그 개념조차 매우 얕다. 물론 어느정도 아는 시점에서는 계획이 매우..

2024 12 05 TIL

코드 공유 이후  의사소통에 오류가 발생하여 처음에 기획한 메인 퍼즐 기획과 차이가 남을 알게되었다.그래서 이번에 만든 메인퍼즐은 -> 메인 퍼즐의 조건인 하위 퍼즐(오브젝트, 퍼즐 이름 변경)   로 계획을 바꾸고메인 퍼즐을 새로 만들 예정이다. 그래서 다시 정립한 메인 퍼즐의 로직은 1. 메인 퍼즐 시작시 아이템으로 상호작용해야하는 비석 (각각 다른 아이템) 을 순서를 섞어둠 2.하위 퍼즐들의 아이템을 전부 모았을 시에 활성화 (몇개가 될지 모르니 일단 N개로 정해두자)3.해당하는 아이템에 상호작용하는 퍼즐이 아닌 경우 다시 랜덤하게 비석의 재배치 그리고 우선적으로 지금까지 구현한 내용들을 합쳐보는 작업이 필요하다.다음주까지 모든 사항을 합쳐보고 멀티플레이를 안정화시켜보는 절차로 진행하여야한다. 1~..

2024 12 04 TIL

이번 프로젝트에선 멀티플레이 기반의 협동게임을 구상하고 있으면서포톤을 사용하지 않기에 멀티플레이에 대한 이해와 유니티 넷코드에 대한 정보에 접근하기전  먼저 네트워크에 대해 강의에서 나왔던 내용들을 복습하는 시간을 가졌다. IP 주소 Internet Protocol IP라는 주소를 통해서 우리가 인터넷을 사용하는 것은대부분의 사람이 알고 있지만 무엇을 뜻하는지 잘 모르는 경우가 많다.일단 약자에 포함된 프로토콜(Protocol) 이 무엇인지 부터 알아봐야 할것이다. Protocol : 어떤 방식으로 패킷을 보낼 것인지 정의하는 것 여기서 패킷은 네트워크를 통해 전송되는 데이터의 작은 단위를 뜻한다.큰 데이터를 보낼 때는 패킷이라는 단위로 나누어서 보내는 데 도착하였을 때는 이 패킷을 다시 조립하여 사용하..

2024 12 03 TIL

최종프로젝트 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..

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

더보기파티클 시스템은 여러 특수효과나 애니메이션 연출을 넣어주고 싶을 때 사용되는 컴포넌트다.이번 프로젝트에서 촛불을 구현하기 위해서는 해당 시스템에 대한 이해가 필요한데 그래서 기능들에 관해 정리해보는 시간을 가진다. 프로퍼티 메인 모듈(main or partice system module)가장 먼저 보이는 Particle System이라고 명시되어있는 칸의 옵션들이다.이 모듈엔 공식문서상 파티클 시스템 전체에 영향을 미치는 프로퍼티가 배치되어있다. 이 모듈은 컴포넌트의 일부이며 다른 모듈들 같은 경우 체크로 비활성화가 가능하지만이 모듈은 새로 생성할 때 기본적으로 활성화되어 있는 옵션으로 보면될 것 같다.  Duration : 파티클의 지속시간 Looping을 끄고 5초로 설정해서 사용해본다면 실행되..

2024 12 02 TIL

이번에 이미션 효과를 사용하여 조각상이 점멸하는 것을 표현하고 싶어찾아 사용하였던 Mathf 프로퍼티에 관해서 정리해둔다.float Mathf.LinearToGammaSpace(float value);//괄호안의 값을 선형에서 감마 색상 공간으로 값을 변형float Mathf.PingPong(float time,float length);//0과 length(최대값) 사이에서 최소값과 최대값을 왕복함//time에 들어가는 값은 Time.time 과 같은 지속적으로 증가하는 값이 들어가야함 Mathf.LinearToGammaSpace 일단 사용하는 이유에 대해서 먼저 이야기하면 유저가 보기에 자연스러운 색을 나타내기 위해서 사용한다. 유니티에서 색을 표현하는 방식이 Linear Space 와 Gamma Sp..

2024 12 01 TIL

금요일에는 이미션 기능에 대한 코드작성의 실마리를 알아왔었다.material.SetColor 로 이미션 속성의 색상을 지정하였는데이외의 기능들에 관해서 알아보고 또 기능들의 차이에 대해서 정리가 필요해보였다. 일단 그래픽스와 쉐이더 머터리얼 등 내가 컴공과가 아니라서 놓친 개념들이 꽤 많은 것 같지만이것을 알아보기엔 최종프로젝트의 기간을 생각하여야 하기에 참는다.(나중에 공부할 땐 컴공과 친구한테 자료 좀 공유해달라고 해야할 거 같다.) 내가 알고 사용하는 것은 개념들의 일부이며 나중에 따로 공부해야할 것임을 명시해둔다. 이번에 접근해야할 것은 머터리얼이다.  머터리얼(Material) 오브젝트의 머터리얼에 접근하기 위해선 해당 오브젝트의 랜더러 컴포넌트에 먼저 접근한 후그 랜더러 컴포넌트의 머터리얼에 ..