๐งฎ C++๋ก ๋ค์ค ์ ๋ ฅ๊ณผ ๋ค์ค ์ถ๋ ฅ์ ๋ฐ๋ ํจ์๋ฅผ ์์ฑํ์
๋ธ๋ฃจํ๋ฆฐํธ์ ๋
ธ๋๋ฅผ ๋ณด๋ฉด ๋ค์ค์
๋ ฅ๊ณผ ๋ค์ค์ถ๋ ฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
์ด๊ฑธ C++๋ก ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๋ค์ค ๊ฐ์ ๋ฐํํ๊ธฐ ์ํด์ ๊ตฌ์กฐ์ฒด๋ฅผ ํ๋ ๋ง๋ค์ด์ ํด๋น ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐํํด๋ ๋ฉ๋๋ค.
๊ทผ๋ฐ ์ธ์ ๊ฐ ๋ฐํ์ ํ์ํ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ค ๋ง๋ค์ด์ ํ ๋นํ๊ณ ๋ฐํํ๋ ์ถ์ด ์ฐพ์ ๋ดค์ต๋๋ค.
๋ค์ค ์ ๋ ฅ์ ์ฌ์ค ๋๊ฐ์ต๋๋ค.
์ผ๋ฐ ํจ์ ์ ๋ ฅ๊ฐ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ง๋ค์ด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
UFUNCTION(BlueprintCallable, Category = "Unit Status")
void TestMultiInput(float MyFloat, FString MyString);
๊ทธ๋ฆฌ๊ณ Blueprint ์์์ ๊ฒ์ํด์ ๋
ธ๋๋ฅผ ์ถ๊ฐํด๋ณด๋ฉด?
์ค์ ํ MyFloat๊ณผ MyString์ ์ ๋ ฅ๋ฐ์ ์ ์์ต๋๋ค.
๋ค์ค ์ถ๋ ฅ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
์๋ฃํ ๋ค์ &์ ๋ถ์ด๋ฉด ๋์ ๋๋ค.
์ด๋ ๊ฒ์.
UFUNCTION(BlueprintCallable, Category = "Unit Status")
void TestMultiOutput(float& MyFloat, FString& MyString);
Blueprint ์์์ ๊ฒ์ํด์ ๋
ธ๋๋ฅผ ์ถ๊ฐํด๋ณด๋ฉด?
๋ค์ค๊ฐ์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
๊ฐ์ ๊ตฌํ๋ถ์์ ๋์ผํ๊ฒ ํ ๋นํด์ฃผ๋ฉด ํ ๋นํ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
void AUnitBase::TestMultiOutput(float& MyFloat, FString& MyString)
{
MyFloat = 5.0f;
MyString = "Test";
}
๋ฌผ๋ก ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จ, ๊ธฐ๋ณธ ๊ท์น๊ณผ ๋์ผํ๊ฒ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ด๋ฆ์ ๋ฌ๋ผ์ผ ํฉ๋๋ค.
2๊ฐ์ ์
๋ ฅ๊ณผ, 2๊ฐ์ ์ถ๋ ฅ์ ๋ฃ์์ต๋๋ค.
UFUNCTION(BlueprintCallable, Category = "Unit Status")
void TestMultiOutputValue(float MyFloat,FString MyString, float& MyFloatOut, FString& MyStringOut);
๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ๊ฐ์ ์ถ๋ ฅ๊ฐ์ ํ ๋นํด๋ณด๊ฒ ์ต๋๋ค.
void AUnitBase::TestMultiOutputValue(float MyFloat, FString MyString, float& MyFloatOut, FString& MyStringOut)
{
MyFloatOut = MyFloat;
MyStringOut = MyString;
}
Blueprint์์ ๋
ธ๋๋ฅผ ๊ฒ์ํ๋ฉด ์๋์ฒ๋ผ ๋์ค์ฃ .
์ง์ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ๋จํ๊ฒ ์์ฑํด์ 555์ Test๋ฅผ ๋ฃ์ด ๋ดค๊ตฌ์.
์คํํ๋ฉด ์ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ ์ด๋ ๊ฒ ๋์ํ๋๊ณ ๋ฌผ์ผ์๋ฉด ๊ทธ๋ฅ ์์ง์ด ๊ทธ๋ ๊ฒ ๋์ํ๋ค๊ณ ํฉ๋๋ค.
ํฌ๋ผ์์ ์นด๋๋ผ...
Blueprint์ ๋์์ ์์ ํ ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์ง ์๊ณ ํธํ๊ฒ ์์ ํ ์ ์์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.