delegate ์ฌ์ฉํด์ A์ B๊ฐ ๋ถ๋ซ์น๋ฉด C๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋๋ฐฉ๋ฒ ๊ฐ๋ฅด์ณ์ฃผ์ธ์
์ ๋ํฐ ์น ์ด๋ณด์ ๋๋ค. ์์ธํย ๊ฐ๋ฅด์ณ์ฃผ์ธ์
A์ B์ ๋ฃ์ ์คํฌ๋ฆฝํธ (65536์ ์ ํ๋์ ์ด๋ ๊ฒ ํ์ต๋๋ค ์ํด์ข)
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=141278&page=1
delegate ์ฌ์ฉํด์ A์ B๊ฐ ๋ถ๋ซ์น๋ฉด C๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋A์ B์ ๋ฃ์ ์คํฌ๋ฆฝํธusing System.Collections;using System.Collections.Generic;using UnityEngine;public class AB : MonoBehaviourgall.dcinside.com---------------------------------------------------------------------------------------------------------
C์ ๋ฃ์ ์คํฌ๋ฆฝํธ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CollisionExample : MonoBehaviour
{
public delegate void CollisionAction();
public float speed;
public static event CollisionAction OnABCollision;
public GameObject myObject;
private void Start()
{
// myObject์ ๋ค๋ฅธ ๊ฒ์ ์ค๋ธ์ ํธ์ ๋ ํผ๋ฐ์ค๋ฅผ ํ ๋นํฉ๋๋ค. (์ด๋ ์ฌ๊ธฐ myObject์ ์๋ฌด๊ฑฐ๋ ๋ฃ์)
myObject = transform.Find("OtherObject").gameObject; // ์ฌ๊ธฐ๊ฐ 17๋ฒ์จฐ ์ค ์ค๋ฅ ์ฝ๋???
// A์ B๊ฐ ์ถฉ๋ํ๋ฉด C ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋
OnABCollision += MoveCRight;
}
private void OnDestroy()
{
myObject = null;
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (OnABCollision != null)
{
OnABCollision();
}
}
}
private void MoveCRight()
{
transform.Translate(Vector3.right*speed);
Debug.Log("C ์ด๋!");
}
}
์ ๋๋ค
Chat gpt 3.5 Ai๊ฐ ๊ฐ๋ฅด์ณ์ค๋๋ก ์ป๋๋ฐ ์ ์๋ ๊น์???
A๋ Aํ๊ทธ B๋ Bํ๊ทธ C๋ ํ๊ทธ ์์, ํธ๋ผ์ด์ต๊ธ๋ ํ๊ทธ ์์ ์ ๋๋ค
Aํ๊ณ Bํ๊ณ ์ถฉ๋ํ๊ณ ์คํ์ด์ค ๊น์ง ๋๋ ๋๋ฐ๋ ์๋ฌด์ผ์ด ์์ผ์ด๋๋ค์.(C๊ฐ ์์์ง์ด๋ค์)
GameObjectFind ์ฐ์ง ๋ง๊ณ delegate ์จ์ ํด์ฃผ์ธ์ ๋์ค์ ์ถฉ๋ํ C๊ฐ ์ฌ๋ผ์ง๊ฒ๋ ํ ๊ฑฐ์์
๋ณด์๋ฉด ์์๋ค์ํผ My Object์ ํธ๋ผ์ด์ต๊ธ ๋ฃ์์ต๋๋ค.(๋ญ ๋ฃ์ด์ผ ํ ์ง ๋ชฐ๋ผ์ ์๋ฌด๊ฑฐ๋ ๋ฃ์์ด์)
ํธ๋ผ์ด์ต๊ธ์ ๊ทธ๋ฅ ์๋ฌด๊ฒ๋ ์๋ง์ก์ต๋๋ค.(์๋ฌด๊ฒ๋ ์์ด์)
if (collision.gameObject.CompareTag("A") && collision.gameObject.CompareTag("B")) ์ด ์กฐ๊ฑด๋ฌธ ์๋ชป๋๋ฏ ||๋ก ใฑ