전체 글 67

[Unity] 쿠키런 모작 팀 프로젝트 중, Map 제작

원래 기본적인 기능 구현만 하려고 했던지라 맵을 여러개 제작할 생각은 없었으나 다른 맵 제작이 가능한 시간이 생겨기본맵은 다른분이 만드셨고 아이템 구현이 끝난 시점에서 맵 추가 얘기가 나와 2, 3번째 맵은 내가 만들어보겠다고 말씀드리고 원하는 맵을 골라 제작했다. 원래 맵을 담당하던 팀원분이 계셧으나 기본 맵 이후 다른 추가적인(맵 외에 중요한) 기능 구현에 들어가신 후 내가 추가적인 맵을 제작하게 되어 스크립트나 큰 틀은 기본맵을 담당해주시던 팀원분께서 구현해주신 기능을 사용하여 제작하였다.  배경은 큰 배경(BackGround), 작은 배경/배경 효과(ForeGround) 두개로 나누었으며 특정 오브젝트가 화면을 벗어나면 앞으로 이동시키는 식으로 배경을 무한 루프하게 해주었다. 배경이 다같은 속도로..

Unity/Unity Study 2025.03.04

[Unity] 쿠키런 모작 팀 프로젝트 중, Item 3 - PlayerPrefs를 이용한 저장기능 추가

