Unity의 다른 네임 스페이스에서 공용 메서드에 액세스

헤파 즈

나는로부터 public 메서드에 액세스하려고 ARCoreBackgroundRendererMonoBehavior이며에 위치한 클래스 GoogleARCore도 MonoBehavior하고라는 다른 클래스, 네임 스페이스 UIController와라는 다른 네임 스페이스에 있습니다 CompanyController. 이것이 가능한가? 내가 어떻게 해?

두 번째 클래스에서 호출하려는 방법은 다음과 같습니다.

public void DisableARBackgroundRendering()
    {
        if (m_CommandBuffer == null || m_Camera == null)
        {
            return;
        }

        m_Camera.clearFlags = m_CameraClearFlags;

        .......

    }

두 번째 클래스에서이 메서드를 간단한 메서드로 호출하고 싶습니다.

derHugo

일반적으로 해당 API 를 참조하면 도움이됩니다.


ARCoreBackgroundRenderer( API 참조 ) 자신이 네임 스페이스 클래스 라고 말했듯이 GoogleARCore..

using GoogleARCore;

또는 사용

GoogleARCore.ARCoreBackgroundRenderer

에 코드를 입력하십시오 UIController.

using UnityEngine;
using GoogleARCore;

namespace CompanyController
{
    public class UIController : MonoBehaviour
    {
        // Reference this via the Inspector by drag and drop 
        // [SerializeField] simply allows to serialize also private fields in Unity
        [SerializeField] private ARCoreBackgroundRenderer arRenderer;

        // Alternatively you could as said use the type like
        //[SerializeField] private GoogleARCore.ARCoreBackgroundRenderer arRenderer;

        private void Awake ()
        {
            // As a fallback find it on the scene
            if(!arRenderer) arRenderer = FindObjectOfType<ARCoreBackgroundRenderer>();
        }

        public void DisableARBackgroundRendering()
        {
            // Now use any public method of the arRenderer 
            arRenderer.SomePublicMethod();
        }
    }
}

그러나이 방법 DisableARBackgroundRenderingprivate있고 사용할 수 없다는 것도 알 수 있습니다. 또한 m_Cameram_CommandBuffer모두는 private당신이 그들에 액세스 할 수 없습니다 그래서.

당신이 할 수 와 - 당신이 가까이의 구현에 보면 ARBackgroundRenderer- 원하는 단지 활성화 및 따라 구성 요소를 사용하지 않도록 여기에 할 :

public void EnableARBackgroundRendering(bool enable)
{
    arRenderer.enabled = enable;
}

내부적으로 나머지 자체를 처리하므로 메서드, 필드 및 속성에 대한 추가 액세스가 필요하지 않습니다.

private void OnEnable()
{
    if (BackgroundMaterial == null)
    {
        Debug.LogError("ArCameraBackground:: No material assigned.");
        return;
    }

    LifecycleManager.Instance.OnSessionSetEnabled += _OnSessionSetEnabled;

    m_Camera = GetComponent<Camera>();

    m_TransitionImageTexture = Resources.Load<Texture2D>("ViewInARIcon");
    BackgroundMaterial.SetTexture("_TransitionIconTex", m_TransitionImageTexture);

    EnableARBackgroundRendering(); // AS YOU SEE IT ALREADY CALLS THIS ANYWAY
}

