본문 바로가기

IT/유니티

에디터 화면시점으로 카메라 위치 옮기기 이걸 알기 전까지 얼마나 개고생을 했던가....이렇게 돌려보고 저렇게 돌려보고...나이먹어서 3D할라니까 개념도 이해가 안되는데, 카메라의 시점은 더더욱 3D를 힘들게 했다.그러던중 어떤 유튜버의 강의에서 보석과 같은 팁을 얻었는데,그거슨 바로!!에디터에서 보는 시점으로 카메라의 위치를 변경시키는것이다.이 얼마나 직관적이고 편한 기능이란 말인가!!!!!이걸모르는 몇달동안 개고생을 했던 것인가...방법은 아주 쉽다.hierarchy에서 카메라를 선택한..
WorldToScreenPoint 그리고 ScreenPointToLocalPointInRectangle 오늘은 아주 간단한것을 알아보자.유니티의 좌표계는 조금은 특이하다.특히나 나같이 기본 네이티브에서 개발하던 사람입장에서는 더더욱 그런거 같다.왜냐하면 좌표계가 하나가 아니다. 전체 좌표계와 스크린 좌표계가 존재한다.용어의 선택이 옳바른지는 모르겠지만, 영문을 해석하면 비슷한거 같다.픽셀단위의 좌표계와 유니티 내부의 스크린좌표계가 존재한다.보통 에디터에서 작업할때는 스크린좌표계를 사용하는 것이고,UI에서는 픽셀단위의 좌표계를 사용한다고 생각하..
[Unity] 안드로이드 기기에서 테스트 하기 내가 터치 스크립트를 만들었는데 터치가 작동하는지 안하는지는 유니티엔진에서 알 방법이없다. 백날 윈도우 화면에서 테스트 디버깅해봐야, 실제로는 스마트폰으로 만들것이기 때문에 반드시 어플 개발은 폰에서 확인해 보아야 한다.준비물은 안드로이드 기기와 USB케이블이 있으면된다.1. 먼저 각각 제조사에 들어가서 USB드라이버를 받는다.SDKManager에 Tools에서 받아도 되는데 이상하게 난 오류가 뜨기 때문에.. 원래 우리나라폰은 그..
Mesh로 2D 삼각형 그리기 유니티는 엔진이니까 모든지 다 해줄거처럼 보였는데,의외로 삼각형을 기본 제공하지는 않는다.그래서 메쉬를 이용한 삼각형을 만들어 보았다.코드는 다음과 같다.using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour {    void Start() {        gameObject.AddComponent&l..
배열 형태의 JSON데이타 가져오기 (Feat.JsonUtility) 게임서버를 구축하고 서버와 클라이언트간의 데이타 통신을 할때 가장 편하게 쓸수 있는 형식은 아마도 JSON이라고 할수 있다.결국 딕셔너리 형식으로 <string, string>형태로 어떤형태의 데이타라도 통신할수 있기때문에아주 명시적이고 간단하게 사용할수 있다.하지만 몇년전까지만 해도 unity에서 공식적으로 JSON을 지원하지 않았기때문에,다른 개발자분들이 만드신 라이브러리를 사용하는 경우가 많았지만,5.3버전이후로 JsonUt..
2016/8/24 개발노트 어떤 객체의 자식들만 검색하고 싶을때transform.FindChild("")를 이용하면 된다.괜히 모든 객체를 검색하지 않아도 찾을수 있다.그리고 오늘은 오랜만에 세바스찬의 길찾기 알고리즘을 만들어 보았다.역시 세바스찬의 강의는 들을때마다 항상 감동인거 같다.A*알고리즘이라고 불리우는데 알고리즘의 문외한으로써 처음 봤을때 참 멋지다고 느꼈다.알고리즘의 원리는 아주 간단하다. 위의 그리과 같이 seeker의 위치와 target의 위..
2016/8/18 유니티 개발 노트 1. Start() vs Awake()스타트와 어웨이크는 얼뜻보면 같아보인다.하지만 그 의미가 아주 다른다.마치 스타트는 생성자처럼 보인다. 왜냐하면 기본적으로 생성되어 나오기때문에, 기존 프로그래머들은 아마도 아~ 스타트는 생성자랑 비슷한가 보다..라고 생각할것이다.하지만 스타트는 전~혀 생성자 라고 말하기 힘들다.생성자라기 보다는 업데이트직전에 불려지는 업데이트의 문이라고 생각하시면 더 정확할것이다.그럼 반면에 어웨이크는 기본적으로는 보..
20. 유니티 교육 (Sebastian Lague 강의-2DRunner #2) Controller2D.csusing UnityEngine;using System.Collections;public class Controller2D : RaycastController { float maxClimbAngle = 80; float maxDescendingAngle = 75; public CollisionInfo collisions; [HideInInspector] public Vector2 playerInput; public over..