2014년 5월 15일 목요일

unity3d script : 특정 script에 access하는 방법

자신의 오브젝트에 존재하는 스크립트를 찾아 access하는 방법

GetComponent<TargetScriptName>().someVariable = someValue;
GetComponent<TargetScriptName>().SomeMethod();


다른 오브젝트를 통해 access하는 방법
void OnTriggerEnter(Collider other)
{
      other.GetComponent<TargetScriptName>().someVariable = someValue;
}

void OnCollisionEnter(Collision collision)
{
      collision.GetComponent<TargetScriptName>().someVariable = someValue;
}


이름이나 태그를 통해 스크립트 찾아내는 방법
GameObject.FindWithTag 함수나 GameObject.Find 함수를 사용

targetScript = GameObject.Find("someObjectName").GetComponent<TargetScriptName>();


모든 child오브젝트에서의 특정 스크립트를 얻어내고자 할 경우...

for(var t : Transform in transform)
{
     target = t.GetComponent(TargetScriptName);
     target.DoSomething();
     target.someVariable = someValue;
}

댓글 없음:

댓글 쓰기