Interface
여러클래스에 공통적인 기능을 추가하기 위해서 사용
interface를 상속받으면 멤버를 반드시 구현해야 한다
https://docs.unity3d.com/ScriptReference/Material.html
using UnityEngine;
public interface IColor
{
void ColorChange(GameObject obj);
}
using UnityEngine;
public class ColorBlue : MonoBehaviour, IColor
{
public void ColorChange(GameObject obj)
{
Renderer rend = obj.GetComponent<Renderer>();
rend.material.color = Color.blue;
Destroy(gameObject);
}
}
using UnityEngine;
public class ColorGreen : MonoBehaviour ,IColor
{
public void ColorChange(GameObject obj)
{
Renderer rend = obj.GetComponent<Renderer>();
rend.material.color = Color.green;
Destroy(gameObject);
}
}
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody rbody;
private Vector3 move;
void Start()
{
rbody = GetComponent<Rigidbody>();
move = Vector3.zero;
}
void Update()
{
move.x = Input.GetAxis("Horizontal");
move.z = Input.GetAxis("Vertical");
rbody.MovePosition(transform.position + move * 5 * Time.deltaTime);
}
private void OnTriggerEnter(Collider other)
{
other.GetComponent<IColor>().ColorChange(gameObject);
}
}

'Unity > 수업 내용' 카테고리의 다른 글
| GPGSTest2021 개인정보 처리방침 (0) | 2021.12.01 |
|---|---|
| [Unity 2020.3] Cinemachine (0) | 2021.11.30 |
| [Unity 2020.3] Refraction Shader (0) | 2021.11.26 |
| [Unity 2020.3] Water Shader (0) | 2021.11.26 |
| [Unity 2020.3] Alpha Shader 투명 오브젝트 뒷면까지 출력되는 문제 (0) | 2021.11.25 |