質問編集履歴
1
クラスのオブジェクトを追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
+
C++で関数を他のファイルから実行すること。
|
3
|
-
ue4でプログレスバーを他のファイルから実行できるよう
|
4
|
+
ue4でプログレスバーを他のファイルから実行できるようすること。
|
5
|
+
|
4
6
|
以下のファイルでは、
|
5
7
|
1.GamePlay.hでAdd1(float Aという関数を宣言。
|
6
8
|
2.GamePlay.cppでAdd1(float A)という関数を定義。
|
@@ -90,6 +92,7 @@
|
|
90
92
|
|
91
93
|
public:
|
92
94
|
virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
|
95
|
+
UGamePlay Kansuu; //追加
|
93
96
|
};
|
94
97
|
```
|
95
98
|
|
@@ -103,6 +106,7 @@
|
|
103
106
|
Super::NativeConstruct();
|
104
107
|
|
105
108
|
Add1(0.5f); //エラー
|
109
|
+
Kansuu.Add1(0.5f); //追加
|
106
110
|
}
|
107
111
|
```
|
108
112
|
|
@@ -117,6 +121,29 @@
|
|
117
121
|
2つ目のエラーは調べてもよくわからす、、、
|
118
122
|
Add1(0.5f)を消せばコンパイルは正常終了する。
|
119
123
|
|
124
|
+
###追記
|
125
|
+
頂いた意見やURLを元にクラスオブジェクト?なるものを追加しました。
|
126
|
+
|
127
|
+
```C++
|
128
|
+
//Test.h
|
129
|
+
UGamePlay Kansuu; //オブジェクトを生成(一番下の行に追加)
|
130
|
+
```
|
131
|
+
```c++
|
132
|
+
//Test.cpp
|
133
|
+
Add1(0.5f); //削除
|
134
|
+
Kansuu.Add1(0.5f); //関数の実行(同じところに追加)
|
135
|
+
```
|
136
|
+
|
137
|
+
###結果
|
138
|
+
ビルドは成功し、エラーも出ませんでしたが、ビルドが終了した瞬間 Unreal Engine がクラッシュし、プロジェクトは起動しなくなりました。
|
139
|
+
以降別のプロジェクトで試した結果、他ファイル(今回はTest.h)でオブジェクトを生成するとクラッシュすることが分かりました。
|
140
|
+
頂いたURLの情報では同じファイル内でやっていたことを2つのファイルで行ったのが悪かったのでしょうか。
|
141
|
+
ファイルから別のファイルにある関数を実行できるコードの例などを頂けると幸いです。
|
142
|
+
|
143
|
+
|
144
|
+
######クラッシュレポートの内容
|
145
|
+
致命的なエラー:[ファイル:D:/ build / ++ UE5 / Sync / Engine / Source / Runtime / CoreUObject / Private / UObject / UObjectGlobals.cpp] [行:2612] UObject(const FObjectInitializer&)コンストラクターが呼び出されましたが、オブジェクトではありません これは現在、NewObjectで構築されています。 たぶんあなたはそれをスタック上に構築しようとしていますが、それはサポートされていません。
|
146
|
+
|
120
147
|
### 補足情報
|
121
148
|
|
122
149
|
Microsoft Visual Studio C++ 2019
|