유튜브 34 - https://youtu.be/41WzBW6spFY
안녕하세요~ 오늘은 GetComponent에 대하여 좀 더 깊이 다룹니다. 이제 게임의 스코어 등 작업을 해야 하는데요. 기본적으로 GetComponent 를 잘 알아야 합니다.

오늘 배울 내용은 다음과 같습니다.
- 19강에서 배웠던 GetComponent 확인하기
- GetComponent의 다양한 사용법 살펴보기
- 다른 게임 오브젝트의 컴포넌트 접근하기
- Tag를 이용하여 다른 게임 오브젝트 접근하기

GetComponent 는 초반에 19강에서 간단히 다루었었습니다. 기억 나시나요? 이렇게 게임 오브젝트가 가지고 있는 컴포넌트를 GetComponent 메서드를 통해 확인, 접근했었던 기억이 있습니다. GetComponent 를 통해 원하는 타입의 컴포넌트를 자신의 게임 오브젝트에서 찾아오게 되며, < > 로 가져올 타입을 받는 기법을 제네릭(Generic) 기법이라고 합니다.

다음의 코드를 작성해서 확인해 봅니다. 기존 작업하는 파일에 해도 되고, 새로 만들어도 됩니다. 간단히 스크립트를 하나 생성하고, 게임 오브젝트에 스크립트를 어태치한 후 다음의 코드를 확인하면 됩니다. (영상을 참고하세요^^)
다음과 같이 GetComponent 를 통해 다양한 방법으로 컴포넌트를 받아올 수 있습니다. 굳이 외우려고 하지 말고, 다양한 표현법이 있다 ~ 요런 정도로 확인하도록 합니다. 우리가 구글링을 통해 공부하다보면 이런식으로 다양한 표현법을 만나기때문에 간단히 알고 넘어가겠습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
void Start() {
Transform tr1 = GetComponent<Transform>();
Transform tr2 = gameObject.GetComponent<Transform>();
Transform tr3 = (Transform)GetComponent("Transform");
Transform tr4 = (Transform)GetComponent(typeof(Transform));
Debug.Log(tr1);
Debug.Log(tr2);
Debug.Log(tr3);
Debug.Log(tr4);
}
}

오브젝트들은 서로 독립적으로 작동합니다. 자신 외에 다른 오브젝트의 컴포넌트에 접근하려면 다음의 방법을 사용합니다.
public 으로 GameObject 타입의 other 변수를 선언한 후, other 변수에 GetComponent를 이용하여 Transform 컴포넌트를 얻어 옵니다. 이때 미리 Transform 타입으로 만든 tr 변수에 값을 할당하고, Debug.Log( )를 통해 값을 확인합니다. tr 변수값도 확인하고, tr.position을 통해 속성도 잘 읽어오는 지 확인합니다. 이렇게 GetComponent를 통해 다른 게임 오브젝트의 컴포넌트를 접근할 수 있습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
private Transform tr;
public GameObject other;
void Start() {
tr = other.GetComponent<Transform>();
Debug.Log(tr);
Debug.Log(tr.position);
}
}

이때 중요한 것이 public으로 선언해야 하는 점입니다. public으로 선언된 변수는 다음과 같이 인스펙터 창에 활성화되고, 여기에 원하는 게임오브젝트를 등록하면 됩니다. 이해가 되지요?

이번에는 스크립트를 wall1에 어태치하여 봅니다. 이전에 Player에게 어태치한것은 지우면 됩니다. wall1에 스크립트를 어태치하고, wall1에서 Player를 접근하는 방법을 살펴보도록 합니다.

Player의 인스펙터 창에서 Player의 태그 이름을 지정해 줍니다. 미리 만들어진 Player을 바로 적용합니다.

다음과 같이 코드를 작성해봅니다. 하나씩 살펴보면 this는 스크립트가 어태치된 자기 자신을 의미하는것을 알 수 있습니다. Player의 Tag를 이용하여 Player에게 접근할 수 있음을 볼 수 있습니다. 와우^^

