7/7 ~ 7/13
*해당 프로젝트에 기여한 날만 작성했습니다.
중력 파편 능력을 구현하고 티스토리에서 개발 일지를 작성하기 시작했습니다.
또 다이얼로그 시스템을 살짝 수정 했습니다.
7/7
선택한 물건의 중력이 일정 시간 동안 바꿀 수 있게 만들었습니다. (7/9에 같이 설명)
또 (1) ~ (4) 까지의 개발 일지 작성을 완료 하고 (5)를 쓰는 중입니다.
이날은 회의도 했습니다.

개발 일지는 디스코드 스레드에 늘 써두기 때문에 기억을 떠올리기엔 수월했지만, 글을 작성하는 것이 꽤 골치 아팠습니다.
사진도 찍어야 하고, 코드도 다시 기억해봐야 하고, 영상도...
*작성한 개발 일지
7/8
회의를 진행 하였고, 어제를 이어서 (5) ~ (8) 까지의 개발 일지를 작성 했습니다.
*작성한 개발 일지
7/9
이어서 (8) ~ (9)의 개발 일지를 작성했습니다.
마찬가지로 회의를 진행했고 중력 파편 능력의 속도를 점점 더 빨라지도록 변경했습니다.
그리고 우체국 기믹을 맡게 되어 그에 따라 대화에서 아이템을 얻을 수 있도록 다이얼로그 시스템을 살짝 변경 했습니다.
(7/12에 서술했습니다.)
*작성한 개발 일지


GravitationManager는 중력 능력을 사용가능하게 해줍니다.
활성화 되면 ignoreReversedGraphisc = false로 해주어 버튼 UI의 뒤를 눌러도 실행 가능하게 하였습니다.
Physics.gravity를 이용해 전체 중력을 원상태? 랄까 아래로 향하게 하였습니다.
OnSelect 액션과 Select메서드에 대해서는 후술하겠습니다.

업데이트에서는 일단 임시 키로 tab이 눌리면 전체 중력을 없애 주었습니다.
(안 없애면 중력의 힘 때문에 원하는 위치로 오브젝트가 이동하는데 방해가 되어서)
그런데 생각해 보니까 플레이어도 중력을 받으니 문제가 생길게 분명하기 때문에 전체 중력을 변경하는 것을 관두고 Constant Force로 변경할 생각입니다.
gravit를 true로 해줌으로서 능력을 사용할 것을 의미합니다. 그러므로 아래에서 능력을 사용하는 시간을 재고, 시간이 완료 되면 능력 사용을 다시 꺼주게 됩니다.
CanGravity 액션을 사용하는 곳은 GravitationObject입니다.


아까 CanGravity 액션을 실행하면 Gravitation 함수가 실행됩니다.
아까 true였으니 여기서도 능력 실행 가능하다고 알려줍니다.
반대로 시간이 지나면 false라서 마찬가지로 능력 실행 불가하다고 알려주게 됩니다.
doGravity는 중복을 확인하는 것인데 자세히는 후술하겠습니다.

중력 파편 능력을 사용할 오브젝트들은 GravitationObject 스크립트를 가지고 있습니다.
어쨌든 해당 오브젝트가 선택될(마우스에 닿을) 때 중력 능력 사용가능한지 확인하고, doGravit를 이용해 중복도 확인하게 됩니다. 중복 확인 하는 이유는 액션을 계속 실행하게 되면 아무래도 비효율적이라 생각했기 때문입니다.
이렇게 확인 후 OnSelect 액션을 실행합니다.

다시 Manager로 돌아가보면 아까 OnSelect 액션을 실행 시 Select를 실행하게 됩니다.
능력 사용 UI (화살표) 위치를 아까 마우스에 닿은 해당 오브젝트에게 이동시킵니다.


버튼을 클릭하면 입력된 값(string)을 OnGravity 액션에 넘겨줍니다.
*string으로 매개변수를 받는 이유?
처음에 당연히 Vector3를 매개변수로 두었는데 Button 스크립트에 뜨지 않았습니다.
다음 시도로 float 3개 (X,Y,Z)를 두었으나 역시나 안되었고
마지막 시도로 enum을 만들어서 하였으나 역시나 안됐습니다.
결국 string를 매개 변수로 받게 되었습니다.

OnGravity액션을 실행하면 Gravity를 실행하게 됩니다.
중력을 적용할 오브젝트가 자신인지 (선택된 오브젝트인지) 확인을 합니다.
스위치 문으로 중력 방향을 정하게 됩니다. 생각해 보니 스위치 식으로 할 걸 그랬습니다.

