728x90
리스트안의 bool의 갯수, 체크 하기 어쩌다가 Update안에서 5개의 bool값 중에 true인 것의 갯수를 받아야하는 난관을 겪게되는데 그 때 사용했던 방법을 작성해볼까 합니다. 문제가 뭐였냐면,,,, 트루가 됬을때 갯수를 +1해주는게 업데이트 안에 들어가닌까 값이 계속 추가되는 것이였는데 내가 원하는 것은 5개의 bool 에서 1개가 트루이면 1개라는 걸 알아야하는 문제였습니다. 다음과 같이 4개의 버튼을 주고 버튼을 눌리면 true로 변하고 다시 누르면 fasle로 변하는 버튼 함수를 넣어주고 업데이트에서 계속 bool이 true인 갯수를 확인 할 수 있도록 현재bool의 갯수 텍스트를 넣어줬습니다. bool +=1이렇게 하면 계속 true가 되면 계속 bool의 합계가 올라가겠지만 int Te..
텍스트메시프로(TextMeshPro) 사용시, 한글 깨짐 현상 대처 방법 텍스트 매쉬 프로를 사용하다 보면한글을 입력해야 하는 경우가 반드시 오게되는데 그냥 TMP에 한글을 입력하면 다음과 같이 요렇게 한글이 나오는 것을 확인 할 수 있습니다. 이럴 경우에는 Window - TextMeshPro- Font AssetCreater 창을 열어줍니다. 일단 원하는 폰트를 하나 다운 받아줍니다.그리고 SourceFontFile에 사용할 폰트를 넣어주고Character Set -> ASCIIRender Mode -> SDF로 설정하고 GenerateFontAtlas를 눌러주면위와 같이 폰트가 만들어진 것을 확인 할 수 있습니다. 그리고 만들어진 텍스트를 넣어도 바뀐게 없는 것을 보실수있습니다!이담음 해..
개발을 하다 보면 해당 Gameobject를 포함하고 있는 하위(자식) object들이나 상위(부모) object를 알아야하거나 가져와야하는 경우가 많다. 해당 접근 방법을 어떻게 사용하냐에 따라서 다양한 방법으로 오브젝트에 접근하는 방법이 있다. 1. 상위(부모) 오브젝트 접근하기 transform.parent는 해당 스크립트를 가진 오브젝트의 바로 위에있는 부모를 가져온다. //현재 오브젝트의 부모 찾기 public class x : MonoBehaviour{ GameObject parent = null; void Start() { gameobject = transform.parent.gamObject; //해당 오브젝트 부모의 오브젝트 gameobject = transform.GetComponent..
버튼을 이용한 웹사이트(URL) 연결하기 버튼을 클릭 했을 때 해당 사이트가 원하는 사이트가 열리는 코드를 짜보려고 합니다. 일단 새프로젝트를 만들어주시고 버튼을 하나 만들어 줍니다. 대에추웅 이렇게 ~ 넣어주고 원하는 이름의 스크립트를 하나 만들어주세요! 저는 [SiteManager]라고 이름 지었습니다 😁😁 그리고 원하는 오브젝트 안에 [SiteManager] 를 넣어주세요! 버튼에 이벤트를 넣기 위해서 [SiteManager]에 다음 코드를 작성해 줍니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class SiteManager : MonoBehaviour { public void OnC..
유니티 안에서 웹캠(WebCamTexture) 화면 띄우는 방법 유니티 화면에서 카메라를 띄우는 방법은 매우 간단합니다. https://docs.unity3d.com/kr/530/ScriptReference/WebCamTexture.html UnityEngine.WebCamTexture - Unity 스크립팅 API WebCam Textures are textures onto which the live video input is rendered. docs.unity3d.com GetComponent - RawImge 오브젝트를 하나 만들어주고 유니티 엔진에서 제공하는 WebCamTexture 를 사용해줍니다 WebCamTexture는 라이브 비디오 입력을 렌더링하는 텍스쳐로 카메라를 그려주기 위해서 사용..
List Shuffle(리스트 랜덤으로 순서 변경) 하기 리스트의 순서를 랜덤으로 변경하는 코드이다. 데이터를 개수만큼 생성 이후에 랜덤으로 순서를 변경한다. 기본적으로 Swap의 코드로 구성되어있다. Genergeneric type으로 선언해서 List의 어떤 형태든 가능하도록 했다. public List GetShuffleList(List _list){ for (int i = _list.Count - 1; i > 0; i--) { int rnd = UnityEngine.Random.Range(0, i); T temp = _list[i]; _list[i] = _list[rnd]; _list[rnd] = temp; } return _list; } public List str_list; GetShuffle..
CSV를 이용해서 엑셀 파일을 불러오자 불러올 데이터 엑셀 파일을 저장해서 [Assets > Resources ] 폴더 안에 넣어준다. 이제 엑셀 데이터 파일을 분석해서 원하는 형태로 다시 만들어주기 위해서 다음 코드를 이용해서 파싱을 해준다. 1. CSV파일을 불러오기 1) 내부에서 파일 불러오기 using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Text.RegularExpressions; using System.IO; public class CSVReader : MonoBehaviour { static string SPLIT_RE = @","; static str..
이벤트(Event)란 무엇인가? Events는 이벤트를 '발생 시키는 쪽'과 이벤트에 대해 '반응하는 쪽'으로 되어 있다. 예를들어서 한개의 채널이 있을 경우 이 채널에 존재하는 구독자들이 있다고 생각했을 때, 채널 주인이 글을 올렸을 때 구독자들에게는 채널장(이벤트 게재자)이 글을 올렸다고 알림이 가는 것 처럼 알려주는 것을 이벤트라고 생각하면 된다. 이벤트 게재자(Publisher)가 글을 올렸는데 구독이 되어있어어지 게시글을 확인 할 수 있다면 구독자(Subscribers)가 없을 경우 글에 대한 반응(처리)를 할 수 없을 것이다. 그리고 게재자와 구독자가 1명이라도 있을 경우 Publisher가 글을 올렸을 때 Subscriber 에게 게재가가 글을 올렸다는 알림을 보내주는 과정(처리)를 [이벤트..
유니티에서 특정 코드를 반복적으로 실행하기 위해서 Update문에 코드를 작성하여 반복적으로 불러오기 위해서 사용한다. 코루틴도 Update와 마찬가지로 특정 코드를 반복적으로 실행하기 위해서 사용하는데 코루틴과 Update의 차이점은 Update에 작성된 코드는 매 프레임마다 계속 반복적으로 실행되어 효율적이지 않을 수 있다. 그런 경우 코루틴을 사용해서 자신이 필요한 순간에만 반복하고 필요하지 않은 경우에는 멈출 수 있는 코루틴을 효과적으로 많이 사용한다. 코루틴을 사용하기 위해서는 IEnumerator 라는 반환형을 사용해 주어야하고 마지막에는 yield return 반환 값을 작성해 주어야 합니다. * yield return을 넣어주지 않으면 코드상에 에러가 발생하는 것을 확인 할 수있습니다. *..
인스펙터 안에서 텍스트 Color값 변경하기 스크립트를 이용해서 UI Text의 색상을 변경하기 위해서는 인스펙터창 안에서 를 넣어서 다음과 같이 텍스트 색상을 변경 할 수도 있으나 해당 글은 스크립트를 사용해서 버튼을 눌렀을 때 원하는 색상으로 바꾸는 방법을 알려드리려고 합니다. 일단 새로운 스크립트를 하나 만들어서 버튼을 눌렀을 때 색상이 변해야 하기 때문에 그에 맞는 스크립트를 작성해 줍니다. Hex code를 이용해서 RGBA color값 변경하기 아래의 사이트에서 원하는 색상의 Hex code를 찾아서 newColor_code의 string에 적어주시고 버튼안에 적용해주면 됩니다. public Text btn_txt; Color newColor; string newColor_code; publi..