본문 바로가기

유니티

(9)
유니티 가상 조이스틱(브롤 스타즈 방식) using System.Collections; using System.Collections.Generic; using UnityEngine; public class VirtualJoystick : MonoBehaviour { public GameObject virtualJoystickBG; public GameObject virtualJoystick; public float maxMagnitude; public static Vector3 input { get; set; } private Vector3 downPos; private Vector3 dragPos; private Vector3 dir; private float magnitude; // Start is called before the first..
리지드바디와 이동, 회전, 애니메이션 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { public float turnSpeed = 20f; Animator m_Animator; Rigidbody m_Rigidbody; Vector3 m_Movement; Quaternion m_Rotation = Quaternion.identity; void Start () { m_Animator = GetComponent (); m_Rigidbody = GetComponent (); } void FixedUpdate () { float horizontal = Input.GetAxis ..
플렛폼 구분 개요 Unity는 “플랫폼 의존 컴파일”이라는 기능이 있습니다. 여기에는 몇 가지 전 처리기 지시문이 포함되어, 스크립트를 ’파티션화’하여 코드의 일부 섹션을 지원하는 하나의 플랫폼 독점적으로 실행할 수 있게 됩니다. 코드 #if UNITY_STANDALONE || UNITY_WEBPLAYER //PC의 경우 해야할 것들을 적습니다 #elif UNITY_IOS || UNITY_ANDROID || UNITY_WP8 || UNITY_IPHONE //모바일의 경우 해야할 것들을 적습니다. #endif 상세 https://docs.unity3d.com/kr/530/Manual/PlatformDependentCompilation.html
오브젝트 풀링 개요 유니티 오브젝트 생성(Instantiate)과 삭제(Destroy)시 가비지 콜렉터를 호출합니다. 오브젝트 풀링은 오브젝트를 미리 만들어 놓고 활성/비활성 으로 재상용하여 최적화하는 방법입니다. 아래 코드에서는 풀 사이즈를 정해놓고 배열로 구현했습니다. 리스트를 통해 구현하고 풀사이즈를 조금씩 늘려서 사용하기도 합니다. (풀 사이즈보다 더 많은 수의 객체를 필요로하면 조금씩 풀 사이즈를 늘린다) 객체를 다 사용하면 파괴하는 대신 비활성화 해주면 됩니다. 코드 public GameObject objPrefab; public int poolSize; private int poolIndex; private GameObject[] pool; void InitPool() { pool = new GameObj..
스와이프와 터치 개요 유니티에선 스와이프, 더플탭 등 기본 터치 이외의 경우는 직접 구현해줘야합니다. 게임에 따라 조금씩 차이가 있겠지만 주로 터치의 시작점과 끝점을 비교해 어떤 방향의 스와이프인지 판단하는 방법을 사용합니다. 스와이프 민감도 변수를 주어 터치, 스와이프를 동시에 판단하는 Swipe1() 정규화를 통해 방향을 판단하는 Swipe2() 코드 private Vector2 touchBeganPos; private Vector2 touchEndedPos; private Vector2 touchDif; private float swipeSensitivity; //스와이프와 터치 public void Swipe1() { if (Input.touchCount > 0) { Touch touch = Input.GetTo..
화면 비율, 해상도 레터박스(필러박스)로 해결하기 개요 화면비율이 좌우(상하)로 긴 영상을, 그것보다 상대적으로 비율이 짧은 화면/스크린에서 보여주려 할 때, 화면비율을 맞추는 방법 중 하나. 화면 상하로 검은띠가 생기는 건 레터박스, 좌우로 생기는 건 건 필러박스라고 한다. 이 글에선 상하 좌우 상관없이 레터박스라고 하겠습니다. 코드 /// /// 레터박스를 통해 원하는 화면 비율을 세팅해주는 함수입니다. /// /// 원하는 가로 비율 /// 원하는 세로 비율 void SetAspect(float wRatio, float hRatio) { //메인 카메라의 비율 변경을 위해 받아옵니다. Camera mainCam = Camera.main; //새로운 화면 크기 0f~1f의 값을 가집니다. float newScreenWidth; float newScr..
Unity Key Store 생성 키 스토어 이름은 변경 불가 Password, Confirm Password : 키 스토어의 비밀번호, 비밀번호 확인 Alias : 키의 이름 Password, Confirm Password : 키의 비밀번호, 비밀번호 확인 Validity : 키의 유효기간(년, 50~1000 사이) First and Last Name : 이름과 성 Organizational Unit : 팀 이름 Organizational : 회사 이름 City or Locality : 시, 군, 구 State or Province : 도, 시 Country Code : ko or kr 키스토어는 안드로이드의 앱 보안 시스템이다. Play Store에 게시할 때도 필요하다. 앱의 무단 수정을 막을 수 있다. 회사 단위로 키 스토어를 만..
유니티 Google Play Store 앱 등록, GPGS, AdMob 추가 순서 0. 개요 Goolge Play Store 앱 등록 Google Play Game Service (GPGS) Google AdMod 1. 순서 1.유니티 프로젝트 설정 키스토어를 이용한 앱 서명을 사용해야합니다. Scripting Backend를 Mono에서 IL2CPP로 변경하고 ARM64를 체크해야합니다. (빌드 시간이 길어진다) 2. Google Play 개발자 콘솔에서 애플리케이션 만들기 최소 출시 준비 단계까지 3. Google Play Game Service (GPGS) 연결 AssetDatabase.Refresh()가 에러라면 주석처리 4. Google AdMod 추가