• <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的設計習慣

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

            禁止客戶端發(fā)送Camera更新消息

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

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

            取執(zhí)行程序的目錄

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

            --->ProjectName/Binaries/Win64/luaclib


            動態(tài)組件的進化

            一般在構造函數(shù)里用CreateDefaultSubobject創(chuàng)建組件Creating and Attaching Components
            在其他地方創(chuàng)建組件,必須用ConstructObject
            后來這個方法被depreciate了,現(xiàn)在用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,然后你點擊到其上某點,則創(chuàng)建一個新的控制點。如果選中point后執(zhí)行,則試了就知道。
          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)

            如果參數(shù)是引用,則默認情況下是一個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里有沒有實現(xiàn)

            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 的筆記 閱讀(3342) 評論(0)  編輯 收藏 引用

            青草国产精品久久久久久| 久久久精品国产Sm最大网站| 久久亚洲日韩看片无码| 国产精品免费久久久久久久久| 99久久精品国产毛片| 亚洲日本久久久午夜精品| 亚洲国产精品一区二区久久hs | 久久久久亚洲AV成人网人人网站 | 久久精品国产AV一区二区三区| 亚洲精品国产字幕久久不卡| 久久噜噜电影你懂的| 精品国产99久久久久久麻豆| 久久精品人人槡人妻人人玩AV| 国产日韩久久久精品影院首页| 亚洲性久久久影院| 亚洲一区二区三区日本久久九| 久久精品视频一| A级毛片无码久久精品免费| 人妻精品久久无码区| 中文字幕无码久久精品青草 | 亚洲乱码中文字幕久久孕妇黑人| 久久精品免费一区二区三区| 久久国产色av免费看| 久久996热精品xxxx| 久久99精品久久久久久| 亚洲国产欧美国产综合久久| 久久久人妻精品无码一区| 色偷偷888欧美精品久久久| 久久综合88熟人妻| 日产精品久久久久久久| 久久这里都是精品| 亚洲精品视频久久久| 欧美午夜A∨大片久久 | 久久亚洲AV成人无码软件| 久久精品国产亚洲Aⅴ香蕉| 93精91精品国产综合久久香蕉| 久久精品国产亚洲av麻豆小说 | 人妻无码久久精品| 精品久久人人做人人爽综合| 国产精品嫩草影院久久| 久久99精品国产麻豆婷婷|