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

            好久久免费视频高清| 亚洲中文久久精品无码ww16| 97久久超碰国产精品2021| 亚洲AV无码一区东京热久久| 久久99精品久久久久婷婷| 精品国产青草久久久久福利| 久久天天躁狠狠躁夜夜躁2014 | 国产A级毛片久久久精品毛片| 国内精品久久久久久中文字幕| 久久亚洲sm情趣捆绑调教| 国产精品久久久久久福利69堂| 久久精品国产99久久久香蕉| 日产精品久久久一区二区| 狠狠色综合久久久久尤物| 人妻精品久久久久中文字幕69 | 久久精品国产精品亚洲下载| 伊人久久综合精品无码AV专区| 99热热久久这里只有精品68| 亚洲综合熟女久久久30p| 久久精品国产一区二区电影| 精品久久一区二区三区| 无码超乳爆乳中文字幕久久| 伊人久久大香线蕉综合5g| 91久久精品国产成人久久| 久久99精品久久久久婷婷| 亚洲伊人久久精品影院| 色婷婷狠狠久久综合五月| 九九久久精品国产| 免费国产99久久久香蕉| 97r久久精品国产99国产精| 亚洲精品乱码久久久久66| 亚洲欧洲久久久精品| 伊人久久一区二区三区无码| 久久久精品国产亚洲成人满18免费网站| 国产精品久久国产精麻豆99网站| 久久免费的精品国产V∧| 久久国产亚洲高清观看| 久久久久亚洲精品天堂| AV无码久久久久不卡网站下载| 久久精品中文闷骚内射| 国产成人精品白浆久久69|