본문 바로가기

Unity

(12)
Unity - 진동(Vibration) - 안드로이드 한정 모바일 게임을 만들 때 진동을 사용할 때가 있음 본인은 구글링하다가 찾은 것이 플러그인 플러그인 해당 코드는 아래와 같음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 using UnityEngine; using System.Collections; public static class Vibration { #if UNITY_ANDROID && !UNITY_EDITOR public static AndroidJavaClass unityPlayer =..
Unity - 사운드 조절하기 - Slider로 조절 사운드를 켜고 끄고 하는 것은 크게 두가지 있음 1) Sound Toggle (on/off) 2) Sound Manipulation (0~100) 1) Sound Toggle (on/off) 코드 살펴보기 스크립트 작성하고 Button 만들어서 OnClick에 넣어주면 됨 설명하자면 Audio출력에 힘을 주고 안주고가 아니라 Audio입력받는 쪽(AudioListener)가 볼륨을 줄이는 것. 2) Sound Manipulation (0~100) 스크립트로 조절하기 위해서는 아래와 같은 과정이 필요 (참고로 스크립트와 슬라이더로 조절할 것임) 1. Audio Mixer를 켜서 오디오 그룹만들기 2. Expose 설정과 파라미터 설정 3. 스크립트와 슬라이더 사용 1. Audio Mixer를 켜서 오디오 ..
Unity - 오브젝트풀(ObjectPool Pattern) 구현하기 (심화) - DontDestroyOnLoad 오브젝트풀 대해 기본적구현을 모른다면 아래를 확인 https://malbongcode.tistory.com/38 Unity2D - 오브젝트풀(ObjectPool Pattern) 구현하기 (일반) 오브젝트풀(ObjectPool)이란? 위에서 설명하는 것 처럼 생성 디자인 패턴임 생성된 오브젝트의 집합을 사용하는 것임 필요할 때 마다 생성하고 파괴하기보다는 미리 생성해놓고 사용하는 것임 또한 계속 생성(Ins.. malbongcode.tistory.com 이번엔 오브젝트풀에 대한 조금 다른과정을 살펴보려 함 오브젝트 풀을 DontDestroyOnLoad 하는 것을 보려 함 Scene이 몇개 없는 상태에서 Scene의 전환이 빈번할 때 ex. 메뉴씬과 게임씬만 있는 경우 게임 Scene에서 오브젝트풀을 생성하..
Unity - 오브젝트풀(ObjectPool Pattern) 구현하기 (일반) 오브젝트풀(ObjectPool)이란? 위에서 설명하는 것 처럼 생성 디자인 패턴임 생성된 오브젝트의 집합을 사용하는 것임 필요할 때 마다 생성하고 파괴하기보다는 미리 생성해놓고 사용하는 것임 또한 계속 생성(Instatiate)하고 파괴(Destroy)하면 오버헤드가 생기는데 오브젝트풀을 사용해서 방지할 수 있음 생성과 파괴를 자주하는 것일 수록 오브젝트풀은 효과적 ex) 총알, 파티클, 적들... 구현방법 1) 어디서든 접근가능 해야하므로 싱글톤으로 작성 2) 어떠한 오브젝트를 미리 생성 후 활성화를 꺼줌 3) 그 오브젝트를 List같은 집합군에 넣어줌 4) 그 오브젝트를 다른 스크립트에서 필요하면 사용하게끔 Get 함수를 만들어줌 5) 필요한 곳에서 사용 구현 1) 어디서든 접근가능 해야하므로 싱글톤..
Unity - Pause 버튼 구현하기(Time.scaleTime) 예시는 아래와 같음 구현하기 1. Time.timeScale 이용하기 Time.timeScale이란 아래와 같음 슬로우모션이나 더욱빠르게, 혹은 멈추게 할 수 있음 즉, 버튼을 누른 순간 Time.timeScale = 0; 해주면 됨 2. Button으로 상호작용하기 1) Button에 있는 컴포넌트에 OnClick에 달아줄 함수를 만들어줌 (본인은 그냥 한곳에 몰아넣음) 2) 또한 플레이어는 움직여야 하므로 Update문에서 Translate() 해줌 전체 코드는 아래와 같음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 using System.Collections; using System.Co..
Unity - 블랙홀(Point Effector 2D) Unity에서 지원하는 Point Effector를 사용하여 플레이어가 영혼을 흡수하는 것을 구현하려함 예시는 아래와 같음 Player Player 오브젝트를 만들어주고 키입력받아 이동할 것이기 때문에 Rigidbody를 추가해줌 또한 흡수한 영혼이 Player에 닿으면(충돌하면) 로직이 실행되어야 하므로 Collider도 추가함 Player오브젝트 자식으로 Absorber를 추가해서 넣어줌 Absorber가 진짜 영혼을 흡수하는 오브젝트임 Absorber의 컴포넌트임 1) Absorber의 Collider는 꼭 Used By Effector로 사용해야 함 -> 아래의 Effector로 사용되겠다는 뜻 2) Point Effector 2D가 진짜 블랙홀 역할을 하는 컴포넌트 본인은 영혼을 제외한 다른 오..
Unity - 인디케이터(Indicator)구현 인디케이터(Indicator)는 화면밖에 있는 적을 표시하기 위해 사용됨 OffScreen Indicator라고도 함 예시는 아래와 같음 1. 구현방법 생각 - 각도 구해서 인디케이터 방향 설정하기 - Camera.main.WorldToViewPort과 닮은 꼴을 이용하여 위치 설정하기 - 어디서 인디케이터를 생성하고 꺼줄지 생각하기 2. 구현 - 각도 구해서 인디케이터 방향 설정하기 먼저 defaultAngle을 구해서 위쪽, 아래쪽, 오른쪽, 왼쪽에 대한 연산을 하면 됨 편의상 dA라고 칭하겠음 위쪽 : -dA ~ dA 오른쪽 : dA ~ 180 - dA 왼쪽 : -180 + dA ~ -dA 아래쪽 : -180 ~ -180 + dA 또는 180 - dA ~ 180 그래서 defualtAngle을 구하..
Unity - 총알 구현하기(Bullet) 1. 구현방법 생각하기 1) 총알 만들기(Bullet) 이동, 충돌 처리, 이펙트 재생 2) 총알 나오는 곳(Bullet Shooter) 회전, 총알생성 2. 구현 1) 총알 만들기(Bullet) 마음에 드는 Sprite를 가져다가 만듬 (나는 y축+ 쪽이 머리인 스프라이트를 선택함) 총알은 앞으로 나가야 하기 때문에 rigidbody2D 설정 + Kinematic 설정 -> Script에서 velocity 설정할 것 총알은 Collider를 만나면 처리해야 함으로 Collider 추가 + Trigger 설정 -> OnTriggerEnter2D 사용 할 것 우선 앞으로 이동하기만 하면됨, 코드는 아래와 같음 -> 앞으로만 이동해야 하는데 자기 회전값에 대한 앞임, transform.up 신경써야 함 1 ..