Unreal Engineの関数は、EventGraph上にノードをつなげていくと、どうしても可読性が低くなるため、関数をつくることで、処理をまとめることができます。関数のほかにも、イベント、マクロ、インターフェースがあり、その違いについても見てみましょう。
- 関数(メソッド)
- 引数のある関数
- 返り値(戻り値)のある関数
- 関数内にあるデータを返した場合
- [UEのみ]純粋関数
- [UEのみ]関数、イベント、マクロ、インターフェースとの違い
void Start(){
}
void Update(){
}
void aaa(){
Debug.Log("aaaが呼ばれた");
}
void Start(){
aaa();
}
void Update(){
}
void aaa(){
Debug.Log("aaaが呼ばれた");
}
void Start(){
Debug.Log("Start1");
aaa();
Debug.Log("Start2");
}
void Update(){
}
void aaa(){
Debug.Log("aaaが呼ばれた");
}
void Start(){
aaa();
aaa();
aaa();
}
void Update(){
}
void aaa(){
Debug.Log("aaaが呼ばれた");
}
void Start(){
int b = 0;
aaa();
aaa();
aaa();
Debug.Log(b);
}
void Update(){
}
void aaa(){
int b = 0;
++b;
Debug.Log("aaaが呼ばれた");
}
void Start(){
//定義した変数と同じ型のデータを入れます
aaa(1);
}
void Update(){
}
//変数を定義します
//aaa(1)からデータが渡されます
void aaa(int b){ //引数
Debug.Log(b);
}
void Start(){
//型があっていればいろんなデータが送れます。
aaa(1);
aaa(2);
aaa(3);
}
void Update(){
}
void aaa(int b){
Debug.Log(b);
}
void Start(){
int b = 0;
aaa(b);
aaa(b);
aaa(b);
Debug.Log(b);
}
void Update(){
}
void aaa(int b){
++b;
}
スコープが狭い方が優先されます。 int b = 0;
void Start(){
aaa(b);
aaa(b);
aaa(b);
Debug.Log(b);
}
void Update(){
}
void aaa(int b){
++b;
}
void Start(){
//,で区切って引数と同じようにデータをいれる
//複数データを渡せる
aaa(1,2,3);
}
void Update(){
}
void aaa(int a, int b, int c){
Debug.Log(a + b + c);
}
void Start(){
//返ってきたデータを代入
int b = aaa(1,2,3);
Debug.Log(b);
}
void Update(){
}
//返すデータの型
int aaa(int a, int b, int c){
//returnは定義した型と同じ型のデータを返す
return a + b + c;
}
int aaa(int a, int b, int c){
return a + b + c;
Debug.Log("aaa");
}
void Start(){
int b = 0;
aaa(b);
aaa(b);
aaa(b);
Debug.Log(b);
}
void Update(){
}
void aaa(int b){
return ++b;
}
メソッドから値を受けるには変数bに代入します。 void Start(){
int b = 0;
b = aaa(b);
b = aaa(b);
b = aaa(b);
Debug.Log(b);
}
void Update(){
}
void aaa(int b){
return ++b;
}
特徴 | イベント | 関数 | マクロ | インターフェース |
入力ピン | 1個 | 0~1個 | 0個以上 | 1個 |
出力ピン | 1個 | 0~1個 | 0個以上 | 1個 |
引数 | 0個以上 | 0個以上 | 0個以上 | 0個以上 |
ローカル変数 | あり | なし | あり | あり |
戻り値 | なし | 0個以上 | 0個以上 | 0個以上 |
アクセス指定子 | public | public protected private | private | public |
オーバーライド | 可 | 可 | 不可 | 可 |
ノードネットワークの合流等ノード制限 | なし | あり | なし | 実装方式による |
引数のワイルドカード指定 | 不可 | 不可 | 可能 | 不可 |