목록전체 글 (315)
ecsimsw
Accessing - 다른 오브젝트, 컴포넌트를 엑세스 하는 방법을 공부하였다. GameObject.GetComponent - 해당 게임 오브젝트의 컴포넌트 타입을 인자로 받아 반환하고, 없다면 null을 리턴한다. Rigidbody rb = this.gameObject.GetComponent(); GameObject.Find - 게임 오브젝트의 이름을 파라미터로 받아 찾고, 그 오브젝트를 리턴한다. 없다면 null을 리턴한다. 이름에 "/"을 이용해서 주소처럼 오브젝트 안의 자식 오브젝트를 명시할 수 있다.(Parent_objcet /Child_ object) docs에선 성능에 저하를 야기하므로 매 프레임 마다 호출되는 경우를 최대한 피하고, startup에 사용하여 변수로 저장하는 것을 추천한다. ..
Rotate Euler angle - 유니티에서 회전은 크게 Euler angle / Quaternion 으로 표현된다. 오일러(Euler) 방식은 X,Y,Z 축을 기준으로 회전 값 만큼 회전 시키는 우리에게 익숙한 방식이다. 하지만 이는 "짐벌락" (세 회전을 차례로 적용 시 이전 두 회전의 결과로 세 번째 축이 이전 축 중 하나와 같은 방향을 가리킬 수 있다는 문제)을 야기하므로, 유니티 내부에서는 쿼터니언(Quaternion) 방식을 취한다. 위처럼 inspector에서 직접 rotation 값을 변경하는 방식은 오일러 방식이지만 실제로 유니티 내부에서는 쿼터니언 방식으로 저장된다. Quaternion - 유니티 내부에서 오브젝트 회전을 표기하는 방식으로 x,y,z,w 네 개의 값으로 표현되지만, ..
Translate Vector3 - Vector3는 3차원 공간에서의 위치와 벡터를 표현하기 위해 사용되는 "구조체"이다. (좌표를 구조체로 표현하는 이유는 C#-class/struct 포스팅에서 정리하였다.) Vector3 v = new Vector3(1, 1, 1); 위와 같이 생성자를 통해 생성하여 사용하거나 Vector3.forward(= Vector3.(0,0,1))처럼 static 변수를 통해 간단히 사용할 수 있다. 쓰임이 많고 중요하다고 생각하기 때문에 Vector3만을 따로 공부 후 포스팅 할 생각이다. transform.position - 오브젝트의 transform의 position 값을 변경하여 물체의 위치를 바꿀 수 있다. transform.position = new Vector3..
Data Transmission / Reception Encapsulation - 데이터가 송신될 때, 수신 시 동일한 계층에서 필요할 정보를 기존 데이터에 덧붙여 다음 계층으로 넘기는 과정을 Encapsulation, 반대로 데이터가 수신될 때, 송신 시에 동일한 계층에서 덧붙여준 필요 정보를 데이터에서 꺼내 해석하는 것을 de-Encapsulation 이라고 한다. 송신 시 추가된 정보는 수신 시 그 역순으로 해석된다. 송신 시 A 계층에서 추가된 정보는 수신 시 A 계층에서만 사용될 수 있고 다른 계층은 볼 수 없다. Header / Trailer - 송수신을 위한 데이터는 각 계층에서 필요한 정보를 앞, 뒤에 붙여 전송되고, 해석된다. 이때 앞에 붙는 데이터를 헤더, 뒤에 붙는 데이터를 트레일러라..
Tcp/ip - tcp/ip는 전 세계적으로 통용된 통신 프로토콜이다. 아래는 OSI 7 layer와 TCP/ip 5 layer 으로, OSI는 IOS에서 컴퓨터 네트워크 프로토콜을 7 계층으로 나누어 모델화 한 것이다. Tcp/Ip 는 5단계로 나누어 모델링 했는데 트랜스 포트 층에 Tcp 프로토콜이 존재하고 네트워크 층의 프로토콜로 존재하기 때문에 이와 구별하여 위 5단계를 갖는 전체 계층을 tcp/ip protocol family라고도 한다. - 각 계층은 다음의 역할을 한다. Application - 사용자에게 가장 가까운 층으로 애플리케이션에 맞춰 통신을 수행할 수 있도록 한다. (ex, HTTP SMTP POP3 FTP TELNET NNTP RCP) Transport - 송신되는 데이터를 수신..
Network / Protocol Network - 네트워크란 자원을 서로 주고 받을 수 있는 상태를 의미하며, 컴퓨터끼리 케이블이나 적외선, 전파 등을 이용해서 다양한 데이터를 주고 받을 수 있음을 말한다. - 네트워크의 규모에 따라 비교적 좁은 공간의 기기끼리 연결한 네트워크는 Local Area Network를 줄여 LAN이라고 하고, 지리적으로 먼 기기끼리 연결한 대규모의 네트워크는 Wide Area Network를 줄여 WAN이라고 한다. 이런 LAN,WAN 들을 연결한 전 세계 규모의 네트워크가 인터넷인 것이다. Protocol - 네트워크 안에서 서로 다른 기기가 데이터를 주고 받으려면 미리 정해진 약속을 따라야 한다. 이러한 규정, 약속을 protocol 이라고 하고 특별히 통신을 위한 약..
Socket - Tcp 포로토콜 기반의 소켓 프로그래밍을 지원하는 Net 모듈에 대해서 공부하고 스트림을 통해 c# 응용프로그램과 통신할 것이다. net / socket - net 모듈은 소켓 객체를 이용하여 서버와 클라이언트의 소켓 객체를 생성 가능하다. net.connect()와 net.createConnection() 호출을 통해 클라이언트를 서버에 연결을 할 수 있고, 이렇게 클라이언트와 서버가 연결되는 시점에 서버에 socket 객체가 생성된다. 만들어진 소켓은 stream 이면서 동시에 event emitter 인데, 이는 데이터를 스트림을 통해 데이터를 읽고 쓰기가 가능하며 이벤트 핸들러를 사용하여 데이터를 처리할 수도 있다. - net 모듈은 설치가 필요없이 위처럼 바로 require하여 ..
Socket - node.js에서 socket을 이용하여 통신하는 방법을 공부하고, 학습 예제로 웹 채팅 서버/어플리케이션을 제작하고, 나아가 이 서버로 c#/ android 클라이언트가 통신하는 방법을 공부할 생각이다. socket.io - node.js에선 socket.io 모듈을 통해 소켓 통신을 할 수 있다. npm install socket.io --save server에서 Express를 사용하여 Http 서버를 생성하고 생성된 Http 서버를 socket.io server에 연결한다. var app = require('express')(); var server = require('http').createServer(app); var io = require('socket.io')(server)..