젤리와 코인 기능은 이쪽에 코인, Coin원래 코인(Coin)은 Jelly의 일종으로 AddScore(점수추가)기능만 구현하려고 하였는데, 코인을 얻어 해금하는 식으로 하자는 얘기가 나와 코인 스크립트를 따로 생성하였다. 코인에는 AddScore를 추가했던 것처럼 SerializeField를 이용하여 Inspector에서 각각의 프리펩(오브젝트)에 코인값을 입력할 수 있게 해주었으며 다른 아이템과 동일하게 충돌하면 사라지고, 사라지면 아이템의 효과가 적용되는 방식이다.public class Coin : Item{ [SerializeField] private int coin; public override void ApplyEffect(Cookie cookie) { base.Ap..

Unity/Unity Study 2025.02.28

[Unity] 쿠키런 모작 팀 프로젝트 중, Item 2 - 기본 아이템 구현 (완성)

1편에서 이어지는 글그리하여 작성한 코드는 아래와 같다. 아이템, Itempublic class Item : MonoBehaviour{ private void OnTriggerEnter2D(Collider2D collision) { Cookie cookie = collision.GetComponent(); if (cookie != null) { ApplyEffect(cookie); Destroy(gameObject); } } public virtual void ApplyEffect(Cookie cookie) { }}아이템 클래스는 모든 아이템 공통적으로 적용될 부분만 작성해주었다. 그..

Unity/Unity Study 2025.02.27

[Unity] 쿠키런 모작 팀 프로젝트 중, Item 1 - 기본 아이템 구현 (트러블)

사실 아이템은 예전부터 해보고싶었던 부분이지만 지금의 내가 맡기엔 어려운 부분이라고 생각하여 그나마 자신있는 UI를 하겠다고 얘기드렸지만 해보고싶은걸 하시라며 아이템 담당으로 배정해주신 팀원분들.. 믿고맡겨주셨는데 내가 다 우당탕탕 망쳐버릴까봐 무섭다, 그치만 맡은거 일단 해내야지. 내가 구상했던건 enum으로 아이템 종류를 관리, OnTriggerEnter2D로 충돌했을 때 아이템 효과를 적용, Switch/Case문으로 아이템 종류에 따른 효과를 적용할 수 있게 하려고 하였다. 일단 필수로 해야하는 아이템 3가지 먼저 구상하고 시간이 있을 경우 다른걸 구현하자 생각했던 상태로 3가지 아이템은 다음과 같다.점수가 추가하는 젤리체력이 증가하는 포션모든 장애물을 파괴하고 일시로 무적이 될수 있는 아이템뭔가..

Unity/Unity Study 2025.02.26

[Unity] GameObject, gameObject 차이

GameObject를 쓸 때도 있고, gameObject를 쓸 때도 있는데 제일 간단하게 설명하면GameObject : 클래스gameObject : 객체(인스턴스) 이렇게이다.클래스는 항상 첫 글자가 대문자로 쓰이는 점을 참고하면 좋다. GameObject는 클래스처럼 사용하며 오브젝트를 참조할때 쓰이는 용도, 확인이나 삭제하는 등의 코드에서 지정된 물체는 위와같이 gameObject를 사용한다.

Unity/Theory 2025.02.25

[Git] Develop에 merge할 때

지금까지 나는 깃 데스크탑만 써오면서 간단하게 Develop 브랜치에서 내가 했던 브랜치를 머지해오는 방식으로 했었다.Develop 브랜치에서 Choose a branch to merge into develop을 눌러 내 브랜치를 누른 다음 create a merge commit 을 눌러 진행하는 방식으로 하였다.(현재는 내 브랜치와 디벨롭 브랜치가 같은 상태이기 때문에 아무것도 뜨지 않는다) 하지만 이번 팀 프로젝트에선 다른 방식으로 디벨롭에 merge 하였다.    깃 데스크탑에서 맨 마지막 View on GitHub를 클릭하면 깃허브 페이지가 열린다.상단의 Pull requests 클릭 후 Compare & pull request 클릭base는 받는 브랜치, compare는 보내는 브랜치다. 선택하..

Etc/Git 2025.02.25

[Unity] error CS0006, Metadata file could not be found

나는 정말 건든것도 없는데 콘솔창에 에러뜨는것이 정~말 스트레스다.error CS0006, Metadata file could not be found메타데이터 파일 관련한 저 오류는 예전에도 몇번 봤던것 같은데 아무것도 안했는데 또 뜨길래 뭐야? 했는데 의외로 해결법은 간단하다. 일단 작업하던 유니티 프로젝트는 끄고 log4netPlastic.dll 이라는 파일이 있을텐데, 해당 파일을 삭제해 준 다음 다시 프로젝트 파일을 열어준다. 잘~가라~

Unity/etc 2025.02.21

[Unity] 트러블 슈팅 : Say_Gamja 기능 일부

1. TilePalette 타일 오류TilePalette 사용 시 내가 설정한 구역이 아닌데 사진과 같이 타일팔레트에 표시되며, 이용하여 그릴때도 나타나지 않았고 원래 했던 맵도 전부 날아가 이거때문에 좀 많은 고생을 했다. 한개의 파일에서 여러 타일을 쓰고자 할 때 SpriteEditor를 이용하여 분할할 수 있다는 것을 알게되었는데, 이것을 몰랐을땐 포토샵에서 하나하나 그림을 따로 저장해와서 사용했었다.다만 Slice를 할 때  Automatic으로 하여 자동 분할하거나 Grid By Cell Size로 하여 사이즈 단위로 분할했는데, 방법이 잘못되었다.Grid By Cell Count로 하여 잘 나눠주고 나니 제대로 작동되는것을 알게되었다.Autimatic과 Grid By Cell Size는 이미지..

Unity/Unity Study 2025.02.20

[C#] 메서드, 매개변수, 반환(return), void

메서드(Method)일련의 코드 블록으로, 특정한 작업을 수행하기 위해 사용되는 독립적인 기능 단위-  중복되는 과정들을 메서드로 만든것- C#에서 메서드는 함수(예시) 밥먹는 과정을 밥먹기 로 만들고 아침, 점심, 저녁에 밥먹는 과정을 다 쓰는게 아니라 밥먹기로 통일    밥먹기(식사메뉴) > 밥먹기(미역국), 밥먹기(고기) 등  ) 역할, 중요성코드의 재사용성 : 메서드를 사용하여 코드를 작은 단위로 분리하고 관리할 수 있다.가독성과 유지보수성 : 코드가 간결해지고, 가독성이 좋아진다. 또한 코드 수정이 필요한 경우 해당 메서드만 수정하면 되므로 유지보수가 용이해진다.코드의 중복 제거 : 반복적인 작업을 메서드로 묶어서 사용하면 중복 방지할 수 있음코드의 추상화 : 메서드를 통해 직업 단위를 추상화하..

C#/Theory 2025.02.19

[Unity] localPosition 변경에 따른 움직임/이펙트 변화

평화롭게(촉박하게) 유니티로 공부중이었는데 술술 해나가던 중 뭔가 이상하다.기본적으로 게임은 조작키(방향키 혹은 asdw)로 움직이고 캐릭터와 무기는 마우스 커서가 있는쪽으로 보게된다.  무기와 관련한 스크립트는 여러가지가 있었는데 무기가 움직이는 원리에 대해서는 아래와 같다.BaseController클래스와 자식 클래스인 PlayerController,BaseController는 기본적인 캐릭터 행동(이동, 회전 등)을 처리하며PlayerController에는 플레이어의 조작과 관련된 로직을 처리한다.- Weapon(무기)은 WeaponPivot의 자식 오브젝트이다 (Weapon 자체는 프리펩화 시켰으나 게임 재생 시에는 자식 오브젝트로 들어오게 된다)public class BaseController ..

Unity/Unity Study 2025.02.18