※ 키보드 좌우/상하 받아오기
· Input.GetAxisRaw("Horisontal"/"Vertical");
※ 키보드 입력
· Input.GetKeyDown : 키를 한 번 눌렀을 때 true를 반환
· Input.GetKeyUp : 키를 누르고 뗐을 때 true를 반환
· Input.GetKey : 키를 누르고 있을 때 true를 반환
※ Time.deltaTime
· 프레임과 프레임 사이의 간격시간.
· 프레임의 차이(핑의 차이)가 존재하는 게임 환경에서 동일한 처리(연산)속도를 위해
프레임 단위가 아닌 초 단위로 받는 명령어.
※ Mathf.Clamp()
· Mathf.Clamp(값, 최소값, 최대값) : 값을 최소, 최대 사이 값으로 고정 후 반환.
※ 레이캐스트
· 직선형 : Physics2D.Raycast(기준점, 방향, 길이, 레이어마스크)
· 원형 : Physics2D.OverlapCircle(기준점, 반지름 길이, 레이어마스크)
· 체크형 : Physics2D.CheckBox / .CheckCapsule / .CheckSphere
ㄴ 충돌한 객체가 존재하면 true를 반환. bool 처리 용이
· 사용 예시 : Player, Enemy 스크립트가 존재, Player가 Enemy를 감지.
Collider2D raycast = Physics2D.OverlapCircle(... ... ...)
if (raycast != null)
{
Enemy enemy = raycast.GetComponent<Enemy>();
if(Enemy != null)
{
// 데미지 받은 함수 처리
Enemy.TakeDamage();
}
}
※ 프로퍼티
: private로 선언한 변수에 접근하기 위한 설정.
ex) private float hp;
· public으로 변환
public float Hp => hp;
단, 이 방법은 get만 가능. set은 접근 불가능.
· 자동 프로퍼티
private float hp{get; set;}
· 세부 설정
private float hp{get { } set { } }
※ 공격 딜레이 설정
1. 코루틴
IEnumerator Attack()
{
isAttack = true;
yield return new WaitForSeconds(0.15f);
isAttack = false;
}
2. 시간 제한
private void Update()
{
private float attackTime = 0.0f;
attackTime += Time.deltaTime;
if(attackTime > 3.0f)
{
attackTime = 0.0f;
Attack();
}
}
※ 생성 명령어
· Instantiate(무엇을, 어느 위치에, 회전값)
※ 스크립트로 Inspector 내부에 접근하기
GameObject.Find("대상 이름").gameObject.SetActive(true);
GameObject.Find("상위 대상 이름").transform.Find("목표 대상 이름").gameObject.SetActive(true);
※ 랜덤
Random.Range(최소값, 최대값);
※ Collision
Collision = collider(2), Rigidbody(1) 필요.
Trigger = collider(2), collider(1) isTrigger 체크 필요.
void OnCollisionEnter2D(Collision2D collision)
{
// 충돌이 들어 왔을 때(시작했을 때)
if(collision.gameObject.tag == "사용자가 설정한 태그")
{
// 충돌처리
}
}
void OnCollisionExit2D(Collision2D collision)
{
// 충돌이 되고 나갔을 때(종료했을 때)
}
void OnCollisionStay2D(Collision2D collision)
{
// 충돌중일 때(진행중일 때)
}
※ Quaternion.Euler(x, y, z);
ㆍ유니티는 사원수인 Quaternion을 사용한다. x,y,z 어느 축이든 회전하다 보면 축들이 겹치는 짐벌락 현상이 발생하는데, 컴퓨터는 이를 구분하기 위해서 x,y,z축을 제외한 w축을 가진다.
ㆍEuler은 z축 주위로 z, x축 주위로 x, y축 주위로 y 각도만큼 회전한(순서대로) Rotation을 반환해준다.
간단하게 x,y,z 회전값을 반환해준다.