• <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>

            的筆記

            隨時(shí)隨地編輯

            UE4小筆記

            一句簡(jiǎn)單的話就夠了,多一個(gè)字也多了。


            名字版Widget的設(shè)計(jì)習(xí)慣

            用全窗口尺寸設(shè)計(jì),設(shè)計(jì)的時(shí)候設(shè)置大小,嵌入的時(shí)候設(shè)置成同樣的大小

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

            如果不是Full 3D的客戶端,不需要每幀都發(fā)送Camera的位姿數(shù)據(jù),就算Full 3D,也是過(guò)于頻繁了,畢竟還有Actor的位姿數(shù)據(jù)每幀都會(huì)發(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


            動(dòng)態(tài)組件的進(jìn)化

            一般在構(gòu)造函數(shù)里用CreateDefaultSubobject創(chuàng)建組件Creating and Attaching Components
            在其他地方創(chuàng)建組件,必須用ConstructObject
            后來(lái)這個(gè)方法被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中使用了引擎資源,加載場(chǎng)景就會(huì)報(bào)這種錯(cuò)誤。解決:
            查找和修改代碼或BP中有使用“Engine/EditorMeshes”路徑下的資源。

            調(diào)整近裁剪面距離

            \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.

            自動(dòng)插入Engine StarterContent

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

            NewObject

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

          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. 鼠標(biāo)左鍵
          11. 選中一個(gè)point或一個(gè)segment
          12. Shift+鼠標(biāo)左鍵
          13. 多選
          14. Ctrl+鼠標(biāo)左鍵
          15. 產(chǎn)生多個(gè)效果。如果當(dāng)前選中的是一個(gè)segment,然后你點(diǎn)擊到其上某點(diǎn),則創(chuàng)建一個(gè)新的控制點(diǎn)。如果選中point后執(zhí)行,則試了就知道。
          16. R
          17. 自動(dòng)計(jì)算控制點(diǎn)的Rotation
          18. T
          19. 自動(dòng)計(jì)算Tangent
          20. F
          21. Flip Segment
          22. End
          23. Snaps control points to Landscape

            VCToolChain

            UnrealBuildTool.VCToolChain.AppendCLArguments_Global()

            UPARAM(ref)

            如果參數(shù)是引用,則默認(rèn)情況下是一個(gè)out pin。UPARAM(ref)正好逆反這個(gè)行為。
            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

            相機(jī)繞軸旋轉(zhuǎn)


            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. <占位項(xiàng)1>
          25. <占位項(xiàng)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的構(gòu)造里加入:PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

            查看引擎剔除的對(duì)象

            r.visualizeocculsion 1

            IWYU(Include-What-You-Use)

            IWYU 參考指南
          27. IWYU 在游戲和游戲插件中默認(rèn)禁用,但在引擎和引擎插件中默認(rèn)啟用。
          28. <占位項(xiàng)2>

          29. 判斷一個(gè)方法在BP里有沒(méi)有實(shí)現(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. <占位項(xiàng)1>
          31. <占位項(xiàng)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轉(zhuǎn)C++

          37. Converting From Blueprints to C++


          38. 指定Visual Studio版本

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

            占位標(biāo)題

          39. <占位項(xiàng)1>
          40. <占位項(xiàng)2>


          41. 占位標(biāo)題

          42. <占位項(xiàng)1>
          43. <占位項(xiàng)2>


          44. 占位標(biāo)題

          45. <占位項(xiàng)1>
          46. <占位項(xiàng)2>


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

            日本精品久久久久久久久免费| 久久精品国产99国产精品导航| 久久精品亚洲日本波多野结衣| 久久精品毛片免费观看| 91精品国产综合久久精品| 精品多毛少妇人妻AV免费久久| 国产精品亚洲综合久久| 久久精品亚洲精品国产色婷| 9999国产精品欧美久久久久久| 欧美午夜A∨大片久久| 午夜精品久久久久久毛片| 国产成人无码精品久久久免费| 一本久久精品一区二区| 久久精品无码一区二区三区| 少妇人妻综合久久中文字幕| 国产99久久久国产精免费| 精品久久久中文字幕人妻| 激情五月综合综合久久69| 精品国产福利久久久| 久久AV高潮AV无码AV| 久久精品无码一区二区三区日韩 | 要久久爱在线免费观看| 久久精品国产只有精品2020| 久久久久久综合网天天| 久久播电影网| 久久精品国产99国产电影网| 午夜久久久久久禁播电影| 欧美久久一区二区三区| 国产亚洲成人久久| 国产亚洲美女精品久久久久狼| 久久精品国产2020| 精品久久久久久无码不卡| 久久伊人中文无码| 久久99热这里只有精品国产| 99久久www免费人成精品| 久久精品国产福利国产秒| 久久AV高清无码| 久久精品无码专区免费青青| 国产精品久久久久久久久免费| 久久狠狠高潮亚洲精品| 久久er国产精品免费观看2|