분류 전체보기 226

딕셔너리 (Dictionary)

딕셔너리 : 데이터를 구별할 수 있는 Key와 데이터인 Value의 KeyValuePair의 타입을 저장하는 콜렉션 Key와 Value는 한 쌍으로 Key를 통해 Value값을 알 수 있고, 당연히 Key는 중복될 수 없다 선언 방식은 다음과 같다 Dictionary 이름 = new Dictionary(); Dictionary dic = new Dictionary();     => 왼쪽이 Key 오른쪽이 Value  이처럼 딕셔너리는 Key와 Value에 쓰일 두 개의 자료형이 필요하다. 이제 딕셔너리의 사용법을 알아보자 Add 메소드를 통해 Key와 Value를 저장한다Dictionary dic = new Dictionary();dic.Add(0,100);dic Add(0,5..

리스트 (List)

리스트 : 하나의 목록처럼 배열과 유사한 방식으로 데이터들을 저장하는 컨테이너배열 같은 경우는 크기가 생성 당시의 크기로 제한되기 때문에, 크기 변경을 위해서는 배열을 새로 만들어야 한다하지만 리스트는 배열의 크기가 동적으로 바뀌기 때문에 메모리가 허용하는 만큼 자동으로 늘어난다 또 데이터가 순차적으로 저장되는 *연속적인 특성을 가진다.* 연속적 : 데이터가 서로 연결되어 있어 다음 데이터의 주소지를 쉽게 찾아갈 수 있다.                또, 다음 데이터의 주소지를 알고 있기 때문에 반복문 사용에 적합하다 우선 List의 선언은                      List 변수명 = new List();                ex) List num = new Lis..

UI 응용 총정리

총 4가지를 만들 예정이다 1. 버튼1을 누르면 버튼 3,4를 사라지게 하기 / 버튼2를 누르면 버튼 3,4를 나타나게 하기 2. ShowPopup 버튼을 누르면 Popup상자를 나타나게 하기 / Popup상자에 달린 close버튼을 누르면 사라지게 하기 (글자제한 5글자) 3. Popup창의 Inputfield에 이름 입력. 두글자 이하면 두글자 이하버튼, 세글자 이상이면 세글자 이상 버튼이 나타나게 하기 4. [세글자 이상 버튼] 대신 [닉네임 변경]으로 버튼이름 변경. [닉네임 변경]을 누를시 텍스트 상자에 "[바뀐 이름]으로 변경되었습니다" 출력. 1. 버튼1을 누르면 버튼 3,4를 사라지게 하기 / 버튼2를 누르면 버튼 3,4를 나타나게 하기 캔버스를 만들고 그 안에 버튼 4개를 만들어준다 우선..

유니티/UI 2024.02.07

UI 응용2 (버튼 클릭시 나머지 버튼 비활성화 시키기)

