728x90
C# 을 다루는건 처음인지라 C++ 에서 잘 써먹던 func map 을 C# 으로 만들어보려고 백방으로 검색을
했으나 나오는게 없어서 그냥 직접 만듬 -_-
Dictionary 로 key 값을 참조 동작했으면 하는 function 을 불러오는 구조..
변수 넘기는건 ArrayList 를 사용해서 어떤 상황에든 다 되게 설계..
예제
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
public class SystemConsole : MonoBehaviour {
public delegate bool Work(ArrayList val);
protected Dictionary<string, Delegate> m_WorkMap = new Dictionary<string, Delegate>();
void Start () {
m_WorkMap.Add("Test", new Work(Work_Test));
}
public void Run(string sKey) // 이 함수를 어디선가 호출해야됨.. 물론 sKey 는 "Test" 로...
{
ArrayList val = ArrayList();
val.Add("Good");
if(m_WorkMap.ContainsKey(sKey))
{
Work func = (Work)m_WorkMap[sKey];
func(val); // 실제로는 start 에서 add 시킨 Work_Test 가 실행
}
}
protected bool Work_Test(ArrayList val)
{
Debug.Log((string)val[0]); // "Good"
return false;
}
}
728x90
'프로그래밍 > Unity' 카테고리의 다른 글
| Unity3D - Shader Syntex Value (0) | 2014.10.23 |
|---|---|
| Unity3D - Matrial Shader 교체 (0) | 2014.10.23 |
| Unity3D - sound error (0) | 2014.04.11 |
| Unity3D - Editor 에서의 경로 (0) | 2014.04.10 |
| Unity 3D - 스크립트상 프리팹 생성과 삭제 (0) | 2013.11.15 |
댓글