본문 바로가기

이전 게시물들/유니티

(9)
C# List 주요 함수 출처: http://www.csharp-examples.net 출처: https://tenlie10.tistory.com/155 생성자 var list = new List(); list : (empty) var listA = new List() {3, 2, 1}; listA : 3, 2, 1 var list = new List(listA); listB : 3, 2, 1 var list = new List(10); list.Count : 0 list.Capacity : 10 List[index] list : 3, 2, 1 int item = list[1]; item : 3 list : 3, 2, 1 list[1] = 4; list : 3, 4, 1 List.Add list : 3, 2, 1 list.Add..
유니티 가상 조이스틱(브롤 스타즈 방식) 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 ..
ToBeCuBe에 사용된 옵션 세팅 개요 유니티 기본 UI(슬라이더, 버튼, 패널 등)와 PlayerPrefs를 이용해 간단하게 만들었습니다. 코드 //유니티 기본 UI를 이용한 옵션입니다. public Slider bgmSlider; public Text bgmValueText; public Slider soundSlider; public Text soundValueText; public Slider sensSlider; public Text sensValueText; //슬라이더 값이 변경 될 때 호출해줄 함수들입니다. public void BgmVolumeChange() { bgmAudioSource.volume = bgmSlider.value; bgmValueText.text = (bgmSlider.value * 100).ToStr..
플렛폼 구분 개요 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..