[UETR]Khubur' Alıntı:Kendi yarattığınız statik kütüphaneyi Unreal Motor ile inşa etmek istiyorsanız Unreal Build sistemine(Build.cs dosyası) gerekli bildirimleri ayarlamanız ve Visual Studio ile kütüphanenizi bağdaştırıcıya belirtmeniz gereklidir .
Burada nasıl yapıldığına dair kolay bir anlatım var:
https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System
Not: Gönderdiğiniz ilk resim kendi bilgisayarınızın bir dizinini belirtiyor(file:///C:/Users/oguzk/Desktop/1.PNG). Bunun yerine imaj yükleme sitelerine yükleyin.
UCLASS()
class UBenimSinifim : public UObject
{
GENERATED_UCLASS_BODY()
// yapilacak seyler
};
okka33' Alıntı:[UETR]Khubur' Alıntı:Kendi yarattığınız statik kütüphaneyi Unreal Motor ile inşa etmek istiyorsanız Unreal Build sistemine(Build.cs dosyası) gerekli bildirimleri ayarlamanız ve Visual Studio ile kütüphanenizi bağdaştırıcıya belirtmeniz gereklidir .
Burada nasıl yapıldığına dair kolay bir anlatım var:
https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System
Not: Gönderdiğiniz ilk resim kendi bilgisayarınızın bir dizinini belirtiyor(file:///C:/Users/oguzk/Desktop/1.PNG). Bunun yerine imaj yükleme sitelerine yükleyin.
Buradaki statik kütüphaneyi ben yaratmadım. Eklemediğim zaman hata vermiyor ama eklediğim zaman böyle oluyor.
Not: Bu hatayı aktöre eklediğim bütün statik kütüphanelerde alıyorum. Ama aktörü ilk oluşturduğumda ekli olarak gelen kütüphanelerde bu hatayı almıyorum.
[UETR]cahitburak' Alıntı:okka33' Alıntı:Buradaki statik kütüphaneyi ben yaratmadım. Eklemediğim zaman hata vermiyor ama eklediğim zaman böyle oluyor.
Not: Bu hatayı aktöre eklediğim bütün statik kütüphanelerde alıyorum. Ama aktörü ilk oluşturduğumda ekli olarak gelen kütüphanelerde bu hatayı almıyorum.
https://wiki.unrealengine.com/UE4.10_How_To_Make_HTTP_GET_Request_in_C++
Sanıyorum burada anlatılan konuyu uygulamaya çalışıyorsunuz. Kendi kütüphaneniz olmasa da HTTP modülünü eklemeniz gerekiyor. Konuda geçen Adding dependencies for HTTP and JSON başlığında Build.cs'ye eklediğe modüle dikkat edin.
@Khubur Not: Statik kütüphanelerin modül olarak eklenmesi gerekmez. Bu sadece modül sistemi kullanan kütüphaneler içindir. Hatta UE4 içinde kendi oluşturduğunuz kütüphaneler için de UObject ve GENERATED_BODY makrolarını bile geçtim UCLASS bile kullanmak zorunda değilsiniz. UE4 Native her C++ kodunu tanır. Buradaki kısıtlamalar şunlardır.
1. Hedef platform: Platform bağımsızlığı istiyorsanız, platform bağımlı kodu platform bağımsız koda dönüştürmeniz gerek. Basit anlamda bir kod yazıyorsanız sorun yok ama örneğin multithreading gibi bir konuya giriyorsanız. Ya "preprocessor" ifadelerle her platform için ayrı "thread" kütüphanelerini kullanmanız gerek yada burada UE4'ün Generic Platform kütüphanelerinden ve FPlatformProcess gibi sınıflarında yararlanmanız gerekir.
2. Eğer Blueprintler gibi Engine ile DesignTime 'da iletişime geçmek istiyorsanız bu durumda UClass, UStruct, UObject gibi ifadeler olmakla birlikte zaten minimum UActorComponent ve AActor sınıflarını doğrudan kullanmanız gerekiyor. Bunun tek istisnası USTRUCT ve UENUM gibi yapıalrdır.
okka33' Alıntı:[UETR]cahitburak' Alıntı:https://wiki.unrealengine.com/UE4.10_How_To_Make_HTTP_GET_Request_in_C++
Sanıyorum burada anlatılan konuyu uygulamaya çalışıyorsunuz. Kendi kütüphaneniz olmasa da HTTP modülünü eklemeniz gerekiyor. Konuda geçen Adding dependencies for HTTP and JSON başlığında Build.cs'ye eklediğe modüle dikkat edin.
@Khubur Not: Statik kütüphanelerin modül olarak eklenmesi gerekmez. Bu sadece modül sistemi kullanan kütüphaneler içindir. Hatta UE4 içinde kendi oluşturduğunuz kütüphaneler için de UObject ve GENERATED_BODY makrolarını bile geçtim UCLASS bile kullanmak zorunda değilsiniz. UE4 Native her C++ kodunu tanır. Buradaki kısıtlamalar şunlardır.
1. Hedef platform: Platform bağımsızlığı istiyorsanız, platform bağımlı kodu platform bağımsız koda dönüştürmeniz gerek. Basit anlamda bir kod yazıyorsanız sorun yok ama örneğin multithreading gibi bir konuya giriyorsanız. Ya "preprocessor" ifadelerle her platform için ayrı "thread" kütüphanelerini kullanmanız gerek yada burada UE4'ün Generic Platform kütüphanelerinden ve FPlatformProcess gibi sınıflarında yararlanmanız gerekir.
2. Eğer Blueprintler gibi Engine ile DesignTime 'da iletişime geçmek istiyorsanız bu durumda UClass, UStruct, UObject gibi ifadeler olmakla birlikte zaten minimum UActorComponent ve AActor sınıflarını doğrudan kullanmanız gerekiyor. Bunun tek istisnası USTRUCT ve UENUM gibi yapıalrdır.
O sorunu çözdüm yardımınız için teşekkür ederim ama bu sefer de aşağıdaki hataları aldım.
[UETR]cahitburak' Alıntı:okka33' Alıntı:O sorunu çözdüm yardımınız için teşekkür ederim ama bu sefer de aşağıdaki hataları aldım.
Makaleyi daha dikkatli inceleyin. Eklemeniz gereken başka modüller de var:
"Json", "JsonUtilities"
okka33' Alıntı:[UETR]cahitburak' Alıntı:Makaleyi daha dikkatli inceleyin. Eklemeniz gereken başka modüller de var:
"Json", "JsonUtilities"
Onları eklemiştim zaten
[UETR]cahitburak' Alıntı:okka33' Alıntı:Onları eklemiştim zaten
O halde belki IntelliSense yavaş olduğu için bu hataları görüyorsunuz. Projeyi derlemeyi deneyin, yine hata alırsanız Output penceresindeki çıktı mesajlarını gösterin.
[UETR]Khubur' Alıntı:@okka33
273. satırda dediği gibi generated.h dosyasının altına #include ön-işlemci direktifini kullanmışsınız. Unreal motorunun derlemesi için ön işlemci direktifleri için generated.h dahil etme dosyası sıralama olarak en sonda olması lazım. Eğer İngilizce bilmiyorsanız ve basitçe bir log okuyamıyorsanız bu işe girişmemeniz en doğru seçim. Tübitak gibi bir şeyler gördüm, ne yapmaya çalıştığınızdan bir fikrim yok fakat bilimsel bir gerçekçilik peşindeyseniz, bu işi bilmeden yapmanız bir bilimsel esas değildir.
@cahitburak
burada herhangi bir şekilde başka kütüphaneyi normal bir şekilde dahil etme("include") edebileceğini varsaydım. Kendi UObject sınıfını yaratarak diğer UE sınıfları ile doğru bir şekilde etkileşime geçebilir. fakat Unreal sistemine HTTP modülü gibi bir şey üretiyor sandım fakat amacı PHP ve jSon ile basitçe motorun içinden bir istek yollamak ve jSon ile HTTP isteği alıp motora uygulamak.
okka33' Alıntı:[UETR]Khubur' Alıntı:@okka33
273. satırda dediği gibi generated.h dosyasının altına #include ön-işlemci direktifini kullanmışsınız. Unreal motorunun derlemesi için ön işlemci direktifleri için generated.h dahil etme dosyası sıralama olarak en sonda olması lazım. Eğer İngilizce bilmiyorsanız ve basitçe bir log okuyamıyorsanız bu işe girişmemeniz en doğru seçim. Tübitak gibi bir şeyler gördüm, ne yapmaya çalıştığınızdan bir fikrim yok fakat bilimsel bir gerçekçilik peşindeyseniz, bu işi bilmeden yapmanız bir bilimsel esas değildir.
@cahitburak
burada herhangi bir şekilde başka kütüphaneyi normal bir şekilde dahil etme("include") edebileceğini varsaydım. Kendi UObject sınıfını yaratarak diğer UE sınıfları ile doğru bir şekilde etkileşime geçebilir. fakat Unreal sistemine HTTP modülü gibi bir şey üretiyor sandım fakat amacı PHP ve jSon ile basitçe motorun içinden bir istek yollamak ve jSon ile HTTP isteği alıp motora uygulamak.
Peki unreal engine de herhangi bir web sitesinin kaynak kodunu bir variable ye nasıl kaydedebilirim
[UETR]cahitburak' Alıntı:Web sitenin kaynak kodu diyerek neyi kastediyorsunuz? Kaynak kodu göremezsiniz, HTML, Javascript, CSS gibi Client tarafını görebilirsiniz. Yada basit bir webservis yazmak istiyorsanız da Khubur'un söylediklerini takip edin.
okka33' Alıntı:[UETR]cahitburak' Alıntı:Web sitenin kaynak kodu diyerek neyi kastediyorsunuz? Kaynak kodu göremezsiniz, HTML, Javascript, CSS gibi Client tarafını görebilirsiniz. Yada basit bir webservis yazmak istiyorsanız da Khubur'un söylediklerini takip edin.
Google Chrome' deki f12 element bölümünü kastediyorum
/*Http call*/
void AHttpActor::MyHttpCall()
{
TSharedRef<IHttpRequest> Request = Http->CreateRequest();
Request->OnProcessRequestComplete().BindUObject(this, &AHttpActor::OnResponseReceived);
//This is the url on which to process the request
Request->SetURL("http://localhost:8081/WebApi/getint.php");
Request->SetVerb("GET");
Request->SetHeader(TEXT("User-Agent"), "X-UnrealEngine-Agent");
// Request->SetHeader("Content-Type", TEXT("application/json")); bunun yerine
Request->SetHeader("Content-Type", TEXT("text/html"));
Request->ProcessRequest();
}
AHttpActor::OnResponseRecieved(...)
{
const FString htmlResult = Response->GetContentAsString();
}
[UETR]Khubur' Alıntı:Etkileşime veriyi doğru bir şekilde tutmak istiyorsanız bir veritabanına ihtiyacınız var. Eğer veriniz bir JSON objesi şeklinde değil normal saf katar("string") şeklinde gelirse efektiflik açısından işe yaramayacaktır. Tübitak ile bir şeyler yapıyorsanız gerçi pXe ile ağ üzerinden boot edilebilen 80lerin yazılımlarını tübitağa "kendi bilim projem" diye kakalayan birisi varsa emin olun siz onları daha fazla şeylere inandırabilirsiniz. O yüzden yalın("plain") bir html döndürmek yerine, php'nin POST methodu veya javascript AJAX isteği ile gelen formdan ya da başka bir yerdeki veriyi doğru bir şekilde veritabanına aktarıp jSon objeleri ile motora gönderip çalışabilirsiniz. Bu şekilde jSonObjesini aktarak motor FJsonObject içerisindeki bellirli üye fonskiyonlara erişip çok kolay bir şekilde bir dizi işlemleri gerçekleştirebilirsiniz.
okka33' Alıntı:Koddaki url yi URL variablesinden okutmaya çalıştığımda neden çalışmıyor.
Kod://Request->SetURL(localhost:8081/getInt); bölümünü aşağıdaki gibi yaptım Request->SetURL(URL);
Unreal Engine Türkiye topluluğunun çalışmasını sağlamak için isteğe bağlı olarak çerezleri kullanmaktayız.