<div>유니티로 프로그래밍중 막히는 부분이 있어서 질문드립니다.</div> <div><br></div> <div>프로그램은 c#입니다..</div> <div><br></div> <div>컴퓨터 고수님들... 합성위임에 대하여 질문드리고자 합니다....</div> <div><br></div> <div>제가 얻고자 하는 프로그램은 특정 조건일 경우에.... 특정한 함수를 위임시키고자 하는데요. </div> <div><br></div> <div>일단 예시를 들어보겠습니다.</div> <div><br></div> <div>// 가독성을 높이기 위해 잡다한 명령들은 빼겠습니다...</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">// ====================================================</span></div> <div><br></div> <div>delegate void MyDelegate();</div> <div>MyDelegate _dele;</div> <div><br></div> <div>void Start() // 유니티에서는 이것이 자동적으로 실행됩니다.</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += One;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += Two;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += Three; // 세가지 함수를 위임하고</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele(); //실행하면 프린트가 잘됩니다.</div> <div>}</div> <div><br></div> <div>void One()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 1 \n");</div> <div>}</div> <div><br></div> <div> <div>void Two()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 2 \n");</div> <div>}</div></div> <div><br></div> <div> <div>void Three()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 3 \n");</div> <div>}</div></div> <div>// ====================================================</div> <div><br></div> <div>합성위임을 해서 세가지 함수를 동시에 쓰는 프로그램입니다. 아주 잘 작동합니다. </div> <div><br></div> <div>그런데 처음 말씀드렸다싶이... 특정 조건에 맞는 함수만 추가 하고 싶어 다음과 같이 작성하였습니다.</div> <div><br></div> <div>여기서 부터... 문제가 많습니다....</div> <div><br></div> <div>//===================================================</div> <div> <div>delegate void MyDelegate();</div> <div>MyDelegate _dele;</div> <div><br></div> <div>int[] input = new int[]{</div> <div> 2,3,2,1,1</div> <div>};</div> <div><br></div> <div>string[] calls = new string[]{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>"one", "Two", "Three"</div> <div>};</div> <div>void Start() // 유니티에서는 이것이 자동적으로 실행됩니다.</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += input [0];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += input [1];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += input [2];</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele(); </div> <div>}</div> <div><br></div> <div>void One()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 1 \n");</div> <div>}</div> <div><br></div> <div> <div>void Two()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 2 \n");</div> <div>}</div></div> <div><br></div> <div> <div>void Three()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print(" 3 \n");</div> <div>}</div></div> <div>// ====================================================</div></div> <div><br></div> <div>당연히 실행되지 않습니다..... </div> <div><br></div> <div><br></div> <div>이것이 되게 하고 싶습니다...</div> <div><br></div> <div><br></div> <div>결론적으로 질문 내용을 정리하면...</div> <div><br></div> <div><br></div> <div>1. 합성 위임시 위임할 함수의 이름을 배열로 저장하여 번호만 가지고 함수의 이름을 불러오는 방법...</div> <div><br></div> <div>2. 혹은 딕셔너리를 활용할 수 있는 방법.... </div> <div><br></div> <div>3. 혹은 string을 함수이름으로 활용할 수 있는 방법....</div> <div><br></div> <div>어떤 방법이라도 좋으니... 번호만 가지고 함수를 위임시킬 수 있는 방법을 알려주십시오.</div> <div><br></div> <div>지금 여기서 막혀서... 진행이 안됩니다....</div> <div><br></div> <div><br></div> <div>P.S</div> <div><br></div> <div> if(a == 1){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>_dele += One;<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>}else if(a == 2){</div> <div><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span><span style="font-size:9pt;line-height:1.5;">_dele += Two;</span><span class="Apple-tab-span" style="font-size:9pt;line-height:1.5;white-space:pre;"> </span></div> <div>}......</div> <div>.</div> <div>.</div> <div>.</div> <div>.</div> <div><br></div> <div><br></div> <div>이런 방법은.... 안됩니다. <span style="font-size:9pt;line-height:1.5;"> </span></div> <div><br></div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.