목록 전체 글 (281)
Coroutine - 총알 발사시 muzzle flash를 출력하도록 하다가 불꽃의 지연 시간을 딜레이가 아닌 코루틴으로 처리하는 방법을 공부하게 되었다. Muzzle flash는 구글링으로 이미지 파일을 다운로드 한 후 gameObject - 3D object - Quad를 생성하고 메테리얼로 해당 이미지를 대입하여 만들었다. MuzzleFlash - 총알을 발사할때마다 불꽃 오브젝트가 유효했다가 1초 후에 다시 무효로 되는 코드를 짜면 발사시 불꽃을 구현할 수 있을 것이다. 만약 이런 상황에서 이 코드를 MuzzleFlash.enabled = true -> Thread.sleep(1000) -> MuzzleFlash.enabled = false 으로 처리한다면 sleep 동안 프로그램이 동작하지 못할..
vi visual editor - vi는 리눅스의 에디터이다. Command line mode / Insert mode / Edit mode로 세가지 모드로 작동한다. vi로 진입 / a,i로 insert mode 진입 / esc로 edit mode 진입 - 기본적인 vi 명령어 기록 Command line mode :q 종료 :q! 저장없이 강제 종료 :wq 저장 후 종료 Edit mode - 커서 이동 / 검색 h cursor to left l cursor to right ctr+f next page ctr+b prev page / search n next b prev pragragh - 삭제 및 변경 x 커서 위 문자 삭제 dw 커서 뒤 단어 삭제 dd 커서 라인 삭제 r 커서 위 문자 변경 - 복..
User system commands - 기본적인 리눅스 시스템 기본 명령어를 공부하였다. option - 명령어 뒤에 -x, --x 이 붙어 부가 옵션을 주는 것을 "옵션 또는 파라미터를 주다"라고 표현한다. manual - man + (command) 를 이용하여 명령어의 디테일한 도움말을 확인할 수 있다. manual page에서는 방향키로 라인을 넘길 수 있고, b와 space키로 페이지를 전환한다. /(something) 을 입력시 페이지 내에서 검색하고자 하는 something을 탐색할 수 있다. n을 이용하여 다음 단어로 넘긴다. q로 페이지를 종료한다. - option으로 명령어 뒤에 -h, --help를 입력하는 것으로 도움말을 얻을 수 있다. autolisting - 명령어 사용시 ta..
object / var / dynamic object - object 클래스는 모든 클래스 중에서 기본 클래스로, 모든 데이터 타입의 루트형이다. object는 모든 데이터형을 참조할 수 있지만, 해당 데이터 형의 특성을 잃어 해당 데이터형의 특성을 살리기 위해선 캐스팅을 필요로한다. 또 바꿔말하면 어떤 형으로든 캐스팅 가능하다. "object" static void Main(string[] args) { int int_integer = 3; string str_string = "Hello"; object obj_integer = int_integer; // boxing Console.WriteLine(obj_integer + int_integer); // error Console.WriteLine((i..
Iterators/ IEnumerator, IEnumerable / Yield Iterators - Iterators(반복기)는 리스트나 배열과 같은 컬렉션을 단계별로 실행, 반복 조사할 때 유용한 개념이다. IEnumerator / IEnuerable - foreach문이 컬렉션 속 개별 객체들을 하나 꺼내와 처리하고 다른 객체를 꺼내와 처리하는 것이 반복될 수 있는 까닭은, 컬렉션을 반복하는 데 필요한 코드를 생성하기 위해 .NET Core 라이브러리에 정의된 IEnumerable/ IEnumerator Interface 를 상속하였기 때문이다. IEnumerable은 메소드로 GetEnumerator를 갖고 있어 컬렉션의 Enumerator를 반환하고, "IEnumerable" class Progr..
Linux - 리눅스를 공부해보고 싶어 우분투를 설치하였다. 아직 잘 모르지만 기본 시스템 사용, 시스템 관리, 네트워크 서버 구축, 보안/ 해킹을 공부해보고자 한다. Ubuntu - 우분투는 리눅스의 여러 배포판 중 현재 가장 인기있는 것으로 서버 / 데스크탑 두 버젼이 존재한다. - 우분투 데스크탑을 선택하여 18.04 LTS를 설치하였다. LTS는 long term support의 약자로 장기 지원 버전을 의미한다. Ubuntu Ref - 아래 책과 강의를 참고하였다. 리눅스의 모든 것 -서자룡 Linux & Unix shell programming - David tansley
Socket connection - 유니티에서 소켓 통신으로 멀티 플레이를 구현하는 방법을 공부해왔다. -클라이언트에서 받은 입력으로 직접 게임을 동작시키는 것이 아니라 주체와 입력을 byte로 서버에 보내고 서버는 연결된 모든 클라이언트에 데이터를 수신. 그 후 다시 클라이언트는 데이터를 무한히 받기만 하는 다른 스레드를 만들어 데이터를 수신하고, 받은 데이터를 정류하여 어떤 주체가 어떤 입력을 했는지 확인 후 이를 처리하도록 하였다. using Socket - 소켓을 다루기 위해 System.Net.Sockets Namespace를 선언한다. using System.Net.Sockets; - Tcpclient 객체와 받은 데이터를 저장할 string 변수를 private으로 선언한다. "Global"..
Blend Tree - Blend Tree는 여러가지 애니메이션이 혼합되어 각가 다른 비중으로 합쳐져 매끄러운 동작을 수행하도록 하는 작업 방식이다. 예를 들면, 캐릭터가 달리면서 회전할 때, 입력 정도에 따라 꺾는 애니메이션과 달리는 애니메이션을 혼합하여 더 부드럽게 표현할 수 있는 것이다. Transition 방식은 변수나 시간을 기준으로 한 애니메이션에서 다음 애니메이션으로 전이되는 데 사용되고, Blend Tree 방식은 모션이 블렌딩 파라미터에 따른 비중으로 혼합되어 최종 모션으로 결정되어 동작하도록 작업하는 방식이다. Add Motion field - 먼저 컨트롤 창의 빈 공간에 우클릭하여 Create State -> From new blend tree 를 선택하는 것으로 새로운 blend t..
