유니티 내비게이션 매쉬 최적화 경로 계산

유니티 C# 2023. 9. 18. 15:13

출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gudska4237&logNo=221454275833 

 

[Unity] NavMeshAgent SetDestination() 응답 지연 문제

구글링을 해보면 보통 NavMeshAgent를 이용해 목표 지점까지 이동할 때는 SetDestination을 이용한다....

blog.naver.com

SetDestination 함수를 사용하는것보다

 

NavMeshPath path = new NavMeshPath();

agent.CalculatePath(point, path);

agent.SetPath(path); 를 사용하자.

큰숫자 서식 지정

유니티 C# 2023. 6. 2. 12:21

출처: https://gram.gs/gramlog/formatting-big-numbers-aa-notation/

2D 총알이 화면에 닿았을 때 반대로 튕기는 것

유니티 C# 2022. 11. 23. 10:58
private Vector2 _dir;
private GameObject _bulletObj;
private float _speed;

private void OnMove()
{
    _bulletObj.transform.Translate(_dir * (Time.deltaTime * _speed));
    var screenPoint = SystemCamera.Instance.cam.WorldToScreenPoint(_bulletObj.transform.position);
    if (screenPoint.x <= 0 || screenPoint.x >= Screen.width)
    {
        _dir = new Vector2(-_dir.x, _dir.y);
    }
    if (screenPoint.y <= 0 || screenPoint.y >= Screen.height)
    {
        _dir = new Vector2(_dir.x, -_dir.y);
    }
}

타겟오브젝트가 화면밖에 있는지 체크하는것(2D)

유니티 C# 2022. 11. 21. 11:15
private GameObject targetObj;
private Camera mainCamera;

public bool IsOutScreen()
{
    var screenPoint = mainCamera.WorldToScreenPoint(targetObj.transform.position);
    var isOutScreen = screenPoint.x <= 0 || screenPoint.x >= Screen.width || screenPoint.y <= 0 || screenPoint.y >= Screen.height;
    return isOutScreen;
}

타겟이 원하는 각도에 들어왔는지 체크하는것(2D)

유니티 C# 2022. 11. 21. 10:38
private GameObject myObj;
private GameObject targetObj;
private Vector2 myDir;
private float angle;

private bool IsInAngle()
{
   var targetDir = targetObj.transform.position - myObj.transform.position;
   var calAngle = Vector2.Angle(myDir, targetDir);
   return calAngle <= angle;
}