- Today
- Total
목록분류 전체보기 (360)
프로그래밍 농장
리스트 ( List ) : 배열의 확장 + 여러가지 GameObject를 한번에 다룰수있다 ex) 실시간으로 특정 오브젝트에 대한 관리가 가능하다. - List의 첫번째 특징 기존 배열의 경우 아래와 같이 이미 지정해 놓은 array를 초과하면 OutOfRangeException을 반환한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScoreManager : MonoBehaviour { public int[] scores = new int[10]; private int index = 0; private void Start() { scores = new int[11]; } // Upd..
- Instance (인스턴스 ) : 어떠한 대상을 실존하는 무언가로 찍어낸다 (=미리 만들어놓은 GameObject를 게임 도중 필요한 만큼 찍어냄) ex) 총알이나 몬스터 등 . . public class Spwan : MonoBehaviour { public Transform spawnPosition; public GameObject target; // Start is called before the first frame update void Start() { //위치 & 회전도 아래와 같이 명시적으로 부여가능 GameObject instance = Instantiate(target, spawnPosition.position,spawnPosition.rotation); instance.GetComp..
유니티에서는 보통 좌표, 위치등을 설정하기 위하여 Vector3, Vector2 를 통하여 접하게 된다. 단순하게 Vector란, 정해진 갯수의 원소를 가지고 있는것을 뜻한다. ex) Vector3의 경우 (x, y, z) 세가지의 원소를 가지고 있는 경우 유니티 게임에서의 Vector란, '길이'와 '방향'을 가지는 존재이다. (2,3) 의 경우 : 1. 내가 (2,3) 지점에 있다 (절대좌표 : 시작지점 ) 2. 내 위치에 "상대적으로" (2,3)만큼 가고 있다. (현재 내 위치는 중요 x ) 좌표가 아래와 같이 (4,-3) 이라고 가정할떄, 백터의 크기 (Magnitude)는 5라고 할수있다. (속도, 거리 . .) Vector는 내 위치에서 '얼마만큼 가야' 목표위치에 도달할 수 있는지를 알수있다..
Unity와 연동되어 C# script를 사용할대 대부분 VisualStudio를 사용한다. 이때 자동완성 등 유니티에서 제공하는 플러그인들을 사용하지 못하는 에러가 발생할수있다. 이때에는 Unity - Edit- Preferences 에서 external tool을 비주얼스튜디오로 연동시켜주면 된다. -> 만약 여기까지하였는데 연동이 되지않는다면, c# 파일을 열고 비주얼 스튜디오우측 솔루션 탐색기에서 Assembly-CSharp(호환되지 않음) 을 클릭하여 설치해주면 정상작동 할것이다.
객체 지향 프로그래밍(Object Oriented Programming)이 가지는 중요한 특성 중 하나인 캡슐화(Encapsulation)을 보장하기 위하여, 클래스(Class)의 구조를 정의하는 과정에서 '멤버 변수'의 접근 제한자(Access Modifier)를 "private"으로 지정한다. "캡슐화"는, 공개를 허가한 자료(Data)에 대해서만 외부의 접근과 조작을 허용하고, 실제로 자료가 처리되는 과정 자체는 외부에서 알 수 없도록 숨기는 것을 말한다. (사용자가 제품의 내부 동작을 이해할 필요가 없고, 제품이 정상적으로 동작하기만 하면 됨) 소프트웨어 공학에서는 이것을 "정보 은닉(Informatin Hiding)"이라고 한다. 객체가 다른 객체의 내부 자료를 직접 확인(참조) 할수는 없고, ..
1. 코루틴 (Coroutine) 코루틴은 시간의 경과에 따른 절차적 단계를 수행하는 로직을 구현하는 데 사용되는 함수이다. 시간의 경과에 따른 절차적 단계에 대한 로직을 구현하는 것은 Update() 함수들에서도 가능하다. 매 프레임마다 호출되는 로직은 Update()에서 구현하면 된다. 하지만 초당 호출이나, 매 프레임마다 호출이 필요하지 않은부분을 매 프레임마다 호출하는 것은 바람직한 로직이 아니다. 추후 유지보수를 위하여 한 컴포넌트 내에서 Update() 함수와 별도로 일시적으로 돌아가는 서브 동작을 구현하거나, 어떤 다른 작업이 처리되는 것을 기다리는 기능을 구현하는데 쓰이는 것이 바로 코루틴이다. 코루틴(Coroutine)은 함수를 호출한다. -> 함수는 한 프레임에 호출되어 완료가 된다. ..