유니티가 5.0이 되면서 플러그인 몇 개를 흡수해서 GUI를 구성하는 방법이 비주얼 적으로 바뀌었습니다. (4.6 때 바뀐 거 같지만 넘어가고 ㅎㅎㅎ) 새로워진 GUI 작성방법을 배워 봅시다. 이전 포스팅을 참고하시면 좋을 듯 하네요. 참고 : [Unity] GUI 작성하기 0. 테스트 화면 만들기 방향키를 'GUI'로 만들고 방향키를 누르면 카메라가 이동하도록 만들 것입니다. 테스트를 위해 프로젝트를 생성하고 3D 큐브를 하나 추가 합니다. 테스트용이니 적당한 이미지를 큐브에 적용합니다. 1. 버튼 만들기 이제 'GameObject'메뉴에 'UI'카테고리가 생겼습니다!!!! 1-1. 버튼 추가 하기 UI > Button 을 눌러 GUI 버튼을 추가 합니다. 이제 트랜스폼툴에 새로 추가된 'UI 툴'을 ..
유니티에서 'DataTable'을 사용하려고 'System.Data'를 추가했습니다. 이렇게 모노디벨로퍼에서 'System.Data'를 추가했습니다. 그런데... 1. 해결 방법 이 문제를 해결하려면 유니티에서 일반적인 DLL을 추가할 때 처럼 에셋(Assets)폴더에 DLL을 추가해주면 됩니다. 문제는 '.NET'용 'System.Data.dll'은 유니티에서 사용할 수 없다는 것이죠. ('.NET'용 'System.Data.dll'는 보통 'C:\Windows\Microsoft.NET\Framework'에 있습니다. ) 먼저 모노용 'System.Data.dll'을 구해야 합니다. 1-1. 모노용 'System.Data.dll' 구하기 모노용 'System.Data.dll'을 구하기 위해서는 모노 홈..
* 2023-10-05 : 현재 이 스크립트는 유지보수가 되지 않고 있는 것으로 보입니다.* 대안에 대한 내용은 마지막에 넣어놨습니다. 이전 글에서 유니티 에디터에서 '파일 다얄로그'를 열어 파일을 선택하는 것을 했습니다. 문제는 유니티 에디터에서만 쓸 수 있다는 것이죠 ㅡ,.ㅡ;;; 그래서 검색해 보니 스크립트로 구현하는 방법이 있네요. 'ImprovedFileBrowser'라는 스크립트입니다. (참고 : unify community - ImprovedFileBrowser ) 1. 스크립트 생성하기 설명이 워낙 잘되어 있어서 전체 코드를 넣겠습니다. 이것은 픽스된 코드가 적용된 코드입니다. using UnityEngine; using System; using System.IO; using System...
유니티의 에디터에서 파일을 선택해서 테스트 할때는 'Open File Panel'를 이용하면 됩니다.(참고 : unity Documentation - EditorUtility.OpenFilePanel)이 포스팅은 'Open File Panel'을 사용하는 하는 방법을 설명합니다.(런타임에서는 사용할 수 없음.) 1. 사용방법 'using UnityEditor;'를 추가한 후 'EditorUtility.OpenFilePanel'를 호출 하면 됩니다. EditorUtility.OpenFilePanel([다얄로그에 표시할 제목], [처음 표시될 디렉터리], [허용할 확장자]); 2. 테스트 해보기 이제 직접 사용해 봅시다. using UnityEngine; using System.Collections; usi..
유니티는 'OnGUI()'를 작성해서 호출되면 GUI표시됩니다. 근데 유니티에는 GUI 관련 플러그인이 많아서 그런지 다른 자료들이 뒤섞여 있어서 정작 필요한 자료 찾기가 힘들었다는 문제가 ㅎㅎㅎ 1. 'OnGUI()'작성 먼저 스크립트 파일을 하나 만들어서 다음과 같이 작성합니다. using UnityEngine; using System.Collections; public class claGUI : MonoBehaviour { private int m_nCount = 0; private TextMesh m_tmText; void Start () { m_tmText = (TextMesh)GameObject.Find("txtCount").GetComponent(typeof(TextMesh)); } void..
빌보드라는 것은 노래 차트가 아니고.... 3D에서 사용자가 보는 화면은 카메라가 보는 시점입니다. 카메라가 움직이거나 회전해도 카메라를 향해서 바라보는 오브젝트(기능?)를 빌보드(Billboard)라고 합니다. 1. 'transform.LookAt'사용 하기 'transform.LookAt'은 지정한 위치를 계속 바라보게 하는 메소드입니다. (참고 : 유니티 스크립트 레퍼런스 - Transform.LookAt) 그냥 타겟만 정하면 알아서 바라봅니다. 이것을 카메라로 지정하면 카메라를 계속 보고 있게 됩니다. 문제는 'z'축이 바라보기 때문에 다른 축은 원하는 방향을 보게 할 수가 없죠. 그러니 다른 축을 바라보게 하기 위해서는 그룹이 되는 오브젝트를 넣고 z축을 카메라 방향으로 두고 돌리려는 오브젝트를..
케릭터를 기준으로 화면이 돌아가는 것은 쉽게 볼 수 있는 연출입니다. 그런데 '유니티는 왜이렇게 자료가 없지?'라는 생각을 했는데...제가 단어 선택을 잘 못한것 같네요 ㅎㅎㅎ 1. 'transform.Rotate'와 'transform.RotateAround'의 차이 'transform.Rotate'는 객체를 자기중심으로 제자리에서 회전시키는 것입니다. 'transform.RotateAround'는 지정된 좌표를 중심으로 회전 시키는 것입니다. (참고 : 유니티 스크립트 레퍼런스 - Transform.Rotate, Transform.RotateAround) 그래서 'transform.RotateAround'의 경우 매개변수로 전달되는 앵글만큼 오브젝트가 지정된 좌표를 기준으로 회전합니다. 2. 코드 작..
오브젝트를 클릭했을 때 무언가 동작하기 위해서는 이전에 썼던 포스팅만으로 충분합니다. 참고 : [Unity] 스크립이 적용된 오브젝트에 클릭 구현하기 문제는 이것이 'Physics.Raycast'를 이용하는 것인데 이것은 충돌체를 날려서 제일 처음 부딪친 오브젝트를 반환한다는 것입니다. 1. 문제 확인 큐브를 이용하여 큐브를 만들어 봅시다. 바닥을 클릭하면 안에 있는 큐브가 다른 위치로 이동하는 샘플을 만들어 봅시다. 위와 같이 큐브를 만들고 안에 큐브를 넣었습니다. 다른 포스팅에서 만들었던 클릭 클래스를 바닥에 적용합니다. (참고 : [Unity] 스크립이 적용된 오브젝트에 클릭 구현하기) 아래는 테스트용 스크립입니다. using UnityEngine; using System.Collections; p..
오브젝트의 텍스쳐를 가지고 와야 하는 경우가 있습니다. 자주 있을 것 같지는 않지만 말이죠 ㅎㅎㅎ 방법 이럴때 사용하는 것이 'GetTexture'입니다. gameObject.renderer.material.GetTexture 참고 : 유니티 스크립트 레퍼런스 - Material.GetTexture 마무리 그런데 이런일이 얼마나 있을런지는? ㅎㅎㅎㅎ
'3D Text'를 사용하려고 화면에 올려 놨더니.... 위 스크릿 샷을 보면 같은위치에 있는 3d text를 다른 방향에서 보았을때 항상 다른 오브젝트를 무시하고 화면에 텍스트가 출력되는걸 볼 수 있습니다. 이것만 봐서는 '3D Text'의 기본 동작이 게임 오브젝트(Game Object)가 아니라 'UI'인것 같습니다. 우리가 원하는건 '3d text'가 다른 오브젝트들 처럼 다른 오브젝트 뒤로 가면 뒤로 간 부분은 보이지 않았으면 하는 것인데 말이죠. 1. 해결방법 검색을 해보니 '3D Text'의 기본 쉐이더는 'GUIText'라고 합니다. 어쩐지 -_-;; 결국 새로운 쉐어더를 만들어야 하나 봅니다. 다행히 이것을 설명한 자료를 찾았습니다. 참고 : 유니티3D 위키 - 3DText 여기의 설명에..