Development 39

[Retro유니티] Bullet 구현

Object 만들고, 색입히고, RigidBody 넣는 것 까지는 동일하다. Collider 설정물리적 표면이 존재하는 Object는(ex. 3D Sphere), Collider를 가진 다른 Game Object와 충돌하면 튕겨나갈 수 있다.탄알은 탄알과 충돌시 튕겨나가지 않고 그냥 통과하게 해야한다. 이를 위해 Trigger로 설정된 Collider가 필요하다.Player가 특정 영역으로 진입했는지 검사할 때 Trigger Collider를 많이 사용한다.Trigger Collider 자체는 물리적인 표면이 없다.여기선 Bullet이 충돌을 감지하되, Game Object를 튕겨나가게 하지 않게하기 위해 Trigger Collider를 사용한다. Prefab: 언제든지 재사용할 수 있는 미리 만들어진 ..

[Retro유니티] Player Object 설계 2 - GetComponent/linearVelocity/GetAxis 사용

몇 가지 문제를 개선하자.1. AddForce를 통해 움직임을 구현한 탓에, 즉각적 방향전환이 안된다.2. 입력감지코드가 복잡하다. if문 4개보다 더 간단히 하자.3. playerRigidBody에 Component를 드래그&드롭으로 할당하는게 human-error에 취약하며 불편하다. 코드로 실행하고싶다. 1. Start() 메서드 수정-> 드래그가 아니라, 코드상에서 RigidBody Component를 Object에 할당하기 위함.private Rigidbody playerRigidBody;로 선언하면, 더이상 드래그로 Component를 할당할 수 없다. Inspector 창에 public 아닌 변수는 표시되지 않기 때문이다. GetComponent 메서드꺾쇠로 원하는 타입을 받는다. Compo..

[Retro유니티] Player Object 설계 1 - AddForce를 통한 움직임 구현

1. Hierarchy창에서, 3D Object로 Player Object 생성 2. Project창에서, Material 로 Color 생성  3. Material 색 변경 및 Player에게 부여 - Camera Component의 Clear Flag를 변경하여 게임 변경색을 변경가능하다.  - Clear Flag의 Skybox는 가상의 하늘을 그린다. Solid Color를 통해 단색으로 배경을 채울 수 있다.  4. 탄알 충돌 구현을 위해, Tag 설정- 탄알입장에서, 충돌한 물체가 Player인지 단순GameObject인지 구분할 구분자가 필요.- Tag는 Game Object를 분류하고, Code에서 Game Object를 구별하는데 사용된다.- Code입장에서는, "탄알이 Player Tag..

Unity 프로젝트용 .gitignore

Unity 프로젝트는 쌩으로 push하기엔 너무 크다(용량이 1GB가 넘어간다).따라서 다 쳐내기 위한 .gitignore를 기록한다. https://github.com/github/gitignore/blob/main/Unity.gitignore gitignore/Unity.gitignore at main · github/gitignoreA collection of useful .gitignore templates. Contribute to github/gitignore development by creating an account on GitHub.github.com   # This .gitignore file should be placed at the root of your Unity project ..

[Retro유니티] Component 사용: myRigidBody

(앞으로, Retro 의 Unity 게임 프로그래밍 에센스 책을 따라 독학을 진행할 예정이다.)  Today I learned일단 Component 추가자체는 Godot과 크게 다를게 없었다.게임엔진은 일반적으로 Component 패턴을 사용하는 모양이다. 상속은 오히려 불필요한 품이 들어가는 경우가 있는데, 서로 독립적인 Component Pattern 을 활용하면 게임같은, 오브젝트의 종속성이 애매한 경우에 대응하기에 좀더 적합한 모양이다. 아직 수준이 낮은 단계이긴 하나, C# 또한 수월히 배웠다. 사실 참조타입/값타입 말고는 따로 볼게 없었다(기본설정이 private라는것과).그리고 Copilot이 매우 강력했다.또한, VisualStudio 가 기본 에디터라, 매우 호감인 부분이었다.Godot은..

241104 Unity 셋업

결국 사후지원과 de facto standard가 중요한데...고도보다 유니티가 낫지않나 싶다.고도엔진의 최근논란때문이 아니다. 시간이 없는 사람은 최대한 범용적인 기술을 mainstream으로 택하여, 불필요한 학습 overhead를 줄일 필요가 있다.내 말은, 빵빵한 자료와 지원이 중요하다는거다.특히 삽질할 시간이 없는 뉴비한테는.그래서 결론을 내렸다. 유니티로 가야한다. 나는 시간을 돈을 주고서라도 사야하는 입장이다. 엔진소스코드를 뜯어본다? 애초에 내 수준에서는 그럴 일이 없다. 따라서, 오픈소스인 것은 장점이 없다.현재 내 목표는 인디게임개발이다. 가장 급한것의 순서는 아래로 정리된다.1순위: 코딩능력 다른 모든 에셋은 대체가능하다. 픽셀은 돚거해서 쓰면 되고, BGM은 무음으로 쓰면된다.그러나..

[개발노트] WSL2 gvim 폰트키우기

윈도우 4K 모니터에서 WSL2 gvim을 띄우니, 너무 폰트가 작아 개발이 불가능할 지경이었다. gvimrc에 :set Consolas:h200000 을 해도 의미가 없었다. 폭만 넓어지더라.아싸리 gnome을 직접 건드려야할것같았다. export GDK_SCALE=2export GDK_DPI_SCALE=1gvim ~/foo     GDK_SCALE controls the overall scaling factor.    GDK_DPI_SCALE controls the scaling of fonts and other DPI-sensitive elements.

[개발노트] Godot <-> VSCode 연동

Reference: https://www.youtube.com/watch?v=-urLt9bvteQ 목적: Copilot 사용하기 위함.      꼭 할것: 위 창(에디터 설정)에서, 실행플래그(ExecFlags)에 아래 적기{project} --goto {file}:{line}:{col}  그럼, Godot상에서 FileSystem의 .gds를 클릭하면, vscode상에서 편집할 수 있게 된다(file hierarchy는 project 단위로 열린다.)    Windows VSCode git은 따로 설정해야 한다.Windows 또한 다중계정을 염두에 둔 ssh 설정을 하고싶다.WSL2 Ubuntu에서 IdentifyFile을 설정했던 것을 참고하여.. https://blog.elmi.page/591링크처..