정체불명의 모모
프로젝트 작업하면서(RTS) / 유니티 Action Delegate 본문
안녕하세요~.
너무 오랜만에 글을 올려 봅니다.
현재 국비로 게임 프로그래밍을 수업듣고 있습니다.
너무 바쁜 하루하루를 보내느라 글을 쓸 여유 조차 없었습니다.
하지만 최근에 유니티 개인 프로젝트에 들어가면서 , 정보들을 정리 하는게 훨씬 나중에 도움이 될 것 같아
다시 시작 해보려 합니다.
작업중인 프로젝트는 RTS 게임 입니다. (3D)
====================================================================
유니티(C#) - Action , Fuc , Delegate
참고 사이트 : https://www.youtube.com/watch?v=7H3MHXfFkhI
(유튜버 : 케이디)
publc class Test : MonoBebavior
{
// 형식 매개 변수 < T1 , T2 >
delegate void MyDelegate<T1 ,T2>(T1 a, T2 b);
MyDelegate<int , int> myDelegate;
// 델리게이트를 선언 하기 위해선 두줄이 필요 했습니다.
// 이럴때 필요한게 Action, Function 입니다.
# Atction 과 Function의 차이
= 바로, 반환 타입이 입니다. (Atction을 쓰기 위해 , using System을 입력해 줘야 합니다.)
1. 반환 타입이 있을 경우 -> Function / 2. 반환 타입이 없을 경우 -> Action
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
publc class Test : MonoBebavior
{
// 형식 매개 변수 < T1 , T2 >
delegate void MyDelegate<T1 ,T2>(T1 a, T2 b);
MyDelegate<int , int> myDelegate;
// 델리게이트를 선언 하기 위해선 두줄이 필요 했습니다.
// 이럴때 필요한게 Action, Function 입니다.
// 위의 Delegate와 똑같이 만들어 주겠습니다.
Action<int , int> myDelegate2;
Action<int, int> myDelegate2 가 한줄이어도 되는 이유는 Action 안에 delegate가 있기 때문입니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
publc class Test : MonoBebavior
{
// 이번에는 반환 값이 있는 delegate를 만들어 주겠습니다.
delegate string MyDelegate<T1, T2> (T1 a, T2 b);
MyDelegate<int , int> myDelegate;
Action<int , int> myDelegate2;
// < int(T1) , int(T2) , string(TResult) > 반환 값이 있는 delegate
Func<int,int,string> myDelegaete3;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
publc class Test : MonoBebavior
{
// 이번에는 반환 값이 있는 delegate를 만들어 주겠습니다.
delegate string MyDelegate<T1, T2> (T1 a, T2 b);
MyDelegate<int , int> myDelegate;
Action<int , int> myDelegate2;
// < int(T1) , int(T2) , string(TResult) > 반환 값이 있는 delegate
Func<int,int,string> myDelegaete3;
void Start()
{
// 람다식
myDelegate3 = (int a , int b ) => {int sum = a + b ; return sum +"이 리턴되었습니다.";};
MyDelegate(3,5);
}
간략하게 요약 하자면,
Action , Function 은 delegate를 쉽게 사용 할 수 있게 해주는 녀석들입니다.
다만 차이점은 반환값이 있느냐 없느냐 인데,
상황에 따라 유용하게 잘 사용 하면 될 것 같습니다.
이거에 관련 하여 제 프로젝트에도 올라가니 프로젝트 작업 일기를 봐주시면 될 것 같습니다.
감사합니다.
'프로그래밍(C#)' 카테고리의 다른 글
C# 6.9 ~6.10 매개변수(교재 참고 & 인터넷 이미지) (3) | 2019.05.21 |
---|---|
C#6.3~6.5 매개변수(교재) (2) | 2019.05.16 |
C# 6.1~6.2 메소드/ return(교재&지식인참고) (3) | 2019.05.15 |
C# 5.3 - 점프문(교재) (3) | 2019.05.14 |
C# 5.2 - 반복문(교재&인터넷 자료 참고) (4) | 2019.05.13 |
Comments