[Unity] 3. 벡터의 내적
- Fastcampus의 C#과 유니티로 배우는 게임 개발 올인원 패키지 Online - 유니티 개발을 위한 필수 수학&물리 강의를 수강하면서 정리한 내용입니다.
1. 벡터의 내적 강의 정리
2. 실제 실습 내용
- 손전등 범위 안에 유령이 있는지 체크
1) 플레이어 이동
void PlayerMove()
{
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
//GetAxis 조이스틱 컨트롤러 간단하게 만들 수 있음
//Horizontal x축, Vertical y축
transform.Translate(new Vector3(x,y) * (moveSpeed * Time.deltaTime));
}
2) 유령 체크
void CheckGhost()
{
//유령의 수 초기값 0
int i = 0;
//foreach 이용해 각 오브젝트(유령) 전부 체크
foreach (var ghost in ghostObjectArray)
{
//유령 위치값(도착지) - 플래쉬 위치값(출발지)
//= 유령에서 플래쉬까지의 벡터 만들어줌
Vector3 distanceVec = ghost.transform.position - transform.position;
//magnitude : 거리값
//설정한 범위 안에 들어와있는지
if (distanceVec.magnitude < rangeDistance)
{
//distanceVec = 정리에서 벡터 d에 해당
//방향벡터로 만들어줌(내적하기 위햬)
Vector3 dirVec = distanceVec.normalized;
//transfrom.up -> 플래쉬의 위쪽 방향 벡터(크기 1), 정리에서 벡터 c에 해당
//플래쉬 위쪽 방향과 dirVec 내적 (Vector3.Dot)
//내적값이 범위 앵글의 cos값보다 크면 범위 내에 있음
if(Vector3.Dot(transform.up, dirVec) > Mathf.Cos(rangeAngle*Mathf.Deg2Rad))
i++;
}
}
Debug.Log("감지된 유령의 수: "+i);
}
Author And Source
이 문제에 관하여([Unity] 3. 벡터의 내적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yeju6540/Unity-3.-벡터의-내적저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)