C# 에서 편리한 기능으로 Delegate 가 있습니다. 비슷한 개념으로는 함수 포인터가 있습니다. Delegate의 여러가지 사용법이 있겠지만 오늘 사용해 본 것은 무엇을 할 것인가 (What)인 함수를 어떻게 할 것인가(How)로 Delegate를 통해 구현해 보았습니다. 1. 트리의 모든 노드를 탐색한다. 트리의 모든 노드를 탐색하기 위하여 재귀함수를 사용했습니다. 루트에서 탐색을 시작하여 루트의 하위 요소가 다른 노드의 부모일 경우 다시 함수를 호출하는 방식으로 트리의 모든 노드를 탐색하였습니다. 무엇을 할 것인가? 모든 트리의 노드를 탐색한다 라는 What의 관점에서 작성된 코드입니다. 소스코드 12345678910 private void TreeExplorer(TagData root) { fo..
1. IEnumerator 구현 소스코드123456789101112131415161718192021222324using System.Collections;using UnityEngine;public class UseIEnumerator : IEnumerator { public object Current { get { return null; } } public bool MoveNext() { return !Input.GetKey(KeyCode.Space); } public void Reset() { } } Colored by Color Scriptercs 123456789101112131415161718192021using System.Collections;using UnityEngine; public c..
1. if 사용 소스코드12345678910111213141516171819202122232425262728293031323334353637using UnityEngine; public class UseIf : MonoBehaviour { // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.A)) { KeyDown_A(); } if(Input.GetKeyDown(KeyCode.B)) { KeyDown_B(); } if(Input.GetKeyDown(KeyCode.C)) { KeyDown_C(); } } private void KeyDown_A() { Debug.Log("A"); } private void KeyDo..
EnemyAttack02 1234567891011121314151617181920212223242526272829using System.Collections;using System.Collections.Generic;using UnityEngine; public class EnemyAttack02 : MonoBehaviour { public PlayerHealth02 playerHealth; public int damage = 10; public float attackDelay = 0.5f; private float timer = 0; // Update is called once per frame void Update () { timer -= Time.deltaTime; } private void OnC..
소스코드 출처https://github.com/gportelli/UnityScreenResolutionManager/blob/master/Assets/ScreenResolutionManager/AspectUtility.cs 다양한 화면 비율의 문제와 래터박스 다양한 화면 비율에 맞춰 게임을 각각 개발하는 것은 매우 어렵고도 힘든 일입니다.하지만 화면 비율을 무시하고 게임을 개발하게 된다면 게임 플레이어들은 개발자가 의도하지 않은 상황에 처할 수 있으며 극단적으로는 게임을 플레이할 수 없게 되기도 합니다. 이러한 문제를 해결하기 위한 방법중 간단한 방법으로 래터박스가 있습니다. 대표적인 몇 가지 화면 비율로 개발한 뒤 그 외의 화면 비율에는 래터박스를 채워 화면 비율을 맞추는 방법입니다. 유니티에서 래터박..
12345678910111213141516171819using System; namespace Str{ class Program { static void Main(string[] args) { var First = "firstStr"; var Second = "secondStr"; var format = $"First = {First}, Second = {Second}"; var format2 = String.Format("First = {0}, Second = {1}",First, Second); Console.WriteLine(format + "\n" + format2); } }} Colored by Color Scriptercs format 과 format2 는 같은 코드이다. c# 6.0 이후 부..
Sin, Cos 그래프 Cos 값이 x 축, Sin 값이 y 축에 입력되면 x 축은 -2π 부터 -π 까지 좌측으로 이동하게 된다. 이 때 y 축은 -2π 부터 -3/2π 까지 올라가다 -3/2π부터 -π 까지 내려간다. 즉 두 x,y 값이 반원을 그리게 된다. 마찬가지로 밑의 반원도 같은 원리로 그려진다 원 운동 코드 123456789101112131415161718192021222324252627282930313233using System.Collections;using System.Collections.Generic;using UnityEngine;using UniRx;using UniRx.Triggers; public class Test : MonoBehaviour{ [Header("속도, 반지름..
Sin 그래프 Sin 그래프는 1, -1 을 반복 한다. 이를 이용하여 반복 움직임을 구현할 수 있다. 반복 움직임 코드 1234567891011121314151617181920212223242526272829using System.Collections;using System.Collections.Generic;using UnityEngine;using UniRx;using UniRx.Triggers; public class Test : MonoBehaviour { [Header("속도, 길이")] [SerializeField] [Range(0f,10f)] private float speed = 1f; [SerializeField] [Range(0f,10f)] private float length = 1..
현재 갤럭시 s8, 구글 픽셀 폰 이외의 기종은 ARCore 실행이 불가능 합니다. ARCore 공식 가이드 주소 1. 공식 가이드 2. 개발 환경 세팅 안드로이드 SDK버전 7.0 이상이 설치되어 있어야 합니다. 만약 안드로이드 스튜디오가 설치되어있지 않다면 파란색 Android Studio라는 링크를 통해 설치 후 SDK 7.0 이상을 설치하면 됩니다. 안드로이드 sdk 설치하는 곳 유니티는 Unity 2017.3.0f2 이상이 설치되어 있어야 합니다. SDK for Unity 링크를 통해 Unity 용 SDK를 설치합니다. 3 . 핸드폰 세팅핸드폰에서 개발자 옵션과 USB 디버깅을 체크합니다. arcore-preview2.apk 파일을 받아 핸드폰에 옮긴 후 설치합니다. 콘솔 창에서 adb를 통해 ..