https://velog.io/write?id=6d36bf0b-031f-45f8-bae8-d46d7808bd2b
유니티 2d 프로젝트의 SearchAI 부분에서
Object의 Find 메소드를 오버라이딩 하는 부분에서
조금더 효율적인 Find메소드를 오버라이딩 하다가 인자로 Func를 공부함.
이 부분에서 GameObject를 받아 boolean을 내뱉는 다고 생각을 일단 하면됨.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://kwangyulseo.com/2016/10/16/ienumerator-ienumerable%EC%9D%98-%EC%9D%98%EB%AF%B8/
https://docs.microsoft.com/en-us/dotnet/api/system.func-2?view=net-6.0
다음 예제에서는 Func<T,TResult> 대리자를 선언하고 사용하는 방법을 보여줍니다. 이 예제에서는 Func<T,TResult> 변수 를 선언하고 문자열의 문자를 대문자로 변환하는 람다 식을 할당합니다. 이 메서드를 캡슐화하는 대리자는 이후에 Enumerable.Select 메서드에 전달되어 문자열 배열의 문자열을 대문자로 변경합니다
https://developer-talk.tistory.com/208
action은 뭐 이렇게 사용을 하는데
Line1을 보면 파라미터 없는 Action을 사용한 것입니다. action이라는 대리자에 익명함수를 정의 한 것입니다.
Line2는 string 파라미터를 갖는 Action입니다. Line3은 string과 int형 파라미터를 갖는 Action 입니다.
Line 5 ~ 7은 함수 사용하듯이 사용합니다
Func의 경우 return값이 무조건 있어야한다.
Func은 리턴 값이 꼭 있어야 합니다. 리턴 타입은 가장 마지막에 적어주면 됩니다
=> ThreadPool의 Task와 이어짐