2013-09-29 1 views
1

나는 여러 개의 스크립트에 대한 참조가 서로 다른 게임을 만들고 있습니다. exemple 들어Unity의 스크립트 참조

:

  1. 컨트롤러 스크립트
  2. SomeBehavior 스크립트
  3. GUI 스크립트

내가 다른 두 가지 할 수있을 때 내 의심의 여지가 입력 SomeBehavior에서

  1. 을 GUI 변수/함수 th 액세스/편집 내가 좋아하는 것 : 좋아해 :

    1. 변수 = GameObject.Find ("GuiTag"). GetComponent < GUI 스크립트>();
    variable.score .... 그리고 계속 ... Controller.gui에 의해 SomeBehavior 액세스/편집 GUI 변수에

  2. 이/기능 (컨트롤러 스크립트에 공용 변수를 GUI) ... 중앙 집중화 모든 기본 스크립트를 하나씩 사용하면 스크립트에서 변수가 적어지고 메모리가 적어집니다. ...

    2.1. 변수 = GameObject.Find ("ControllerTag"). GetComponent < 컨트롤러 스크립트>();
    variable.gui.score ....

더 나은 하나입니다
?

+1

벤치 마크 및 테스트. 'GameObject.Find'의 결과를 다시 사용해야한다면'Find'는 소모품 콜입니다. 메모리가 간다면 C#의 참조 유형을 읽어야 할 것입니다. "스크립트에서 변수가 적다"는 것은 메모리와 거의 관계가 없습니다. – Jerdak

답변

0

스크립트 중 하나만 가질 수있는 공용 정적 변수는 공용 get 및 개인 집합을 사용하여 해당 클래스에 설정할 수 있습니다. Start 또는 Awake 함수에서이 변수를 this로 설정하면 다른 스크립트에서 해당 스크립트에 쉽게 액세스 할 수 있습니다.