• <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)  編輯 收藏 引用

            久久久久久国产精品无码下载 | 精品乱码久久久久久久| 香蕉久久久久久狠狠色| 三级三级久久三级久久| 国产精品无码久久综合| 色综合合久久天天综合绕视看| 久久久久无码国产精品不卡| 狠狠色丁香久久婷婷综合图片| 国内精品久久久久影院优| 一级做a爰片久久毛片人呢| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品久久久久久五月尺| 国产精品久久久久影院嫩草| 久久综合九色综合网站| 品成人欧美大片久久国产欧美...| 波多野结衣久久| 国产亚洲成人久久| 91精品国产乱码久久久久久| 久久综合亚洲鲁鲁五月天| 久久久WWW成人免费毛片| 久久91亚洲人成电影网站| 亚洲国产成人精品无码久久久久久综合 | 久久午夜伦鲁片免费无码| 香蕉久久AⅤ一区二区三区| 久久综合狠狠综合久久激情 | 日本欧美久久久久免费播放网| 久久国产一片免费观看| 99久久免费只有精品国产| 国产成人久久精品一区二区三区| 伊人色综合久久天天网| 日韩影院久久| 久久久久人妻一区二区三区| 亚洲国产精品成人AV无码久久综合影院 | 欧美亚洲国产精品久久| 蜜臀久久99精品久久久久久| 久久精品国产亚洲7777| 日日狠狠久久偷偷色综合免费| 久久综合久久性久99毛片| 色综合久久88色综合天天 | 亚洲&#228;v永久无码精品天堂久久 | 国产高潮国产高潮久久久91|