private void OnDisable()
{
    LifecycleManager.Instance.OnSessionSetEnabled -= _OnSessionSetEnabled;
    m_TransitionState = BackgroundTransitionState.BlackScreen;
    m_CurrentStateElapsed = 0.0f;

    m_Camera.ResetProjectionMatrix();

    DisableARBackgroundRendering(); // AS YOU SEE IT ALREADY CALLS THIS ANYWAY
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 클래스의 공용 메서드에 액세스

분류에서Dev

클래스 및 네임 스페이스 내부의 C # 목록, 다른 클래스에서 액세스

분류에서Dev

다른 네임 스페이스에서 메서드 재정의 C #

분류에서Dev

Vuex의 다른 네임 스페이스 모듈에서 rootGetters에 어떻게 액세스합니까?

분류에서Dev

std :: find에서 다른 네임 스페이스의 연산자 사용

분류에서Dev

중첩 된 네임 스페이스의 내부 메서드에 액세스

분류에서Dev

2 개의 다른 도메인에서 네트워크 공유에 액세스

분류에서Dev

서로 다른 네임 스페이스의 개별 파일에 다중 메서드 구현

분류에서Dev

Visual C ++에서 다른 파일 및 다른 네임 스페이스의 함수 사용

분류에서Dev

exiftool에서 구성된 사용자 지정 xmp 네임 스페이스에 액세스 할 수 없습니다.

분류에서Dev

서로 다른 네임 스페이스간에 데이터 계약 공유

분류에서Dev

다른 네임 스페이스에서 Mediawiki SpecialPage 클래스 사용

분류에서Dev

서로 다른 네임 스페이스의 포드 간 통신

분류에서Dev

laravel 4.1의 컨트롤러에서 다른 네임 스페이스를 사용하는 방법

분류에서Dev

laravel 4.1의 컨트롤러에서 다른 네임 스페이스를 사용하는 방법

분류에서Dev

다른 네임 스페이스에서 메서드를 호출하는 방법

분류에서Dev

인증서로만 액세스 네임 스페이스 허용

분류에서Dev

Visual Studio의 다른 프로젝트 / 네임 스페이스 / 솔루션에서 데이터 / 기능에 어떻게 액세스합니까?

분류에서Dev

네임 스페이스에있는 XML의 요소 액세스

분류에서Dev

다른 네임 스페이스에서 기호의 clang 재정의 오류

분류에서Dev

JS에서 다른 파일을 참조 할 때 네임 스페이스 사용

분류에서Dev

다른 네임 스페이스에서 선언 된 변수 사용

분류에서Dev

다른 네임 스페이스에서 실행중인 kubernetes 환경의 핑 API

분류에서Dev

kubernetes의 다른 네임 스페이스에서 나머지 API 호출

분류에서Dev

문자열 C #에서 다른 네임 스페이스의 함수 호출

분류에서Dev

다른 pid 네임 스페이스에서 자식의 프로세스 ID를 확인할 수 있습니까?

분류에서Dev

Android의 다른 클래스에서 메서드에 액세스

분류에서Dev

App Inventor의 TinyDB에서 네임 스페이스 사용

분류에서Dev

App Inventor의 TinyDB에서 네임 스페이스 사용

Related 관련 기사

  1. 1

    다른 클래스의 공용 메서드에 액세스

  2. 2

    클래스 및 네임 스페이스 내부의 C # 목록, 다른 클래스에서 액세스

  3. 3

    다른 네임 스페이스에서 메서드 재정의 C #

  4. 4

    Vuex의 다른 네임 스페이스 모듈에서 rootGetters에 어떻게 액세스합니까?

  5. 5

    std :: find에서 다른 네임 스페이스의 연산자 사용

  6. 6

    중첩 된 네임 스페이스의 내부 메서드에 액세스

  7. 7

    2 개의 다른 도메인에서 네트워크 공유에 액세스

  8. 8

    서로 다른 네임 스페이스의 개별 파일에 다중 메서드 구현

  9. 9

    Visual C ++에서 다른 파일 및 다른 네임 스페이스의 함수 사용

  10. 10

    exiftool에서 구성된 사용자 지정 xmp 네임 스페이스에 액세스 할 수 없습니다.

  11. 11

    서로 다른 네임 스페이스간에 데이터 계약 공유

  12. 12

    다른 네임 스페이스에서 Mediawiki SpecialPage 클래스 사용

  13. 13

    서로 다른 네임 스페이스의 포드 간 통신

  14. 14

    laravel 4.1의 컨트롤러에서 다른 네임 스페이스를 사용하는 방법

  15. 15

    laravel 4.1의 컨트롤러에서 다른 네임 스페이스를 사용하는 방법

  16. 16

    다른 네임 스페이스에서 메서드를 호출하는 방법

  17. 17

    인증서로만 액세스 네임 스페이스 허용

  18. 18

    Visual Studio의 다른 프로젝트 / 네임 스페이스 / 솔루션에서 데이터 / 기능에 어떻게 액세스합니까?

  19. 19

    네임 스페이스에있는 XML의 요소 액세스

  20. 20

    다른 네임 스페이스에서 기호의 clang 재정의 오류

  21. 21

    JS에서 다른 파일을 참조 할 때 네임 스페이스 사용

  22. 22

    다른 네임 스페이스에서 선언 된 변수 사용

  23. 23

    다른 네임 스페이스에서 실행중인 kubernetes 환경의 핑 API

  24. 24

    kubernetes의 다른 네임 스페이스에서 나머지 API 호출

  25. 25

    문자열 C #에서 다른 네임 스페이스의 함수 호출

  26. 26

    다른 pid 네임 스페이스에서 자식의 프로세스 ID를 확인할 수 있습니까?

  27. 27

    Android의 다른 클래스에서 메서드에 액세스

  28. 28

    App Inventor의 TinyDB에서 네임 스페이스 사용

  29. 29

    App Inventor의 TinyDB에서 네임 스페이스 사용

뜨겁다태그

보관