유니티 콜백 예제

대리자는 이러한 콜백을 보유하는 형식또는 여러 콜백을 보유하는 형식입니다. 안녕, 누군가가 내 자신의 대리자 / 콜백 기능을 만드는 올바른 방향으로 나를 표시하거나 가리 킬 수 있는지 궁금했습니다. 기본적으로 나는 당신이 prime31 플러그인 (특히 소셜 네트워킹 사람)을 사용 하거나 로그인 하지 않은 경우 그들은 대리자가 있는 경우 뭔가 결과로 발생 하는 뭔가 만들고 싶어, 희망 이 잘 설명 충분히 메신저 프로그래머의 가장 경험이 없는, 어떤 도움이 크게 감사 할 것이다. 직접 테스트를 시도하려면 위의 코드를 Unity 프로젝트의 에셋 디렉토리에 있는 TestScript.cs 파일에 붙여넣고 새 빈 프로젝트의 기본 카메라 게임 오브젝트에 첨부하기만 하면 됩니다. 그런 다음 64비트 프로세서를 위한 비개발 모드를 구축하고 가장 빠른 그래픽으로 640×480에서 창을 실행합니다. 나는이 컴퓨터에서 그런 식으로 실행 : 메시지를 반환하기 위해 전달 된 수신기 / 콜백을 호출, 세 가지 옵션은 콜백 체계를 구현하는 유효한 방법입니다. 그래서, 어느 것이 가장 빠릅니다? 다음 테스트는 하나의 작은 MonoBehaviour로 알아낸다 : 나는 그 예를 통해 그 질문에 대한 답을 발견했다. 콜백을 할 수있는 또 다른 방법이 있습니까? 다른 방법을 통해 한 가지 방법에 대한 환경 설정이 있어? 코멘트에서 소리! 이 문서 참조: Link, System.Action을 사용하는 것이 콜백 함수를 구현하는 가장 빠른 방법입니다. 안드로이드 라이브러리 프로젝트가 있고 Unity 프로젝트에서 라이브러리 프로젝트를 가져왔습니다. 이제 Android 라이브러리 프로젝트의 응답에 따라 실행되는 Unity 프로젝트에서 콜백을 구현하려고 합니다. 내가 말하는 것을 의미, 유니티 플레이어 활동 (안드로이드 프로젝트)에서 스크립트 파일 방법을 호출합니다. http://forum.unity3d.com/threads/another-noob-question-callback-functions-solved.27998/ 마지막 하나는 C #에 대한 홀수 볼 문자이지만 다른 언어에서는 매우 일반적입니다.

예를 들어 Java의 ActionListener 및 기타 « 리스너 »는 이 전략을 사용합니다. 간단히 말해, 대리자 대신 인터페이스를 정의한 다음 콜백 함수를 사용하는 대신 클래스를 구현합니다. 그 모습은 다음과 같습니다 natbro / UnityPlugin의 새로운 릴리스에 대한 알림을 원하십니까? 이렇게 하면 MyCallbackMethod 서명을 콜백에 할당하고(위의 두 번째 예제 대리자로 확인됨) true를 전달하여 호출합니다. 이렇게 하면 MyCallbackMethod가 호출되어 Debug.Log에서 « true »를 인쇄합니다. 나는 당신이 메인 스레드에서 UnitySendMessage ()를 호출 할 수 있다고 생각 – 적어도 위의 하나의 시나리오에서 당신은 안드로이드 UI 작업자 스레드에서 호출하는. « 대리자 »가 단순히 « 콜백 목록 »이라고 불리는 경우 모든 것이 처음부터 명확해질 것입니다. 이제 검사기에서 대리자 처리기 « OnButtonClick » 메서드에 단추 이벤트를 연결하고 재생을 클릭합니다. 단추를 클릭 하면 메서드가 할당 되어 호출 됩니다 볼 수 있습니다. 이러한 방식으로 모든 클래스는 OnButtonClickDelegate를 구독하고 호출될 때 콜백을 받을 수 있습니다.

나는 그것이 지금 의미가 있기를 바랍니다. 마지막 콜백 목록을 만들고, 콜백 프로세스 중에 추가 및 제거를 처리하고, 각 콜백 함수에 대한 클래스를 어색하게 정의하기 때문에 마지막 방법은 훨씬 덜 편리합니다. 자바의 익명 클래스의 도움없이 모든 : 테스트 유니티 프로젝트 UnityPluginTest는 단순히 UnityPlugin.cs 스크립트 구성 요소가 부착 된 큐브와 기본 장면입니다. 예제의 실행 결과가 순전히 콘솔 디버그.Log 출력인 경우. 1. 그건 사실이야. 동일한 콜백을 사용 하 여 CPU의 명령 캐시를 많이 사용 하지 않습니다. 캐시 누락이 있는 경우 훨씬 느리게 실행될 수 있습니다. 나는 이것을 시도하고 결과가 바뀌는지 확인합니다. 위의 예제는 지금까지 언급 한 모든 것을 함께 가져옵니다. 콜백을 저장하기 위한 Action 변수, 콜백을 처리하는 OnConfirm 메서드 및 참(확인) 또는 false(취소)로 콜백을 호출하는 몇 개의 단추가 있습니다.

게임이 프레임당 1,000개의 콜백을 가지고 있다고 가정해 보세요. 콜백이 많지만 이 문서의 테스트 결과보다 100,000배 적습니다.