오늘 배운것이 이해가 잘 되셨나요? 매우 중요하면서도 살짝 어렵지만 여러번 테스트하면 충분히 이해할 수 있을 듯 합니다. ^^ 오늘도 수고하셨습니다~~~

유튜브 34 - https://youtu.be/41WzBW6spFY
안녕하세요~ 오늘은 GetComponent에 대하여 좀 더 깊이 다룹니다. 이제 게임의 스코어 등 작업을 해야 하는데요. 기본적으로 GetComponent 를 잘 알아야 합니다.
오늘 배울 내용은 다음과 같습니다.
GetComponent 는 초반에 19강에서 간단히 다루었었습니다. 기억 나시나요? 이렇게 게임 오브젝트가 가지고 있는 컴포넌트를 GetComponent 메서드를 통해 확인, 접근했었던 기억이 있습니다. GetComponent 를 통해 원하는 타입의 컴포넌트를 자신의 게임 오브젝트에서 찾아오게 되며, < > 로 가져올 타입을 받는 기법을 제네릭(Generic) 기법이라고 합니다.
다음의 코드를 작성해서 확인해 봅니다. 기존 작업하는 파일에 해도 되고, 새로 만들어도 됩니다. 간단히 스크립트를 하나 생성하고, 게임 오브젝트에 스크립트를 어태치한 후 다음의 코드를 확인하면 됩니다. (영상을 참고하세요^^)
다음과 같이 GetComponent 를 통해 다양한 방법으로 컴포넌트를 받아올 수 있습니다. 굳이 외우려고 하지 말고, 다양한 표현법이 있다 ~ 요런 정도로 확인하도록 합니다. 우리가 구글링을 통해 공부하다보면 이런식으로 다양한 표현법을 만나기때문에 간단히 알고 넘어가겠습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
void Start() {
Transform tr1 = GetComponent<Transform>();
Transform tr2 = gameObject.GetComponent<Transform>();
Transform tr3 = (Transform)GetComponent("Transform");
Transform tr4 = (Transform)GetComponent(typeof(Transform));
Debug.Log(tr1);
Debug.Log(tr2);
Debug.Log(tr3);
Debug.Log(tr4);
}
}
오브젝트들은 서로 독립적으로 작동합니다. 자신 외에 다른 오브젝트의 컴포넌트에 접근하려면 다음의 방법을 사용합니다.
public 으로 GameObject 타입의 other 변수를 선언한 후, other 변수에 GetComponent를 이용하여 Transform 컴포넌트를 얻어 옵니다. 이때 미리 Transform 타입으로 만든 tr 변수에 값을 할당하고, Debug.Log( )를 통해 값을 확인합니다. tr 변수값도 확인하고, tr.position을 통해 속성도 잘 읽어오는 지 확인합니다. 이렇게 GetComponent를 통해 다른 게임 오브젝트의 컴포넌트를 접근할 수 있습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
private Transform tr;
public GameObject other;
void Start() {
tr = other.GetComponent<Transform>();
Debug.Log(tr);
Debug.Log(tr.position);
}
}
이때 중요한 것이 public으로 선언해야 하는 점입니다. public으로 선언된 변수는 다음과 같이 인스펙터 창에 활성화되고, 여기에 원하는 게임오브젝트를 등록하면 됩니다. 이해가 되지요?
이번에는 스크립트를 wall1에 어태치하여 봅니다. 이전에 Player에게 어태치한것은 지우면 됩니다. wall1에 스크립트를 어태치하고, wall1에서 Player를 접근하는 방법을 살펴보도록 합니다.
Player의 인스펙터 창에서 Player의 태그 이름을 지정해 줍니다. 미리 만들어진 Player을 바로 적용합니다.
다음과 같이 코드를 작성해봅니다. 하나씩 살펴보면 this는 스크립트가 어태치된 자기 자신을 의미하는것을 알 수 있습니다. Player의 Tag를 이용하여 Player에게 접근할 수 있음을 볼 수 있습니다. 와우^^
오늘 배운것이 이해가 잘 되셨나요? 매우 중요하면서도 살짝 어렵지만 여러번 테스트하면 충분히 이해할 수 있을 듯 합니다. ^^ 오늘도 수고하셨습니다~~~