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 |
댓글