정한 중력 방향에 따라 FixedUpdate에서 이동하게 됩니다.
addSpeed를 통해 점점 가속이 붙도록 하였습니다.
(AddForce 계산에 () 가 있는 이유는 밑줄을 보기 싫어서 그냥 해주었습니다.)
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
이렇게 일단 중력 파편 능력을 구현했습니다.
7/10
(9)의 개발 일지를 작성하고 있습니다.
이전 프로젝트에서 며칠 걸렸던 시스템을 이번에 그냥 쉽게 바로 복사 해와서 그런지 분량이 엄청나서 아직도 많이 작성도 못했습니다.
*작성한 개발 일지
7/11
(9)의 개발 일지를 작성하고 있습니다.
다이얼로그 시스템 부분을 살짝 수정했습니다.
(자세한 것은 7/13에 서술했습니다.)
(9) 개발 일지가 언제 끝날지 모르겠습니다... (현 시점에서도 아직 미완료 중)
*작성한 개발 일지
7/12
아직도 (9)의 개발 일지를 작성하고 있습니다.
대화 중 아이템을 얻을 수 있게 만들었습니다.
솔직히 (9)의 분량이 너무 커서 며칠 걸릴 것은 예상했지만 이 정도로 오래 걸릴 줄도 몰랐어서 굉장히 지치는 기분입니다.
*작성한 개발 일지


Item이 있는지 확인 하고, Item은 string, Get는 bool, ItemCount는 int로 받아와줍니다.
get에 따라 얻거나 잃는(주는)지를 결정하고, count(ItemCount)정도를 얻거나 잃게 됩니다.
7/13
(9) 개발 일지 작성은 잠깐 미뤄두고 현재 (10) 지금의 개발 일지를 작성 하고 있습니다.
또 다이얼로그 시스템 전부 수정했습니다.
*작성한 개발 일지

(9) 쓰면서도 느끼긴 했는데 막상 봐보니 Dialog 스크립트의 마지막 줄이 300을 넘는 것을 보고 심각성을 느껴서 얼른 분할해서 나누었습니다.

ChatSetting는 주로 이름에 대한 세팅을 해줍니다.

DialogItem는 간단히는 아이템 관련이고,
아이템을 얻거나 잃는 것에 대해 관리합니다.

DialogSelect는 선택에 관한것으로
선택지가 있는지 확인, 있다면 그 수만큼 선택 UI를 세팅,
선택 UI를 전부 꺼주기를 합니다.

DialogTextController는 한 글자씩 출력,
특정 문자를 다른 문자로 변경 합니다.



Dialog는 여전히 긴데
아까 위 모든 스크립트를 가지고 대화를 세팅, 대화를 실행,
다음 대화로 이동하는 등을 합니다.
몇을 지우고 옮기기를 하니 매개변수로 받을게 많아지니까 c++ 프로젝트를 할 때가 생각나네요...
아마 이것도 나중에 수정 할 것 같습니다.
더 자세한 설명은 광기의 다이얼로그 시스템 <- 를 참고해주세요.
일지
이전 일지 > https://neeeeding.tistory.com/34
네오위즈 - 개발 일지 (9) - 다이얼로그 시스템(+CSVReader) 6/30 ~ 7/6
6/30 ~ 7/6*해당 프로젝트에 기여한 날만 작성했습니다. 다이얼로그 시스템을 이전 개인 프로젝트에서 모두 가져온 후, 수정을 했습니다.그리고 말풍선등 이전 개인 프로젝트에는 없던 것을 추가
neeeeding.tistory.com
다음 일지 > https://neeeeding.tistory.com/36
네오위즈 개발 일지 (11) - 종이 배 레이스 & 모세의 기적 7/14 ~ 7/20
7/14 ~ 7/20*해당 프로젝트에 기여한 날만 작성했습니다., 또한 해당 일지 작성 관련한 것은 기여로 판단하지 않았습니다. 이번 주가 굉장히 많은 일을 빠르게 한 주인 것 같은데요...다이얼로그 시
neeeeding.tistory.com
'네오위즈' 카테고리의 다른 글
| 네오위즈 개발 일지 (12) - 공기(중력 능력) 7/21 ~ 7/27 (0) | 2025.07.21 |
|---|---|
| 네오위즈 개발 일지 (11) - 종이 배 레이스 & 모세의 기적 & 미니맵 7/14 ~ 7/20 (6) | 2025.07.15 |
| 네오위즈 - 개발 일지 (9) - 다이얼로그 시스템(+CSVReader) 6/30 ~ 7/6 (0) | 2025.07.10 |
| 네오위즈 - 개발 일지 (8) - 진행 무 6/2 ~ 6/29 (1) | 2025.07.09 |
| 네오위즈 - 개발 일지 (7) - 유리 구슬(2) 5/26 ~ 6/1 (1) | 2025.07.09 |