[ 참고 사이트 ]
https://www.packtpub.com/mapt/book/Game%20Development/9781784390655/1
http://docs.unity3d.com/kr/current/Manual/ScriptingSection.html
[ 오브젝트 풀 ]
[ Unity에서 C# ]
Unity에서 C#을 사용하는 이유
기존에 만들어진 자료에 손쉽게 접근이 가능
C#의 영향력있는 확장성 ( 다른 분야에서도 많이 활용)
스크립트 생성(.cs)
스크립트명과 클래스명은 일치 해야 함
프로젝트 내에는 오로지 하나의 스크립트명만 있어야 함(같은 스크립트의 이름이 있어서는 안됨)
namespace
MonoBehavriour는 UnityEngine namespace에 정의 되어 있음
ArrayList와 같은 것을 사용하기 위해서는 Collections namespace가 필요 ( Using System.Collectins.ArrayList)
Unity 컴파일 타임
.cs를 저장하고 Unity Editor로 이동했을 때
Debug.Log()
Console창에서 출력 결과를 볼 수 있음
struct와 class
struct : Value Type ( 값의 복사 형태로 사용됨, Stack 영역에 생성)
class : Reference Type ( 값의 참조 형태로 사용됨, Heap 영역에 생성)
[ C# Scripting Tutorials for the Unity Engine ]
[ 목차 만들기 ]
변수
조건문
if문
switch문
배열
반복문(foreach / for / while)
함수
이벤트
클래스와 객체지향
클래스와 상속
클래스와 다형성
C# 프로퍼티
컴파일 오류와 콘솔
Debug.log를 이용한 디버깅
ToString 메소드 재정의
시각적 디버깅
오류 기록
에디터 디버깅
프로파일러
Momo Develop을 이용한 디버깅
Watch 창
계속하기와 단계별 실행
호출 스택
Immediate 창
조건 중단점
추적점
GameObject
컴포넌트와 상호작용
GetComponent
여러 개의 Component에 접근
컴포넌트와 메시지
GameObject와 월드
GameObject 찾기
오브젝트 비교
가장 가까운 오브젝트 찾기
지정한 형식의 오브젝트 모두 찾기
게임 오브젝트 간 경로 만들기
오브젝트 계층에 접근
월드 및 시간과 업데이트
규칙 1: 프레임은 소중한 것이다.
규칙 2: 움직임은 시간과 비례해야 한다.
소멸되지 않는 오브젝트
싱글턴 오브젝트와 정적 멤버
delegate
이벤트
이벤트 관리
인터페이스를 통해 이벤트 관리
이벤트 매니저 만들기
참고 :
모노디벨롭에서 #region과 #endregion을 이용한 코드 접어두기
이벤트 매니저 활용
델리게이트를 이용한 대안
MonoBehaviour 이벤트
마우스 및 탭 이벤트
애플리케이션 포커스 상태에 따른 멈추기
카메라 기즈모
보이기
오브젝트 가시성 감지
오브젝트 가시성에 대해 좀 더 살펴보기
프러스텀 검사: 렌더러
프러스텀 검사: 점
프러스텀 검사: 오클루전
카메라 시야: 앞뒤 판별
직교 카메라
카메라 렌더링과 후처리
카메라 진동
카메라와 애니메이션
추적 카메라
카메라와 곡선
카메라 경로: iTween
리스트와 컬렉션
List 클래스
Dictionary 클래스
Stack 클래스
IEnumerable과 IEnumerator
____IEnumerator를 이용해 적을 차례로 순회
문자열과 정규식
널, 빈 문자열, 여백
문자열 비교
문자열 서식 지정
문자열 순회
문자열 생성
문자열 찾기
정규식
가변 개수 파라미터
통합 언어 쿼리
LINQ와 정규식
텍스트 데이터 애셋 다루기
텍스트 애셋: 정적 로딩
텍스트 애셋: 로컬 파일 로딩
텍스트 애셋: INI 파일 로딩
텍스트 애셋: CSV 파일 로딩
텍스트 애셋: 웹 로딩
7장 인공지능
게임에서의 인공지능
프로젝트 구성
내비게이션 메시 굽기
NPC 에이전트 만들기
메카님에서의 유한 상태 머신
C#에서의 유한 상태 머신
Idle 상태 만들기
Patrol 상태 만들기
Chase 상태 만들기
Attack 상태 만들기
Seek-Health 상태 만들기
8장 유니티 에디터 사용자화
일괄 이름 변경
C# 특성과 리플렉션
색상 혼합
프로퍼티 노출
현지화
9장 텍스처, 모델, 2D를 이용한 구현
스카이박스
절차적 메시 생성
UV 애니메이션: 텍스처 스크롤
텍스처 그리기
1단계: 텍스처 혼합 쉐이더 만들기
2단계: 텍스처 그리기 스크립트 만들기
3단계: 텍스처 그리기 설정
10장 소스 관리 및 유용한 팁
깃: 버전 관리
1단계: 다운로드
2단계: 유니티 프로젝트 준비
3단계: 버전 관리를 위한 유니티 설정
4단계: 깃 저장소 만들기
5단계: 무시할 파일 지정
6단계: 첫 커밋 수행
7단계: 파일 변경
8단계: 저장소에서 파일 가져오기
9단계: 저장소 탐색
리소스 폴더와 외부 파일
애셋번들과 외부 파일
지속되는 데이터와 게임 저장
11장 기타
ref와 out
박싱과 언박싱
is 와 as