unity 53

Unity - 폴더 자동생성 패키지 제작하기

유니티에서 매번 프로젝트를 만들때 폴더를 일일이 생성해 주는것이 너무 귀찮아서 자주 사용하는 폴더를 자동으로 생성해주는 간단한 폴더가 있으면 좋겠다고 생각하여 만들어 보았다. 1. namespace변경하기 만약 이름이 같은 스크립트가 있으면 충돌이 발생할 수 있으므로 namespace를 변경해준다 > Edit -> ProjectSettings -> Editor -> root namespace를 변경해 준다 2. Project창에 Editor파일을 생성후 이 파일만 남긴다 -> 이름이 꼭 Editor일 필요는 없지만 명명 규칙에 의해 이 파일을 만들어 주는 것이 좋다 3. Editor파일에 위와 같이 스크립트를 하나 생성해 주고 이름은 상관 없다 그다음 스크립에 아래의 코드를 집어 넣는다. using Un..

Unity - 아이템 쿨타임 UI

유니티에서는 버프나 아이템에 쿨타임 화면이 표기되는데 이는 Image의 Type을 이용하여 손쉽게 구현 할 수 있다 1. 아이템 쿨타임 조정 코드 using UnityEngine; using UnityEngine.UI; public class CoolDown : MonoBehaviour { [SerializeField] private float _coolTime = 3f; [SerializeField] private Image image; private float _timer = 0; private void Awake() { image = GetComponent(); } void Start() { // 코드로도 조정이 가능하다 // 시계 방향으로 쿨타임 감소 //image.type = Image.Type..

Unity - 꿀팁 정리 <2월 24일 추가>

오브젝트 이동 1. v 키를 통해 오브젝트를 딱 맞게 정렬할 수 있다 - 피봇의 위치가 변경되는것을 볼 수 있다. 2. Ctrl + Shift 키를 이용해 terrain같은 울퉁불퉁한 지형을 따라 이동시킬수 있다 - v키와 함께 사용하여 기준점을 변경할 수 있다 3. Ctrl + Shift + F 키를 이용해 현재 바라보고 있는 위치로 카메라를 이동시킬 수 있다. - 사실 다른 오브젝트도 되지만 카메라에 주로 사용한다. 4. Shift + F 키를 이용하여 게임 진행 중에 어떤 오브젝트의 이동을 따라갈 수 있다. 5. 인스텍터 창의 position에 L(start, end)를 통해서 오브젝트를 한번에 정렬할 수 있다 오브젝트 빠른생성 1. Ctrl + Shift + N을 통해 빈 오브젝트를 빠르게 생성할..

2D게임 제작후기 및 정리 - <투두두두>

단기 시일에 간단한 게임을 부트캠프에서 구현해 보았다 | 게임 컨셉 : 하늘에서 떨어지는 독촉과 할일(과제,TIL,코드카타)을 처리하며 살아남아 초보 개발자에서 시니어 개발자로 성장하기. | 참여 인원 : 5명 | 제작시간 : 1주일 깃 사용 과정 깃의 충돌과 방지를 위하 각자의 브랜치, 각자의 Scene에서 작업 후 test에 merge 최종 완성본에서 main에 merge하는 방식으로 협업을 하였다. 각자의 Scene을 만든 이유는 Scene을 변경할 때마다 충돌이 일어나는 것을 미리 방지하기 위해 각자의 Scene에서 업무 작업후에 서로 회의를 통해 메인Scene에 작업물을 합치는 작업을 가지니 미리 충돌을 회피할 수 있다는 장점을 느낄수 있었다. 구현 과정 구현의 경우 위의 브랜치처럼 1 : 1:..

Unity - new Input System 사용법

서론 기존에 캐릭터의 움직임을 제어할 경우 유니티에 있던 Input Manger을 사용해 왔을것이다. 그렇지만 기존의 InputSystem보다 Observer 패턴을 더 잘 활용할 수 있고 코드를 더 깔끔하게 관리할 수 있으며 여기에서는 소개하지 않지만 Scheme설정을 통해 PC, Moblie같은 특정 타겟마다 Input System을 설정할 수 있는 장점을 가지고 있는 새로운 Input System을 알게되어 소개한다. 사용법 - 2DGame 1. InputSystem package 설치 2. PlayerInput component 추가 및 InputAction 추가 project창 -> 마우스왼쪽클릭 -> create -> 맨밑쪽 InputAction 생성 -> 더블클릭후 이름 정의 Action T..

Unity2D - 간단한 바운스볼 로직 구현

게임 오브젝트가 벽을 튕기는 동작을 구현 하다 바운스볼은 어떻게 하면 만들 수 있을까 궁금증이 생겼다 1. 첫번째 방법 Physics Material 사용 Bounciness를 1로 하게되면 운동에너지가 그대로 보존되어 공이 일정한 높이로 튀어 오를 거라 생각하여 rigidBody와 함께 사용해 보았다. 이 설정으로 만 시작하면 공이 점점 높이 뛰어 오르는데 이를 해결하기 위해서는 충돌검사를 연속적으로 이루어지게 해야된다. 따라서 Rigidbody2D의 Collision Detection 부분을 Continuous로 수정 하면 된다. 2. 두번째 방법 AddForce 사용 그럼 땅에 닿았을때 일정한 크기의 힘을 가하면 어떨까 라는 생각으로 AddForce가 떠올르게 되었다 여기에서 ForceMode를 I..

Unity3D - Custom Editor 제작

사용 이유 Editor Mode에서 GameObject의 크기를 조정하거나 이동시킬수 있다. 이러한 조정을 Script에 적용하고 싶은때 사용하는 방법이 Custom Editor이다. 카메라 제어를 통한 예제 1. 기본 스크립트 카메라 위치 제어 코드 using UnityEngine; public class TestCamera : MonoBehaviour { public float height = 5.0f; public float distance = 5.0f; public Transform target; private void LateUpdate() { CameraUpdate(); } public void CameraUpdate() { transform.position = target.position +..

Unity 광고 추가 방법 - UnityAds 최신버전

1. window -> general -> advertisement Legacy install한다 2. ads광고 초기화 코드 -> 여기에서 _androidGameId, _iOSGameId만 추가해 주면 된다. using UnityEngine; using UnityEngine.Advertisements; public class AdsInitializer : MonoBehaviour, IUnityAdsInitializationListener { [SerializeField] string _androidGameId; [SerializeField] string _iOSGameId; //실제 배포를 원하면 false로 해두자 [SerializeField] bool _testMode = true; private ..