사물인터넷이라는 건 우리가 쓰고 있는 물건이 통신(온라인)이 된다는 의미입니다. 그럼 '왜 사물인 통신이 되어야 하느냐?'라는 근본적인 의문이 들지요 ㅎㅎㅎ 1. 사물이 통신이 되어야 하는 이유 지금까지의 전자제품은 한개 한개가 단독으로 움직이는 형태였습니다. 하지만 사용자는 이런 제품들이 같이 움직이길 원하고 있었죠. 이렇게 제품들이 통신하여 동작한다면 사용자는 한 번의 명령이나 아니면 사물이 스스로 판단하여 원하는 동작을 모두 활용 할 수 있게 됩니다. 제품들이 자동으로 동작하고 이 동작을 좀 더 정확하게 하기 위해 사용자의 패턴을 분석하기 위해 다양한 데이터를 축적해야 할 필요성이 생겼습니다. 그렇기 위해선 통신이 되어야 하죠. 2. 진짜 이유 사물인터넷에서 정말 중요한 포인트는 '빅 데이터(Big..
C#의 구조가 자바랑 비슷해서 그런 것인지 자마린 컨샙이 안드로이드가 베이스인지는 모르겠습니다. 이게 IOS에서도 그대로 적용되는 것인지 모르겠네요. 어찌 됐건 자마린을 이용하여 안드로이드의 센서값을 가지고 오는 것은 안드로이드 어플리케이션과 비슷합니다. (참고 : Xamarin Recipes - Get Accelerometer Readings) 1. 센서값 받아오기 테스트 안드로이드와 같은 방법으로 가지고 올 수 있습니다. 먼저 메인 엑티비티에 'ISensorEventListener'인터페이스를 추가합니다. public class MainActivity : Activity, ISensorEventListener 이제 클래스 안에 센서 매니저를 선언하고 'OnCreate'안에서 초기화해줍니다. /// /..
그냥 클래스 라이브러리로 유니티용 DLL을 만들었다간 아래와 같은 에러를 보게 됩니다. 1. 에러 재연하기 프로젝트를 '.Net 3.5'의 '클래스 라이브러리'로 생성합니다. (유니티는 여전히 mono 2.6입니다.) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace UnityDLL_Test { public class Class1 { public int c; public void AddValues(int a, int b) { c = a + b; } public static int GenerateRandom(int min, int m..
유니티 엔진(unity3d)이 5.0 버전이 발매되었습니다! 유니티의 신 버전을 기다리던 이유 중 하나가 유니티의 'Mono'버전 때문입니다. 유니티는 'mono project'기반으로 돌아가기 때문에 모노 버전이 중요합니다. 그런데... 참고 : unity 커뮤니티 블로그 - The future of scripting in Unity (참고 : '게으른자'님 블로그 - Unity 5.0b – IL2CPP) 1. 유니티의 모노 버전 헉? 유니티 5.0에서도 모노 2.6을 쓴다고 합니다;; 이유는 라이센스 문제 때문이라는군요. Mono의 라이센스는 GPL 2.0입니다. (참고 : mono-project - FAQ: Licensing ) 그런데 모노를 활용하기 위한 IDE툴인 모노 디벨롭(mono devel..
자마린(Xamarin)으로 안드로이드 어플을 만들던중 레이아웃 연결 실패(connection to the layout renderer failed.)라는 메시지가 표시되는 일이..... Connection to the layout renderer failed. This may be caused by a misconfiguration of java Please close and open the file again. 1. 문제의 원인 제가 설치해둔 안드로이드SDK의 버전이 낮아서 최신 버전을 설치한 후 이런 일이 발생했습니다. 그래서 파일이 꼬였나 해서 다 지우고 다시 세팅했지만 결과는...... 검색해보니 이런 글이 나왔습니다. Xamarin Forums - Disconnected from layout r..
유니티가 5.0이 되면서 플러그인 몇 개를 흡수해서 GUI를 구성하는 방법이 비주얼 적으로 바뀌었습니다. (4.6 때 바뀐 거 같지만 넘어가고 ㅎㅎㅎ) 새로워진 GUI 작성방법을 배워 봅시다. 이전 포스팅을 참고하시면 좋을 듯 하네요. 참고 : [Unity] GUI 작성하기 0. 테스트 화면 만들기 방향키를 'GUI'로 만들고 방향키를 누르면 카메라가 이동하도록 만들 것입니다. 테스트를 위해 프로젝트를 생성하고 3D 큐브를 하나 추가 합니다. 테스트용이니 적당한 이미지를 큐브에 적용합니다. 1. 버튼 만들기 이제 'GameObject'메뉴에 'UI'카테고리가 생겼습니다!!!! 1-1. 버튼 추가 하기 UI > Button 을 눌러 GUI 버튼을 추가 합니다. 이제 트랜스폼툴에 새로 추가된 'UI 툴'을 ..
닷넷(.Net)에서 열거형(Enum)은 자체로도 클래스(Class)와 비슷한 역할을 수행합니다. 그런데 열거형의 문제는 열거형 멤버를 직접 다루려면 손이 많이 간다는 것입니다. 우리는 객체지향(Object-Oriented Programming, OOP)을 통해 이런 손이 많이 가는 작업은 클래스를 만들어 캡슐화하여 처리하라고 배웠습니다. 그러니 열거형을 클래스로 변환해 봅시다. (Enum to Class) 연관글 영역 1. 클래스 만들기 닷넷에서 열거형은 구성이 잘되어 있어 형 변환도 쉽습니다. 그러니 이러한 작업을 해주는 클래스를 만들면 됩니다! 1-1. 데이터 저장용 클래스 상황에 따라서 구조체(struct)를 사용해도 되지만 형 변환과정에서 무언가 더 필요할 수 있으니 모델로 만들어 줍니다. ///..
유튜브에 올라와있는 'OpenTK' 플랫폼 튜토리얼을 따라하는 포스팅입니다. 'OpenTK'는 'OpenGL', 'OpenCL', 'OpenAL'가 합쳐진 C#랩퍼입니다. 0. 원본 OpenTK Platformer Tutorials: Part 3 - The View Class 뷰클래스를 만들어 보는 화면을 제어 합니다. 뷰클래스의 역할은 카메라와 같습니다. 1. 'View' 클래스 만들기 뷰를 다루기위한 클래스를 만들어 봅시다. 이 클래스에서는 카메라의 위치와 확대 배율, 각도를 제어 합니다. class View { /// /// 위치 /// public Vector2 position; /// /// 각도, + = 시계방향 /// public double rotation; /// /// 확대 /// 1 ..
유튜브에 올라와있는 'OpenTK' 플랫폼 튜토리얼을 따라하는 포스팅입니다. 'OpenTK'는 'OpenGL', 'OpenCL', 'OpenAL'가 합쳐진 C#랩퍼입니다. 0. 원본 OpenTK Platformer Tutorials: Part 2 - Loading and Drawing a Texture 텍스처를 불러오고 불러온 텍스처를 화면에 그리는 방법. 1. 프로젝트에 리소스 추가하기 이 부분은 C#의 기초라고 할 수 있습니다. 프로젝트에 'Content'폴더를 만들고 텍스처로 사용할 이미지를 넣어 둡니다. 추가한 이미지를 클릭한 후 속성창에 빌드 작업 : 없음 출력 디렉터리로 복사 : 변경된 내용만 복사 로 변경 해줍니다. 이제 프로젝트를 실행해보면 디버그 폴더에 'Content'폴더가 만들어지고 ..
콘솔 응용프로그램을 만들 때 상황에 따라서 콘솔 창(Console Window)이 필요 없는 경우가 있습니다. 이런 경우 간단하게 창을 띄우지 않는 방법이 있습니다. 1. 간단한 방법 프로젝트 속성 > 응용 프로그램 > 출력 형식 에 보시면 콘솔 프로젝트의 경우 '콘솔 응용 프로그램'으로 설정되어 있습니다. 이것을 'Windows 응용 프로그램'으로 바꿔주면 명령 프롬프트 창이 띄지 않습니다. 단순히 콘솔 창만 가리고 싶다면 이 방법이 최고죠 ㅎㅎㅎ 하지만 비하인드 코드에서 아무런 제어를 할 수 없다는 단점이 있습니다. 2. 'WinAPI'를 이용한 방법 조금 번거롭더라도 'WinAPI'를 이용하면 코드에서 컨트롤이 가능합니다. 아래와 같이 'WinAPI'를 마샬링 해주고 [DllImport("kerne..