¿ÀºêÁ§Æ®¸¦ ã±â, ½ºÅ©¸³Æ® ÄÄÆ÷³ÍÆ® »ç¿ë, ÅÂ±× Ãß°¡, ÅÂ±× °Ë»ö¿¡ ´ëÇؼ ¾Ë¾Æº»´Ù.
½ºÅ©¸³Æ® ÄÄÆ÷³ÍÆ® Á¢±Ù Çϱâ
´Ù¸¥ ½ºÅ©¸³Æ®¿¡¼ BallMove ½ºÅ©¸³Æ®ÀÇ x °ª¿¡ Á¢±ÙÇÏ¿© º¸ÀÚ. BallMove ½ºÅ©¸³Æ®´Â ball ¿ÀºêÁ§Æ®ÀÇ ÄÄÆ÷³ÍÆ®·Î Ãß°¡ ÇÏ¿´´Ù.
public class BallMove : MonoBehaviour {
float y = -3.0f;
public float x = 6.0f;
}
|
GameObject.Find( )·Î "ball" ¿ÀºêÁ§Æ®¸¦ ã´Â´Ù. GetComponent< >·Î ÄÄÆ÷³ÍÆ®¸¦ ã´Â´Ù. ½ºÅ©¸³Æ® À̸§À» ³ÖÀ¸¸é ½ºÅ©¸³Æ®¸¦ ¾ò¾î¿Ã¼ö ÀÖ´Ù.
ÇØ´ç Ŭ·¡½ºÀÇ publicÀº ¹Ù·Î Á¢±Ù °¡´ÉÇÏ´Ù.
public class AppleBox : MonoBehaviour {
BallMove ballMove;
void Start () {
ballMove = GameObject.Find("ball").GetComponent<BallMove>();
}
void Update () {
float dir = Input.GetAxis("Horizontal");
ballMove.x += (dir * Time.deltaTime * 5);
}
}
|
¸Þ½ÃÁö º¸³»±â
SendMessage·Î ´Ù¸¥ °ÔÀÓ¿ÀºêÁ§Æ®¿¡ ¸Þ½ÃÁö¸¦ º¸³¾¼ö ÀÖ´Ù. ù¹ø° ÀÎÀÚ´Â ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¸Þ¼Òµå À̸§ÀÌ´Ù. µÎ ¹ø° ÀÎÀÚ´Â ¸Þ½ÃÁö¸¦ ¹Þ´Â ¸Þ¼Òµå°¡ Áغñ ¾ÈµÈ °æ¿ì, ¿¡·¯¸¦ ¹ß»ý ½ÃÅ°Áö ¾Êµµ·Ï ÇÑ´Ù. (¸Þ½ÃÁö¸¦ ¹Þ´Â ¸Þ¼Òµå°¡ Áغñ µÈ °æ¿ì¿¡´Â »ý·«Çصµ ÁÁ´Ù.)
//Trigger Ŭ·¡½º¿¡¼ ¸Þ½ÃÁö º¸³»±â
void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
Debug.Log("Tigger Enter");
GameObject gameObj = other.gameObject;
gameObj.SendMessage( "EnterTrigger", SendMessageOptions.DontRequireReceiver);
}
}
|
°´Ã¼ÀÇ EnterTrigger( ) ¸Þ¼Òµå·Î ¸Þ½ÃÁö¸¦ º¸³½´Ù.
public class PlayerObj : MonoBehaviour
{
void EnterTrigger()
{
Debug.Log("Runed EnterTrigger");
}
}
|
ÅÂ±× Ãß°¡, °Ë»ö
°°Àº ¿ÀºêÁ§Æ®¸¦ ±¸ºÐÇϱâ À§Çؼ´Â °íÀ¯ÀÇ À̸§ÀÌ ÇÊ¿äÇÏ´Ù. À¯´ÏƼ¿¡¼´Â ű׸¦ ÀÌ¿ëÇؼ °°Àº ¿ÀºêÁ§Æ®¸¦ ±¸ºÐÇÑ´Ù.
Inspectorâ¿¡¼ Untagged µÇ¾î ÀÖÀ¸¸é űװ¡ ¾ø´Â°ÍÀÌ´Ù.
"Add Tag..."·Î ÅÂ±× À̸§À» »ý¼ºÇÑ´Ù. "MyBall"À̶ó´Â ÅÂ±× À̸§ ÀÔ·ÂÇÑ´Ù.
ű׸¦ Ãß°¡ÇÏ¸é ¸Þ´º¿¡ "MyBall"À̶ó´Â ¸Þ´º°¡ Ãß°¡ µÈ´Ù. ball ¿ÀºêÁ§Æ®¿¡¼ "MyBall" ű׸¦ ¼±ÅÃÇÑ´Ù
ÅÂ±× °Ë»öÀº ´ÙÀ½°ú °°´Ù.
//°á°ú´Â µ¿ÀÏÇÏ´Ù.
BallMove ballMove
//ű׷Π°Ë»ö
ballMove = GameObject.FindWithTag("MyBall").GetComponent<BallMove>();
//°ÔÀÓ ¿ÀºêÁ§Æ® À̸§À¸·Î °Ë»ö
ballMove = GameObject.Find("ball").GetComponent<BallMove>();
|
űװ¡ ¿©·¯ °³ À϶§ »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.
public class AppleBox : MonoBehaviour {
GameObject [] ballArr;
void Start ()
{
ballArr = GameObject.FindGameObjectsWithTag( "MyBall");
}
void Update ()
{
foreach (GameObject obj in ballArr)
{
BallMove ballMove = obj.GetComponent<BallMove>();
ballMove.x += (dir * Time.deltaTime * 5);
}
}
}
|
½ºÅ©¸³Æ®¿¡¼ ÅÂ±× Ãß°¡´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. ¼Ò½º¿¡¼ ű׸¦ Ãß°¡ ÇÏ´õ¶óµµ TagManager¿¡´Â űװ¡ Ãß°¡ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
BallMove ballMove;
//¿¹¸¦ À§Çؼ ÅÂ±× Ãß°¡
GameObject.Find("ball").tag = "MyBall";
ballMove = GameObject.FindWithTag("MyBall").GetComponent<BallMove>();
|
|