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));
}
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);
}