임의로 버튼 3개를 만든다 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIComponent : MonoBehaviour { [SerializeField] private Button btn1; [SerializeField] private Button btn2; [SerializeField] private Button btn3; void Start() { this.btn1.onClick.AddListener(() => { // 2,3번 비활성화 this.btn2.gameObject.SetActive(false); this.btn3.gameObject..

유니티/UI 2024.02.07

UI 응용1(클릭시 문자열 출력)

원래 Canvas였던 이름을 UIComponent로 변경해준뒤 같은 이름의 스크립트도 만들어 넣어준다 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIComponents : MonoBehaviour { [SerializeField] private Button blueButton; public void BlueButtonClick() { Debug.Log("Blue Button Clicked!"); } } 스크립트에는 버튼을 클릭할때마다 Blue Button Clicked! 이라는 메세지가 콘솔창에 뜨게 만들거다 using System.Collect..

유니티/UI 2024.02.07

버튼 만들기

우선 버튼을 따올 소스이미지를 가져오기 위해 캔버스를 만든뒤 그 밑에 이미지를 하나 더 만든다 소스로 사용될 이미지를 붙어준다 처음에 Scene뷰에 부자연스럽게 들어가있지만 Inspector창의 Set Native Size를 클릭한다면 자연스럽게 맞춰진다 UI를 따기 수월해지도록 소스이미지의 알파를 내리고 색상도 살짝 어두운 계열로 내려 투명하게 해준다 이번엔 이 Blue 버튼을 따볼 예정이며 버튼이기 때문에 캔버스안에 버튼을 하나 추가한뒤 bluebutton으로 이름을 바꿔준다 만들어진 버튼을 원본위에 겹친다 이 버튼에 입힐 원본 소스를 찾고, 버튼 소스 이미지에 집어넣어준다 외형은 어느정도 비슷해졌지만 크기를 정확히 똑같게 하기 위해 버튼의 활성화/비활성화를 반복한다 이런식으로 반복해가며 정밀하게 사..

유니티/UI 2024.02.07

스크린 좌표 / 월드 좌표

스크린 좌표계는 화면의 width(넓이)와 height(높이)에 따라 x , y 좌표가 정해진다. 화면의 넓이와 높이를 결정하는 해상도의 픽셀(pixel)에 따라 화면에 나타내는 2D 좌표계이다.  마우스 포인터의 위치, 캔버스 등이 이 좌표계를 사용한다.마우스를 클릭하는 위치, 손가락으로 터치하는 위치를 가져올때 사용할 수 있다  Scene에서 나타나는 게임세계에서의 게임 오브젝트 위치를 나타낼때 사용한다Inspector창의 Transform에 있는 좌표이다  스크린 좌표로 본다면 당연히 접시는 가운데쯤 위치하지만 게임속 바구니의 위치는 0,0,0으로 맞춰져있다  이 스크린 좌표를 월드 좌표로 변경하는데 사용하는게 바로 Ray이다  if (Input.GetMouseButtonDown(..

레벨 디자인, Debug.DrawRay, RayCast, RayCastHit

우선 카메라와 스테이지를 넣은뒤 위치나 방향을 조절한다 2D는 어떤지 모르겠는데 3D는 기왕이면 오브젝트도 깔끔한 위치에 배치하는것이 가장 베스트인것같다 내가 이걸 신경안쓰고 오브젝트 아무렇게나 놓았다가 고생하고 다시 만드는중이다 2D와 달리 3D에서는 기본적으로 라이트가 제공된다. 이번게임은 그림자가 이용되는 게임이기에 라이트를 조절해보자 Light를 선택하고 바로 위에서 직빵으로 빛을 비춰야하기 때문에 Rotation X축을 90도로 맞춘뒤 빛이 너무 강하지 않게 Intensity를 0.7로 내려주자 그리고 바구니를 배치해주자. 혹시 바구니의 그림자가 너무 부자연스럽다면 설정창에서 조절 가능하다 Edit - Project Setting - Quality - Shadow Distance : 30 바구니..

동기 / 비동기

동기(synchronous) : "동시에 일어나는" 말 그대로 동시에 일어난다는 뜻. 요청과 그 결과가 동시에 일어난다는 일종의 약속요청한 작업에 대해 완료여부를 따져 순차적으로 처리바로 요청을 하면 얼마가 걸리던지 요청한 그 자리에서 결과가 주어져야 한다  설계가 매우 간단하고 직관적이지만 결과가 주어질때까지 아무것도 못하고 대기해야한다   비동기(Asynchronous) : "동시에 일어나지 않는" 요청과 결과가 동시에 일어나지 않을거라는 약속요청한 작업에 대해 완료 여부를 따지지 않는다. 다음 작업 그대로 수 동기보다 설계가 복잡하지만, 결과가 주어지는데 시간이 걸리더라도 그동안 다른 작업가능. 자원관리 효율적  쉽게 말해 동기와 비동기의 차이는 작업을 순차적으로 수행할지 아닌지의 차이이다

직렬화(Serialization)와 역직렬화(Deserialization)

직렬화 : 객체를 연속된 Byte나 string으로 변환하는 과정을 의미. 즉 객체의 복사본으로 되돌릴수 있음              또, 객체를 파일의 형태 등으로 저장하거나, 통신하기 쉬운 포맷으로, 전송 가능한 형태로 변환하는 과정을 의미 쉽게 말해 직렬화는 응용 프로그램에서 쓰는 데이터를 네트워크를 통해 전송하거나DB 또는 파일에 저장 가능한 형식으로 바꾸는 프로세스이다 더 쉽게 말해 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하게 위한 형식으로 변환하는것역직렬화 : 직렬화된 파일 등을 역으로 직렬하여 다시 객체의 형태로 만드는것을 의미                  저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체의 형태로 복원한다 쉽게 말해 외부 소스에서 데이터를 읽고 이를 ..

반응형