유니티 스크립트 정리
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 |