본문 바로가기
728x90

게임개발8

[C#] Get, Set 프로퍼티를 왜 사용할까? 참고 https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS5678358974 C# 언어요소(1) - 데이터 멤버 대신에 항상 프로퍼티를 사용하라 제공 : 한빛 네트워크출처 : Effective C# : 강력한 C# 코드를 구현하는 개발지침 50가지 Chapter 1C# 언어에서는 다양한 이유로 프로퍼티의 사용을 장려한다. 지금까지도 타입(type)에서 public데이터 변수 www.hanbit.co.kr 요약 1. 변수를 외부에서 접근(public, protected)할 수 있도록 하게 해주면서 객체지향의 캡슐화를 지원해주기 때문 2. 닷넷 프레임워크에서 데이터 바인딩을 지원하는 클래스들은 Reflection을 통해 접근하는데.. 2023. 2. 26.
[Shader] 쉐이더를 처음으로 직접 작성해보다. [2021. 09. 01, Wed] 쉐이더를 공부 한지 하루 이틀 밖에 안되었다. 내 스스로 코드를 작성하는 것은 당연히 불가능한 것이기에 참고용으로 동영상을 보면서 공부했다. 참고 : https://www.youtube.com/watch?v=tRYxflC-HCc&list=TLPQMDEwOTIwMjG6Wd5TU0jTYw&index=2 강의에서 나오는 내용들을 적어 옮겨놨다. 생각이 안날때마다 다시 이걸 보면서 공부해야겠다. 불편했던점은 아마 쉐이더는 아마 C++이 변형된 상태 로 작성되나보다 좌측 상단에 보여지는 마크도 ++를 뜻하기도하고 일단 동영상처럼 자동 완성이 안된다 색깔도 구분이 안되어있고.. 아마 내가 비쥬얼 스튜디오에서 직접 설정을 바꿔야할 것 같은데 나중에 찾아보고 해결 해봐야겠다. 혹시라.. 2021. 9. 1.
포트폴리오 유투브 링크 ▼ 편집본 https://www.youtube.com/watch?v=g1AZ5ii1Jy4 ▼ 무편집본 https://www.youtube.com/watch?v=L-b6bRziTgM&t=10s 제작 기간 : 총 3주 소요 (개발: 본인 1인) ( 2021. 07. 12 ~ 2021. 08. 4) 제작 전 공부(코딩 및 유니티) 기간 : 총 3개월 (2021. 04. 05 ~ 07.12) ▼ Class UML ▼ Flow Chart 2021. 8. 9.
[Day 23] 마무리 작업 완료. [2021. 08. 04] 드디어 포트폴리오의 마무리 작업들을 완료했다. 3주 동안 열심히 해왔던 내 자신에게 칭찬을 해주고싶다. 물론 100% 만족스럽지않은 결과물이지만 (전투 부분에서 많이 빈약해보인다) 이 게임의 핵심 콘텐츠인 전략 부분은 나쁘지않게 구현이 되었다고 생각이든다. 무엇보다 이번 프로젝트를 통해서 이전의 내 자신보다 한 단계 더 발전한 것에 대해서는 크게 만족한다. Finally finished the works I was behind on. Bottom line is that I've fully strived for to make my responsibilities done for the last 3 weeks no matter how good-quality they are (espe.. 2021. 8. 4.
[Day 17] LinQ+람다를 활용한 국방력 순위 및 일반화 오브젝트 풀링 유닛 구매 구현 [2021. 07. 19, Thu] [오늘 한 일] let me run through the works ive done today 1. 국가마다 병종 별 보유 하는 유닛의 수를 비교하여 국방력 순위를 표시했다. (Linq + 람다식 활용) (Ranked all of nations among one another pursuant to the number of personnels with 3 MOS) *MOS = Military Occupational Specialty. 2. 국방UI에서 유닛을 구매할 수 있다. (제너릭 오브젝트 풀링 활용) (You can conscript able-bodied in the nation via Military UI) [국가 스크립트. WorldBuilding.cs] 플레이.. 2021. 7. 29.
[Day8-1] 외교 관계 랜덤 적대 관계 형성 [2021. 07. 19, Mon] 구조는 이렇다. 1. tempRelations = relationOwner[NationsNum[i]]; 딕셔너리에 저장해놓은 각 국가의 외교관계 리스트를 가지고온다. 2. for(int j=0 ~~)문 처음 if(i!=j)에서 자국을 제외한 나머지 리스트를 확인한다. [i]국가의 [j]번 째 국가와의 관계가 적대 관계가 아닐 시에 일정 확률로 적대 관계로 만들어준다. 만약에 적대 관계가 되었을 경우, [j]국가의 적국 리스트에도 [i]국가를 적으로 만들어준다. 다행히 이번 것은 무리없이 잘 진행되었다. 그러나 다음 글에서 설명을 할 것이지만, AI에서 조금 많이 애를 먹었다. 2021. 7. 19.
[Day 2-2] 유닛 선택을 활용한 유닛 이동 구현 [2021. 7. 13] 처음에 머릿속에서 그려놓은 이미지가 딱 이런 방식이었다. 각각의 유닛의 이동 가능 거리 스텟에 따라 그에 맞는 이동 가능한 타일들이 미리 그려지고 실제로 클릭 시 이동하는 것인데. 문제는 구글링이나 유튜브에서 찾아보면 대부분 이러한 것들을 2차원 배열에 넣어놓고 a*, 깊이우선, 너비 우선 탐색 등으로 해결하는 모습밖에 보지를 못했다. 일단 처음부터 내가 만든 맵에선 타일들을 2차원 배열에 넣는 것은 조금 불가능해 보였다. (물론 계속 시도하면 무조건 방법을 찾게 될 것이지만 시간상 효율적인 방법을 생각해봐야 한다) 그 이유는 처음부터, Tile Palette에서 브러시로 맵을 만들 때, 가로와 세로 정렬을 생각하면서 만들지 않았기 때문이다. 그렇기 때문에 배열에 타일들을 순서대.. 2021. 7. 13.
[Day 2-1] 유닛 선택 및 맵과 유닛의 상호작용 구현 [2021. 7. 13] 이전에 만들어 놓은 HexaGrid 타일 맵을 이용하여 유닛을 선택 후 이동 및 맵과 유닛의 상호 작용을 오전에 구현 하였고. 오후에는 유닛 이동을 최종적으로 마쳤다. 블로그 작성은 매일 밤 작업을 마무리 하고 올리기 때문에 코드는 이전에 오류 되었던 것들이 포함되어있지 않을 수 있다. 1. 일단 유닛과 상호작용을 할 때 각각의 타일들이 반응을 해야하므로 타일 전용의 Script를 만들었다. World씬이라서 WorldTile이라고 네이밍했다. 2. Units -> Systems 폴더에는 월드씬 내에 유닛과 관련된 시스템 적인 기능들을 수행하는 스크립트를 모아놓는 곳이고 그리드 위에 놓여져있는 유닛들을 통제하는 GridUnitSystem.cs와 유닛을 선택할 때 필요한 Selec.. 2021. 7. 13.
728x90