즉 화면을 좌우로 스크롤하면 오브젝트가 그에 따라서 회전하게 하는 것을 구현하려고 합니다. 대충 어떻게든 되게 하는 것은 쉽지만 이것을 좀 맛있게 하게 하는 데에 시행착오를 겪어서 글을 적어봅니다. 즉 이 움짤처럼 하고 싶은 거임. 단순히 드래그에 따라서 움직이게 하는 것이라면 스크롤이라는 편안한 컴포넌트가 있지만 회전은 결국 다시 만들어야 하더군요. 저는 패널에 이벤트시스템 인터페이스를 붙여서 구현하는 중입니다. 일단 패널을 만드려면 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..
유니티 3D는 다양한 기능을 제공하고 있다.응 그렇다.많아서 다 쓰지 못하고 죽을 것으로 예상된다.그렇게 많은 기능들을 굳이 안 쓰는 이유는 쓰지 않아도 되기 때문임.써야되는 거면 이미 쓰고 있었을 것이다. 나는 제작년까지 그런 기능이 있었다.안 써도 되니까 회사에서 굳이 사용하지 않았던,그런데 필요성이 정말 많았던 바로 그 기능이 있다.바로 협업기능을 제공하는 콜라보레이트.제작년부터 있었는데, 사용하지 않았다. 나오자마자 사용해보았던 것 같은데 기능에 하자가 많아서 그거 고치고 앉아 있느니직접 파일전송 하면서 협업하는 게 불편해도 안정적이라고 생각했음.그런데 작년에 회사 대표와 한 번 써보자는 얘기가 나와서,활용하기 시작했는데, 서비스한지 1년 정도 지난이후이기에 그런지 많이 안정적으로 바뀌어있었다. ..
나는 반성한다.배움이 부족했다. 몰랐던 것에 대해 공부하는 포스트입니다. ㅁ 뭘 모르고 있었니?2d 플랫포머 게임을 만들 땐,충돌 검사를 리지드바디로 안 함.할 수도 있지만 권장되지 않음. 보통은 레이를 쏴서 충돌을 검사한다. 충분히 반성을 하고이것을 연구해보자.연구에 성공하면나도 이제 2d 플랫포머 게임을 만들 수 있음? 오우 사실 이미 만들고 있음.그러니까 더 알야아함. ㅁ 그럼 어떻게 하려고 했었는데?rigidbody 써서 물리검사 하려고 했지 당연히유니티 물리엔진에 의존할까 싶었음...이것도 나름 괜찮음이미 알고 있는 것이기도 하고편하고 인증되어있으니까.근데 연구하고 알아보니까,두 가지 측면에서 문제가 있더라고1. 퍼포먼스를 많이 필요로 한다.2. 입맛에 맞게 커스터마이징하기가 쉽지 않다. 그렇기..
NGUI를 처음부터 설명할 순 없으니 약간은 안다는 가정하에 시작해볼게요. (유료버전 기준입니다.) 1. 구조 잡기- Root --Camera --Scroll View ---Grid ----Content (0)----Content (1)...----Content (9) 이런 구조로 잡아줍니다.Root와 카메라는 NGUI의 기본 루트를 그대로 사용하고 있고요.Scroll view는 따로 만들 수 있습니다. NGUI->Create-> Scroll View 누르면 만들어집니다.Grid도 마찬가지로 NGUI->Create->Grid 눌러서 만들 수 있습니다.그리드 하위부터는 안의 내용물로서 이미지나 버튼, 레이블 등이 채워지게 됩니다. 2. 와꾸잡기1번에서 제대로 생성을 했다면,먼저 Scroll view부터 확..
무료 에셋이 있으므로 그걸 사용하도록 하자. https://assetstore.unity.com/packages/tools/input-management/json-net-for-unity-11347 임포트 하고... using Newtonsoft.Json; 한 이후에, 12345678910111213// 가데이터 생성List list = new List();list.Add(new MonsterJsonData() { hp = 10, idx = 1 });list.Add(new MonsterJsonData() { hp = 10, idx = 1 });list.Add(new MonsterJsonData() { hp = 10, idx = 1 });list.Add(new MonsterJsonData() { hp = ..
한번 만들어봤습니다. 플랫포머게임일경우 밑으로 빠지는 것까지 구현하지 않았기 때문에그냥 간단하게 필요로 하는 거 까지만 했습니다. 1234567891011121314151617181920212223242526 public Button jumpBtn; public Transform heroTrans; void Start () { jumpBtn.onClick.AddListener(()=> { Jump(); }); } float ySpd; public float defaultYspd; void Jump() { isJumping = true; ySpd = defaultYspd; } bool isJumping; public float gravity; void Update () { if (isJumping) { y..
프로그래밍적으론 별건 아니지만게임의 시야를 넓히기 위해선 하나의 유닛이 아니라 여러 유닛을 컨트롤 해봐야 합니다. 대표적으로 전략시뮬레이션이 있고요.축구 게임도 마찬 가지겠죠. 1인칭이라는 시야에서 벗어나다자 주인공에 포인트를 두는 것은 중요한 일인 것 같습니다. 그런 김에 한번 간단하게 다자 컨트롤을 만들어봤습니다.인풋은 마우스 클릭이고요.클릭된 지점에 보라색연기가 뿜뿜합니다. 영상부터 첨부할게요 스크립트는 두 개뿐입니다. 각 히어로에 붙을 히어로 스크립트와인풋을 받고 여러 신호를 전달할 Ex00 이라는 스크립트입니다. 올려볼게요. Ex00입니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748..
게임에 있어서 움직인다는 것은 가장 중요한 것이다. 시간과 공간이 있어 게임뿐만아니라 이 물질세계가 구현이 되는 것이고,그것은 지배할 수 있다는 것은 신의 권능을 위협한다는 것.그러므로 우리는 이 작고 거대한 세계를 지배하기 위한 첫번째 수단으로 시간과 공간을 지배해야만 하는 것이다....권력에 대한 야망이... 우리의 전두엽에서 비 개소리 그만 집어 치우고유니티에서는 포지션을 컨트롤 할 수 있는 방법이 상당히 여러가지가 있습니다.그 중에서 대표적인 것들을 몇 개 꼽아서스크립트와 영상으로 비교해서 보여드리겠습니다. 영상부터 보시죠. 총 7개의 움직임인데요,딱봐도 눈에 띄는 게 두 가지가 있죠.어떤 게 어떤 방식으로 이동했는지 한 번 맞춰보세요.스크립트 올려드릴게요.다들 업데이트 문에서 움직이게끔했는데타입..