유니티 스크립트 정리

DevCho1107

·

2019. 12. 17. 10:48

[시리얼라이즈드필드] //인스펙터 창에서 보여줌 

priavte int speed = 10;


Vec = new Vector3() {0,0,0};

(x,y,z 를 갖고있는 구조체)


벡터 메소드 목록

forward 0,0,1

right 1,0,0

up 0,1,0

zero 0,0,0

one 1,1,1

.

.

.


//키보드 이동(1)

if(Input.GetKey(KeyCode.RightArrow))

{

transform.....

}


//키보드 이동(2)

//조이스틱 등의 키입력도 모두 하기 위해 

float h = Input.GetAxis("Horizontal");   //소수점까지 나온다

int v = Input.GetAxisRaw("Vertical");    //정수로 나온다


h = h * speed * Time.deltaTime;

-> transform.Translate(Vector3.right * h);


//마우스 입력 시 리턴 값 

0 = 마우스 왼쪽 버튼 

1 = 마우스 오른쪽 버튼

2 = 마우스 중앙 버튼(휠) 



오부젝트 라이프 사이클 

초기화 - 물리 - 게임로직 - 해체 순의 과정으로 진행되며, 

함수의 실행 순서는 다음과 같다. 


void Awake();             //생성자

void Start();               //초기화

void FixedUpdate();     //고정된 실행주기로 CPU를 많이 사용 ( 과부하 걸릴 수 있으므로 잘 안쓴다 )

void Update();            //게임 로직 업데이트 

void LateUpdate();       //로직적인 부분이 끝난 뒤 있는 업데이트 ( 주로 카메라 등을 위치시키거나 할 때 여기에 박아둔다 )

void OnDestroy();        //소멸자


//회전


//오일러식 회전(우리가 사용하는 일반각도)

//transform.eulerAngles = new Vector3(0,45,0);


//쿼터니온 회전

//짐벌락현상( 회전축이 겹쳐져 꼬여버리는 현상 )을 방지하기 위해 보통 사용하는 방식이다. 

transform.rotation = Quaternion.Euler(0,45,0);


//현재 값에서 지정한 만큼 회전 (제일 많이 사용)

transform.Rotate(Vector3.up* 45);


//축에대한 회전 

//x축 

transform.rotation *= Quarternion.AngleAxis(10.0f, Vector3.up);


//수학 벡터 

// 벡터 덧셈 : 이동 

// 벡터 뺄셈 : 반대로 이동, 적이 나를 바라보기(방향)

// 벡터 곱셈(스칼라) : 스칼라값의 곱하기 만큼 이동(3배속, 4배속)

// 벡터 곱셈 - 내적 : 각도 (라디안값)

// 벡터 곱셈 - 외적 : 두 벡터의 직교(수직)인 또 다른 벡터 를 구한다. 


//특정 방향 바라보기

public GameObject target = Null;

Vector3 dirToTarget = 타겟.트렌스폼.포지션 - 트렌스폼.포지션; //벡터의 뺄셈을 이용해서 처리한다. 

transform.forward = dirToTarget.normalized; 

//LookAt 함수 사용(내부적으로 위와 같다)

transform.LookAt(target.transform);


'< Programming > > C#' 카테고리의 다른 글

interface 사용하기  (0) 2020.02.03
유니티 스크립트 : 지정 축 기준으로 회전  (0) 2020.01.09
박싱 언박싱  (0) 2020.01.07
유니티 스크립트 정리 (3일차)  (0) 2019.12.19
유니티 스크립트 정리 (2일차)  (0) 2019.12.18