• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            的筆記

            隨時隨地編輯

            UE4小筆記

            一句簡單的話就夠了,多一個字也多了。


            名字版Widget的設計習慣

            用全窗口尺寸設計,設計的時候設置大小,嵌入的時候設置成同樣的大小

            禁止客戶端發送Camera更新消息

            如果不是Full 3D的客戶端,不需要每幀都發送Camera的位姿數據,就算Full 3D,也是過于頻繁了,畢竟還有Actor的位姿數據每幀都會發送

            void AUserPlayerController::PostInitializeComponents(){
              Super::PostInitializeComponents();
              ensure(PlayerCameraManager);
              if(PlayerCameraManager){PlayerCameraManager->bUseClientSideCameraUpdates = false;}
            }
            

            取執行程序的目錄

            FPaths::Combine(*FPaths::GameDir(), TEXT("Binaries"), FPlatformProcess::GetBinariesSubdirectory(), TEXT("luaclib"));

            --->ProjectName/Binaries/Win64/luaclib


            動態組件的進化

            一般在構造函數里用CreateDefaultSubobject創建組件Creating and Attaching Components
            在其他地方創建組件,必須用ConstructObject
            后來這個方法被depreciate了,現在用NewObject

            UObject配置文件

          1. GetGlobalUserConfigFilename:C:/Users//AppData/Local/Unreal Engine/Engine/Config/UserMySettings.ini
          2. USensorSettings GetDefaultConfigFilename:../../../../ /Config/DefaultMySettings.ini
          3. USensorSettings GetConfigFilename: /Saved/Config/Windows/MySettings.ini


          4. error:Package contains EditorOnly data

            如果在Game中使用了引擎資源,加載場景就會報這種錯誤。解決:
            查找和修改代碼或BP中有使用“Engine/EditorMeshes”路徑下的資源。

            調整近裁剪面距離

            \Config\DefaultEngine.ini
            [/Script/Engine.Engine]
            NearClipPlane=1
            
            

            LightmassImportanceVolume

            LightingResults:Warning: Performance Warning No importance volume found and the scene is so large that the automatically synthesized volume will not yield good results. Please add a tightly bounding lightmass importance volume to optimize your scene's quality and lighting build times.

            自動插入Engine StarterContent

            [StartupActions]
            bAddPacks=True
            InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
            

            NewObject

            NewObject(UObject*Outer, UClass* Class)
          5. 在對象里GetOuter可以取回NewObject時傳入的指針

          6. How many ways to get World

            <占位描述>
          7. UWorldProxy WorldProxy = GWorld;
          8. UWorld* world = GEngine->GetWorld();

          9. USTRUCT() vs USTRUCT(BlueprintType)

            USTRUCT()
            struct FQuestInProgress
            
            ???

            Enable GameplayAbilities

            Enable in plugin or modify uproject
            "Plugins": [
            {
            "Name": "GameplayAbilities",
            "Enabled": true
            }
            ]
            GameAbility\Config\DefaultEngine.ini
            [GameplayAbilities]
            GameplayAbilitiesEditorEnabled=true
            

            Landscape Splines快捷鍵

            ref: Landscape Splines
          10. 鼠標左鍵
          11. 選中一個point或一個segment
          12. Shift+鼠標左鍵
          13. 多選
          14. Ctrl+鼠標左鍵
          15. 產生多個效果。如果當前選中的是一個segment,然后你點擊到其上某點,則創建一個新的控制點。如果選中point后執行,則試了就知道。
          16. R
          17. 自動計算控制點的Rotation
          18. T
          19. 自動計算Tangent
          20. F
          21. Flip Segment
          22. End
          23. Snaps control points to Landscape

            VCToolChain

            UnrealBuildTool.VCToolChain.AppendCLArguments_Global()

            UPARAM(ref)

            如果參數是引用,則默認情況下是一個out pin。UPARAM(ref)正好逆反這個行為。
            UPARAM wiki

            UPARAM(DisplayName)

            修改pin label 的顯示名字
            UPARAM wiki

            版本判斷

            // check unreal engine
            #ifdef _MSC_VER
                #include "../../../Launch/Resources/Version.h"

                #if ENGINE_IS_PROMOTED_BUILD
                    #define _VALUE_TO_STRING(x) #x
                    #define _VALUE(x) _VALUE_TO_STRING(x)
                    #define _VAR_NAME_VALUE(var) #var "="  VALUE(var)

                    #pragma message("------ Using offical Unreal engine " _VALUE(BUILT_FROM_CHANGELIST) )
                #else
                    #pragma message("------ Using custom build Unreal engine")
                #endif
            #endif //~ _MSC_VER

            相機繞軸旋轉


            Performance

            Performance and Profiling
            How to Setup Automatic LOD Generation
            Performance Guidelines for Artists and Designers

            遍歷目錄下的文件

            TArray<FString> Files;
            FPackageName::FindPackagesInDirectory(Files, FString::Printf(TEXT("%s/Content/Maps"), *FPaths::GameDir()));

            Module Implemention


            Detail Customization

          24. <占位項1>
          25. <占位項2>

          26. Enum

            Engine\Source\Runtime\Engine\Classes\Engine\EngineTypes.h
            UENUM(BlueprintType)
            namespace EEndPlayReason
            {
            enum Type
            {
            /** When the Actor or Component is explicitly destroyed. */
            Destroyed,
            /** When the world is being unloaded for a level transition. */
            LevelTransition,
            /** When the world is being unloaded because PIE is ending. */
            EndPlayInEditor,
            /** When the level it is a member of is streamed out. */
            RemovedFromWorld,
            /** When the application is being exited. */
            Quit,
            };
            }
            

            禁用precompiled heade

            在ModuleRules的構造里加入:PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

            查看引擎剔除的對象

            r.visualizeocculsion 1

            IWYU(Include-What-You-Use)

            IWYU 參考指南
          27. IWYU 在游戲和游戲插件中默認禁用,但在引擎和引擎插件中默認啟用。
          28. <占位項2>

          29. 判斷一個方法在BP里有沒有實現

            UGameplayAbility()
            {
            auto ImplementedInBlueprint = [](const UFunction* Func) -> bool
            {
            return Func && ensure(Func->GetOuter())
            && (Func->GetOuter()->IsA(UBlueprintGeneratedClass::StaticClass())
            || Func->GetOuter()->IsA(UDynamicClass::StaticClass()));
            };
            {
            static FName FuncName = FName(TEXT("K2_ShouldAbilityRespondToEvent"));
            UFunction* ShouldRespondFunction = GetClass()->FindFunctionByName(FuncName);
            bHasBlueprintShouldAbilityRespondToEvent = ImplementedInBlueprint(ShouldRespondFunction);
            }
            }
            


            Android signing

            Signing Projects for Release
          30. <占位項1>
          31. <占位項2>


          32. 屏幕打印

            C++
          33. UKismetSystemLibrary::PrintString
          34. BP:
          35. Print String


          36. C++中判斷某BP方法是否存在

            參考:GameplayAbilities\Private\Abilities\GameplayAbility.cpp

            auto ImplementedInBlueprint = [](const UFunction* Func) -> bool
            {
                
            return Func && ensure(Func->GetOuter())
                    
            && (Func->GetOuter()->IsA(UBlueprintGeneratedClass::StaticClass()) || Func->GetOuter()->IsA(UDynamicClass::StaticClass()));
            };

            {
                
            static FName FuncName = FName(TEXT("K2_ShouldAbilityRespondToEvent"));
                UFunction
            * ShouldRespondFunction = GetClass()->FindFunctionByName(FuncName);
                bHasBlueprintShouldAbilityRespondToEvent 
            = ImplementedInBlueprint(ShouldRespondFunction);
            }

             



            BP轉C++

          37. Converting From Blueprints to C++


          38. 指定Visual Studio版本

            "%UE4_DIR%\Engine\Binaries\DotNET\UnrealBuildTool.exe" -projectfiles -project="%~dp0\TestTopDown.uproject" -2015

            占位標題

          39. <占位項1>
          40. <占位項2>


          41. 占位標題

          42. <占位項1>
          43. <占位項2>


          44. 占位標題

          45. <占位項1>
          46. <占位項2>


          47. posted on 2017-01-14 18:14 的筆記 閱讀(3323) 評論(0)  編輯 收藏 引用

            四虎亚洲国产成人久久精品| 精品蜜臀久久久久99网站| 亚洲精品高清国产一久久| 久久久久国产| 久久精品人妻中文系列| 狠狠干狠狠久久| 国产精品中文久久久久久久| 久久99国产乱子伦精品免费| 精品视频久久久久| 国产精品一区二区久久不卡| 国产精自产拍久久久久久蜜| 久久人妻少妇嫩草AV蜜桃| 精品久久久久久久久久中文字幕 | 无码日韩人妻精品久久蜜桃| 久久精品国产亚洲AV电影| 久久久久久久久久久免费精品 | 亚洲成色WWW久久网站| 99国内精品久久久久久久| 亚洲国产精品无码久久久不卡| 久久99热这里只频精品6| 色8激情欧美成人久久综合电| 亚洲国产精品成人久久| 青春久久| 久久久久国产一区二区三区| 国内精品久久久人妻中文字幕 | 性做久久久久久免费观看| 国产一级持黄大片99久久| 亚洲午夜久久久久久久久久| 久久这里的只有是精品23| 久久久久99精品成人片| 很黄很污的网站久久mimi色 | 色综合久久综合网观看| 国产69精品久久久久观看软件| 精品精品国产自在久久高清| 久久久久18| 久久婷婷成人综合色综合| 狠狠干狠狠久久| 漂亮人妻被中出中文字幕久久| 久久久中文字幕| 久久久久国产精品| 久久婷婷五月综合色高清 |