목록프로그래밍 (15)
따..딱히 공부하려고 포스팅하는 건 아니니까..!
// 오브젝트의 충돌체 private Collider _collide; // 현재 좌표 private Vector3 _curPosition; // 목표 좌표 private Vector3 _direction; // 마우스와 오브젝트가 충돌했는지 체크 private bool _isTrigger = false; void Start() { // 오브젝트의 충돌체를 가져옴 _collide = GetComponent(); } IEnumerator OnMouseDown() { // 오브젝트의 월드 좌표를 스크린 좌표로 변환 Vector3 scrSpace = Camera.main.WorldToScreenPoint( transform.position ); // 오브젝트 월드벡터 - 마우스 월드벡터 (벡터끼리의 차는 서로..
재귀함수란 자기 자신을 호출하는 함수를 말합니다. 코드가 짧아져 가독성을 높일 수 있다는 장점이 있지만, 스택 오버 플로우를 일으킬 수 있는 엄청난 위험성도 내재하고 있습니다. 함수를 호출할 때 함수의 입력 값(매개변수), 리턴값, 그리고 리턴됐을 때 돌아갈 위치값 등을 스택에 저장합니다. 재귀함수를 사용하면 함수가 끝나지 않은 채 연속적으로 함수를 호출하므로 스택에 메모리가 쌓이게 됩니다. 이 때문에 스택의 최대 크기 이상의 메모리가 쌓이게 되면 스택 오버 플로우가 일어나게 됩니다. 또한, 잦은 점프의 반복으로 성능이 저하될 위험도 가지고 있습니다. 이런 재귀의 특징을 정리하자면 다음과 같습니다.- 무한 루프에 빠지지 않기 위해 일정한 탈출 조건이 있어야 한다.- 코드를 단순화 할 수 있다.- 재귀 함..
퍼올때 제목이 프로그래머 암걸리는 만화였는데이거보고 아~ 그렇구나하고 이해하게됨... 출처는 http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=5045&MAEULNo=28&no=3562&page=1
1) OCP : 확장에 대해서는 열려있고, 변경에 대해서는 닫혀있어야 한다 (인터페이스를 이용하여 변경되지 않는 부분을 분리)2) SRP : 하나의 클래스는 하나의 책임만 가져야 한다(높은 응집도) 3) ISP : 클라이언트에서 사용하지 않는 메서드는 사용해선 안된다. 여러개의 인터페이스로 분리하는게 나을수도 있다 4) DIP : 클래스간의 의존관계는 추상클래스나 인터페이스에 의한 의존이어야 한다 5) LSP : 자식클래스는 부모클래스의 자리에 대체될 수 있어야 한다
C#은 전역 메소드와 변수를 지원하지 않음 C++은 헤더파일, C#은 메타데이터 C#은 지역변수를 초기화하지 않으면 사용못함 C#은 가비지 수집 언어 C#의 as는 C++의 static_cast와 같음 C++은 bool형은 정수였지만 C#의 bool은 아예 새로운 형으로 정의됨C#의 Array는 메모리공간이 아닌 객체가 됨, array.Length이 그 증거이다 (C++ STL vs C# Generic)list, vector -> ArrayListmap -> Hashtable, DictionaryPair -> KeyValuePairC#에서 이러한 자료구조들은 Collection을 인클루드 해야함 C#에서는 템플릿 대신 제너릭 사용 private, public, protected 구분이 엄격해짐 new은 ..
Kgc2012 온라인 게임을 위한 게임 오브젝트 설계 from kgun86 같은 분께서 발표하신 내용에서 정리한 컴포넌트(행동 기반 게임 오브젝트 - http://www.slideshare.net/kgun86/ss-10103030)
미리 컴파일된 헤더란? 수많은 헤더들을 항상 컴파일하게 된다면 매우 오랜 시간이 걸릴 수도 있다. 이를 보완하기 위하여 말 그대로 헤더들을 미리 컴파일하여 사용하는 방법을 사용한다. 미리 컴파일된 헤더를 생성하면 Debug/Release폴더에 프로젝트명.pch이 생긴다. 어떤 상황에서 사용해야 할까? - 내용이 자주 바뀌지 않는 것일 때 - 내용이 커서 자주 컴파일하기에 무거울 때 - 동일한 헤더파일이 여러 곳에서 자주 쓰일 때 1. 프로젝트 파일의 속성->미리 컴파일된 헤더 '사용'으로 체크 프로젝트의 모든 cpp에 pch가 포함되므로 프로젝트의 속성에서는 사용으로 체크한다. 2. cpp파일의 속성->미리 컴파일된 헤더 '만들기'로 체크 흔히 pch.h와 pch.cpp를 같이 만든다. 그 이유는 pch..
git에서 commit을 하고 push를 하려고 하는데 위와 같은 오류가 날 때가 있다. 내용은 다음과 같다.github의 용량 제한은 100메가인데 커밋한 프로젝트에 100메가가 넘는 파일이 있어서 오류가 생긴 것이다. git에서는 해결방법을 제시해준다.https://git-lfs.github.com에 방문하여 대용량 파일 저장소 프로그램을 다운을 받는 것인데 나에게는 그다지 효과가 없었다.그래서 내 솔루션에 있는 sdf들을 전부 삭제하고 다시 push하는 것이 낫겠다 싶어 그렇게 했더니 성공했다. 비주얼 솔루션에서 sdf는 그냥 로드 정보같은 것이므로 삭제해도 상관이 없다.만약 git-lfs로도 해결이 되지 않는다면 sdf파일을 전부 삭제하고 push하는 것도 괜찮은 방법이라고 생각한다.
svn을 이용한 방법http://namocom.tistory.com/218 git을 이용한 방법https://code.google.com/p/v8-wiki/wiki/BuildingWithGYP
모듈- 기능 단위- 각 기능별로 분할한 것- 기능적 특성을 가진 부품 집합- 용이하게 교환할 수 있도록 된 구조 모듈화- 각 기능별로 분할하는 일 모듈성- 구성 요소 변경이 용이한 정도- 모듈로 서로 분리되어 작성되는 성질- 하드웨어 또는 소프트웨어를 추가/변경할 때, 전체에 영향 없이 일부만 바꿀 수 있도록 설계됨 즉, 클래스, 함수단위로 기능을 나누는 것으로 생각하면 됨 출처http://zetawiki.com/wiki/%EB%AA%A8%EB%93%88,_%EB%AA%A8%EB%93%88%ED%99%94,_%EB%AA%A8%EB%93%88%EC%84%B1