일단 유니티 자체적으로 국가코드를 불러올 수 있는 방법은 없는 것 같아요. 우회적인 방법으로 언어 기반으로 간접적으로 알 수 있지만 신뢰도가 낮지요. 그래서 좀 더 신뢰도 높은 정보를 가져오려면 어떻게 해야하는지 정리하는 글입니다. ------------------ 1. 유니티에서 AAR 혹은 JAR 사용하기 유니티 메뉴얼에서 AAR플러그인 관련 문서입니다. https://docs.unity3d.com/kr/2017.4/Manual/AndroidAARPlugins.html AAR 플러그인과 Android 라이브러리 - Unity 매뉴얼 Android Archive(AAR) 플러그인은 컴파일된 Java, 네이티브 (C/C++)코드, 리소스 또는 Android 매니페스트가 포함된 번들입니다. .aar 파일 ..
지금 당장은 터치와 오브젝트 간의 충돌 설정을 위해서 레이어마스크를 쓰고 있는데요... 콜라이더가 여러개일경우 아니면 오류 설정을위해서 레이어마스크를 사용해야 합니다. 레이어마스크는 비트 마스크로 마스킹을 하는데요. 근데 이게 제가 대충 사용법만 알고 있었지 뭔 원리인지 모르겠어서 한 번 이 포스트에 정리해보려 합니다. 위에 보이는 레이어 설정창을 보면 커스텀 레이어가 8번부터 되어있는 걸 볼 수 있는데요. 이 숫자가 걍 보기 편하라고 있는 줄 알았는데 비트마스크의 역할을 하게 하더라고요. 그래서 LayerMask.GetMask("StageBtn"); 의 리턴값은 1024가 되는거죠 (2의 10승) 여기서 만약 레이어마스크에 UI레이어를 같이 검사하고 싶으면 2의 5승인 32를 더해서 1056이 되는 거..
DateTime 은 날짜 + 시각을 표현할 수 있음. 기본생성은 생성자에 년,월,일,시간 등을 써서 초기화하는 거임 // 특정값 입력으로 초기화 DateTime dt = new DateTime(2019, 05, 31, 16, 4, 1); // 지금 기준으로 초기화 DateTime dt = DateTime.now; // 오늘 날짜로 초기화 DateTime dt = DateTime.Today; // 기준 날짜부터 계산하기 DateTime tomorrow = dt.AddDays(1); DateTime yesterday = dt.AddDays(-1); // 날짜만 사용, 시간만 사용 DateTime date = dt.Date; DateTime time = dt.Time; // ToString()으로 포멧 사용하..
개발하다가 짜증나는 상황은 많다. 하지만 짜증나는 상황이란 것은 익숙해지기 마련 버그 발견하고 고치고 하는 것은 이제 짜증보다는 해결의 희열에 의의를 두며 스트레스 없이 넘기곤 한다. 하지만 그 와중에 킹빡치는 상황이 가끔 일어나는데 오늘이 그런 상황 중에 하나였다. 필자가 윈도우즈를 한 달 전에 새로 깔았는데 그 과정에서 사용자 이름을 쓰라길래 별 생각없이 내 이름을 기입했다. 그런데 한 달이 지나고서야 그로인한 문제를 발견하였고 한글로 되어 있는 폴더 이름을 바꿔야한다는 사실을 알게 되었다. 정확히는 유니티 상에서 구글 플레이 게임 서비스 충돌이 일어나서 끙끙대다 알아보니 한글폴더 문제라는 것. 도대체 2019년에 아직도 이런일이 있나 싶긴하지만.. 어쨌든 해결에 초점을 두게 되었다. 암튼 이것을 해..
길지 않게 필요한 것만 써보려 합니다. 결국 퍼온건데 이 링크 기반입니다. http://ko.esotericsoftware.com/spine-unity#spine-unity Spine-Unity Runtime Documentation Forums | GitHub | Additional documentation Integrating an official Spine Runtime into your applications requires a valid Spine license, though you are welcome to use the Spine Runtimes for evaluation purposes. Adding spine-unity into your Unity project: Do ko.esoteri..
2019년 5월 21일에서 22일까지 COEX에서 열린 우리나라 유니티 관련 최대행사 다녀왔습니다. 가장 처음에 느낀 것은 사람 왜 이리 많아? 코엑스라고하는 우리나라에서 가장 큰 규모의 행사장에서 함에도 불구하고 너무나도 비좁다는 생각이 들었다. 대기줄은 끝이 없고 인구밀도가 너무 크고 자연스럽게 새치기를 당함을 보면서 당황스러울 지경. 많은 세션은 앉지도 못하고 서서 들어야만 했다. 그럼에도 개인적으로 자극이 되었고 좁은 시야의 내가 좀 더 넓은 시야를 갖게 도와주었기에 피곤했지만 의의가 큰 행사였다. ----- 유니티 2019 버전 관련 세션 유니티가 추구하고 있는 방향성을 명확히 보여주는 세션들이었다. 그간 약점으로 지적되어온 하이엔드 퀄리티 AAA게임들을 유니티로 제작할 수 있음을 증명하는 자리..
즉 화면을 좌우로 스크롤하면 오브젝트가 그에 따라서 회전하게 하는 것을 구현하려고 합니다. 대충 어떻게든 되게 하는 것은 쉽지만 이것을 좀 맛있게 하게 하는 데에 시행착오를 겪어서 글을 적어봅니다. 즉 이 움짤처럼 하고 싶은 거임. 단순히 드래그에 따라서 움직이게 하는 것이라면 스크롤이라는 편안한 컴포넌트가 있지만 회전은 결국 다시 만들어야 하더군요. 저는 패널에 이벤트시스템 인터페이스를 붙여서 구현하는 중입니다. 일단 패널을 만드려면 Image 컴포넌트가 필요하기 때문에 Image가 존재하는 패널에 붙여서 써주세요. 존재해야하는 기능 리스트 Threshold : 충분히 움직이지 않으면 드래그를 시작하지 않는다. 작은 터치로도 움직이게 하는 것 방지. 드래그를 움직이면서 끝내면 그 속도에 탄력적으로 반응..
정확하게는 유료화는 아니지만 아무튼 JDK를 사용하기에 껄끄러워진 것은 맞다. 암튼 기존에 쓰던 JDK예전버전을 쓰느니 Open JDK를 사용하는 것이 맞는 것 같아서 알아보니, 럴수럴수 안드로이드 스튜디오에 이미 Open JDK를 깔아져서 쓰고 있었네. 그래서 내가 해야하는 것은 1. 윈도우 검색창 "시스템 환경변수 편집" -> 환경 변수 ->시스템 변수에 "JAVA_HOME" 등록해서 해당폴더 입력하기 (bin폴더말고 그 상위폴더로 하면 됨) -> Path에 "%JAVA_HOME%\bin" 등록하기 2. 유니티 edit/preference/external tools 에 JDK 부분에 경로입력하기 이것만 해주면 대응완료 인듯 물론 빌드 안해봐서 되는지 안되는지 안해봄 ㅅㄱ
이따금씩 이 방법을 써야 좋을지, 저 방법을 써야좋을지 모르겠을 때가 있다. 그럴 땐 이론적으로 접근하거나 자료를 찾아보거나 하지만 개운치 않을 때가 많고 직접 검증해봐야 속이 후련할 때가 있다. 그럴 땐 그냥 시간을 재서 어떤 스크립트가 더 빠르게 작동하는지 알아보는 게 낫다. 그럴 때 필요한 진단도구가 걍 스탑워치 쓰는거임. Text text; Stopwatch sw; int[] arr = new int[10000]; private void Start() { for (int i = 0; i < arr.Length; i++) { arr[i] = Random.Range(0,10); } sw = new Stopwatch(); } public void MyFunction() { sw.Reset(); sw.S..
햇볕을 쬐던 사람이 있다.그 아래에서 너무나도 밝게 뛰어 놀았던 그 사람.햇볕을 받아 주변을 밝게 하는 그런 사람이었다. 달은 그 사람이 너무 좋아 밤으로 그 사람을 초대했다.그 사람은 달빛과 밤을 햇볓처럼 마찬가지로 사랑해주었다. 달은 그 모습을 너무 좋아해서햇볕으로 다시 그 사람을 돌려보내려하지 않았다.몇 년이고 달은 그 사람을 자신의 빛 아래 가두려 했고어느새 그 사람은 햇볕을 몇 년간 보지 못했다. 그 사람은 떠나고 싶단 맘이 들었지만 달이 쓸쓸해질 것을 알기에 한없이 머무르려 했다.달은 그 사실에 만족해했다.하지만 또한 시간이 지나고 달은 깨달았다.그 사람에겐 달빛이 그늘이라고. 달은 그 사람에게 자유롭게 떠나라고 화를 내며 말했다.바보같이 상처 가득한 말을 늘어놓고서달이 싫어질 정도로 아픈 말..